在Linux下使用RAID(五):安裝RAID 6
RAID 6 是 RAID 5 的升級版,它有兩個分布式奇偶校驗,即使兩個磁盤發(fā)生故障后依然有容錯能力。在兩個磁盤同時發(fā)生故障時,系統(tǒng)的關(guān)鍵任務(wù)仍然能運行。它與 RAID 5 相似,但性能更健壯,因為它多用了一個磁盤來進行奇偶校驗。
在之前的文章中,我們已經(jīng)在 RAID 5 看了分布式奇偶校驗,但在本文中,我們將看到的是 RAID 6 雙分布式奇偶校驗。不要期望比其他 RAID 有更好的性能,除非你也安裝了一個專用的 RAID 控制器。在 RAID 6 中,即使我們失去了2個磁盤,我們?nèi)钥梢酝ㄟ^更換磁盤,從校驗中構(gòu)建數(shù)據(jù),然后取回數(shù)據(jù)。
在 Linux 中安裝 RAID 6
要建立一個 RAID 6,一組最少需要4個磁盤。RAID 6 甚至在有些組中會有更多磁盤,這樣將多個硬盤捆在一起,當讀取數(shù)據(jù)時,它會同時從所有磁盤讀取,所以讀取速度會更快,當寫數(shù)據(jù)時,因為它要將數(shù)據(jù)寫在條帶化的多個磁盤上,所以性能會較差。
現(xiàn)在,很多人都在討論為什么我們需要使用 RAID 6,它的性能和其他 RAID 相比并不太好。提出這個問題首先需要知道的是,如果需要高容錯性就選擇 RAID 6。在每一個用于數(shù)據(jù)庫的高可用性要求較高的環(huán)境中,他們需要 RAID 6 因為數(shù)據(jù)庫是最重要,無論花費多少都需要保護其安全,它在視頻流環(huán)境中也是非常有用的。
RAID 6 的的優(yōu)點和缺點
- 性能不錯。
- RAID 6 比較昂貴,因為它要求兩個獨立的磁盤用于奇偶校驗功能。
- 將失去兩個磁盤的容量來保存奇偶校驗信息(雙奇偶校驗)。
- 即使兩個磁盤損壞,數(shù)據(jù)也不會丟失。我們可以在更換損壞的磁盤后從校驗中重建數(shù)據(jù)。
- 讀性能比 RAID 5 更好,因為它從多個磁盤讀取,但對于沒有專用的 RAID 控制器的設(shè)備寫性能將非常差。
要求
要創(chuàng)建一個 RAID 6 最少需要4個磁盤。你也可以添加更多的磁盤,但你必須有專用的 RAID 控制器。使用軟件 RAID 我們在 RAID 6 中不會得到更好的性能,所以我們需要一個物理 RAID 控制器。
如果你新接觸 RAID 設(shè)置,我們建議先看完以下 RAID 文章。
- 介紹 RAID 的級別和概念
- 使用 mdadm 工具創(chuàng)建軟件 RAID 0 (條帶化)
- 用兩塊磁盤創(chuàng)建 RAID 1(鏡像)
- 創(chuàng)建 RAID 5(條帶化與分布式奇偶校驗)
我的服務(wù)器設(shè)置
操作系統(tǒng) : CentOS 6.5 Final
IP 地址 : 192.168.0.228
主機名 : rd6.tecmintlocal.com
磁盤 1 [20GB] : /dev/sdb
磁盤 2 [20GB] : /dev/sdc
磁盤 3 [20GB] : /dev/sdd
磁盤 4 [20GB] : /dev/sde
這是9篇系列教程的第5部分,在這里我們將看到如何在 Linux 系統(tǒng)或者服務(wù)器上使用四個 20GB 的磁盤(名為 /dev/sdb、 /dev/sdc、 /dev/sdd 和 /dev/sde)創(chuàng)建和設(shè)置軟件 RAID 6 (條帶化雙分布式奇偶校驗)。
第1步:安裝 mdadm 工具,并檢查磁盤
1、 如果你按照我們最進的兩篇 RAID 文章(第2篇和第3篇),我們已經(jīng)展示了如何安裝mdadm
工具。如果你直接看的這篇文章,我們先來解釋下在 Linux 系統(tǒng)中如何使用mdadm
工具來創(chuàng)建和管理 RAID,首先根據(jù)你的 Linux 發(fā)行版使用以下命令來安裝。
# yum install mdadm [在 RedHat 系統(tǒng)]
# apt-get install mdadm [在 Debain 系統(tǒng)]
2、 安裝該工具后,然后來驗證所需的四個磁盤,我們將會使用下面的fdisk
命令來檢查用于創(chuàng)建 RAID 的磁盤。
# fdisk -l | grep sd
在 Linux 中檢查磁盤
3、 在創(chuàng)建 RAID 磁盤前,先檢查下我們的磁盤是否創(chuàng)建過 RAID 分區(qū)。
# mdadm -E /dev/sd[b-e]
# mdadm --examine /dev/sdb /dev/sdc /dev/sdd /dev/sde # 或
在磁盤上檢查 RAID 分區(qū)
注意: 在上面的圖片中,沒有檢測到任何 super-block 或者說在四個磁盤上沒有 RAID 存在?,F(xiàn)在我們開始創(chuàng)建 RAID 6。
#p#
第2步:為 RAID 6 創(chuàng)建磁盤分區(qū)
4、 現(xiàn)在在 /dev/sdb
, /dev/sdc
, /dev/sdd
和 /dev/sde
上為 RAID 創(chuàng)建分區(qū),使用下面的 fdisk 命令。在這里,我們將展示如何在 sdb 磁盤創(chuàng)建分區(qū),同樣的步驟也適用于其他分區(qū)。
創(chuàng)建 /dev/sdb 分區(qū)
# fdisk /dev/sdb
請按照說明進行操作,如下圖所示創(chuàng)建分區(qū)。
- 按
n
創(chuàng)建新的分區(qū)。 - 然后按
P
選擇主分區(qū)。 - 接下來選擇分區(qū)號為1。
- 只需按兩次回車鍵選擇默認值即可。
- 然后,按
P
來打印創(chuàng)建好的分區(qū)。 - 按
L
,列出所有可用的類型。 - 按
t
去修改分區(qū)。 - 鍵入
fd
設(shè)置為 Linux 的 RAID 類型,然后按回車確認。 - 然后再次使用
p
查看我們所做的更改。 - 使用
w
保存更改。
創(chuàng)建 /dev/sdb 分區(qū)
創(chuàng)建 /dev/sdc 分區(qū)
# fdisk /dev/sdc
創(chuàng)建 /dev/sdc 分區(qū)
創(chuàng)建 /dev/sdd 分區(qū)
# fdisk /dev/sdd
創(chuàng)建 /dev/sdd 分區(qū)
#p#
創(chuàng)建 /dev/sde 分區(qū)
# fdisk /dev/sde
創(chuàng)建 /dev/sde 分區(qū)
5、 創(chuàng)建好分區(qū)后,檢查磁盤的 super-blocks 是個好的習慣。如果 super-blocks 不存在我們可以按前面的創(chuàng)建一個新的 RAID。
# mdadm -E /dev/sd[b-e]1
# mdadm --examine /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 # 或
Check Raid on New Partitions
*在新分區(qū)中檢查 RAID *
第3步:創(chuàng)建 md 設(shè)備(RAID)
6、 現(xiàn)在可以使用以下命令創(chuàng)建 RAID 設(shè)備md0
(即 /dev/md0),并在所有新創(chuàng)建的分區(qū)中應(yīng)用 RAID 級別,然后確認 RAID 設(shè)置。
# mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
# cat /proc/mdstat
創(chuàng)建 Raid 6 設(shè)備
7、 你還可以使用 watch 命令來查看當前創(chuàng)建 RAID 的進程,如下圖所示。
# watch -n1 cat /proc/mdstat
檢查 RAID 6 創(chuàng)建過程
8、 使用以下命令驗證 RAID 設(shè)備。
# mdadm -E /dev/sd[b-e]1
注意:上述命令將顯示四個磁盤的信息,這是相當長的,所以沒有截取其完整的輸出。
9、 接下來,驗證 RAID 陣列,以確認重新同步過程已經(jīng)開始。
# mdadm --detail /dev/md0
檢查 Raid 6 陣列
#p#
第4步:在 RAID 設(shè)備上創(chuàng)建文件系統(tǒng)
10、 使用 ext4 為/dev/md0
創(chuàng)建一個文件系統(tǒng),并將它掛載在 /mnt/raid6 。這里我們使用的是 ext4,但你可以根據(jù)你的選擇使用任意類型的文件系統(tǒng)。
# mkfs.ext4 /dev/md0
在 RAID 6 上創(chuàng)建文件系統(tǒng)
11、 將創(chuàng)建的文件系統(tǒng)掛載到 /mnt/raid6,并驗證掛載點下的文件,我們可以看到 lost+found 目錄。
# mkdir /mnt/raid6
# mount /dev/md0 /mnt/raid6/
# ls -l /mnt/raid6/
12、 在掛載點下創(chuàng)建一些文件,在任意文件中添加一些文字并驗證其內(nèi)容。
# touch /mnt/raid6/raid6_test.txt
# ls -l /mnt/raid6/
# echo "tecmint raid setups" > /mnt/raid6/raid6_test.txt
# cat /mnt/raid6/raid6_test.txt
驗證 RAID 內(nèi)容
13、 在 /etc/fstab 中添加以下條目使系統(tǒng)啟動時自動掛載設(shè)備,操作系統(tǒng)環(huán)境不同掛載點可能會有所不同。
# vim /etc/fstab
/dev/md0 /mnt/raid6 ext4 defaults 0 0
自動掛載 RAID 6 設(shè)備
14、 接下來,執(zhí)行mount -a
命令來驗證 fstab 中的條目是否有錯誤。
# mount -av
驗證 RAID 是否自動掛載
第5步:保存 RAID 6 的配置
15、 請注意,默認情況下 RAID 沒有配置文件。我們需要使用以下命令手動保存它,然后檢查設(shè)備/dev/md0
的狀態(tài)。
# mdadm --detail --scan --verbose >> /etc/mdadm.conf
# cat /etc/mdadm.conf
# mdadm --detail /dev/md0
保存 RAID 6 配置
檢查 RAID 6 狀態(tài)
#p#
第6步:添加備用磁盤
16、 現(xiàn)在,已經(jīng)使用了4個磁盤,并且其中兩個作為奇偶校驗信息來使用。在某些情況下,如果任意一個磁盤出現(xiàn)故障,我們?nèi)钥梢缘玫綌?shù)據(jù),因為在 RAID 6 使用雙奇偶校驗。
如果第二個磁盤也出現(xiàn)故障,在第三塊磁盤損壞前我們可以添加一個新的??梢栽趧?chuàng)建 RAID 集時加入一個備用磁盤,但我在創(chuàng)建 RAID 集合前沒有定義備用的磁盤。不過,我們可以在磁盤損壞后或者創(chuàng)建 RAID 集合時添加一塊備用磁盤?,F(xiàn)在,我們已經(jīng)創(chuàng)建好了 RAID,下面讓我演示如何添加備用磁盤。
為了達到演示的目的,我已經(jīng)熱插入了一個新的 HDD 磁盤(即 /dev/sdf),讓我們來驗證接入的磁盤。
# ls -l /dev/ | grep sd
檢查新磁盤
17、 現(xiàn)在再次確認新連接的磁盤沒有配置過 RAID ,使用 mdadm 來檢查。
# mdadm --examine /dev/sdf
在新磁盤中檢查 RAID
注意:像往常一樣,我們早前已經(jīng)為四個磁盤創(chuàng)建了分區(qū),同樣,我們使用 fdisk 命令為新插入的磁盤創(chuàng)建新分區(qū)。
# fdisk /dev/sdf
為 /dev/sdf 創(chuàng)建分區(qū)
18、 在 /dev/sdf 創(chuàng)建新的分區(qū)后,在新分區(qū)上確認沒有 RAID,然后將備用磁盤添加到 RAID 設(shè)備 /dev/md0 中,并驗證添加的設(shè)備。
# mdadm --examine /dev/sdf
# mdadm --examine /dev/sdf1
# mdadm --add /dev/md0 /dev/sdf1
# mdadm --detail /dev/md0
在 sdf 分區(qū)上驗證 Raid
Add sdf Partition to Raid
*添加 sdf 分區(qū)到 RAID *
驗證 sdf 分區(qū)信息
第7步:檢查 RAID 6 容錯
19、 現(xiàn)在,讓我們檢查備用驅(qū)動器是否能自動工作,當我們陣列中的任何一個磁盤出現(xiàn)故障時。為了測試,我將一個磁盤手工標記為故障設(shè)備。
在這里,我們標記 /dev/sdd1 為故障磁盤。
# mdadm --manage --fail /dev/md0 /dev/sdd1
檢查 RAID 6 容錯
20、 讓我們查看 RAID 的詳細信息,并檢查備用磁盤是否開始同步。
# mdadm --detail /dev/md0
檢查 RAID 自動同步
哇塞! 這里,我們看到備用磁盤激活了,并開始重建進程。在底部,我們可以看到有故障的磁盤 /dev/sdd1 標記為 faulty??梢允褂孟旅娴拿畈榭催M程重建。
# cat /proc/mdstat
RAID 6 自動同步
結(jié)論:
在這里,我們看到了如何使用四個磁盤設(shè)置 RAID 6。這種 RAID 級別是具有高冗余的昂貴設(shè)置之一。在接下來的文章中,我們將看到如何建立一個嵌套的 RAID 10 甚至更多。請繼續(xù)關(guān)注。