在 Linux 下使用 RAID(四):創建 RAID 5(條帶化與分散式奇偶校驗)
在 Linux 中配置 RAID 5
對於此 RAID 級別它至少應該有三個或更多個磁碟。RAID 5 通常被用於大規模生產環境中,以花費更多的成本來提供更好的數據冗餘性能。
什麼是奇偶校驗?
奇偶校驗是在數據存儲中檢測錯誤最簡單的常見方式。奇偶校驗信息存儲在每個磁碟中,比如說,我們有4個磁碟,其中相當於一個磁碟大小的空間被分割去存儲所有磁碟的奇偶校驗信息。如果任何一個磁碟出現故障,我們可以通過更換故障磁碟後,從奇偶校驗信息重建得到原來的數據。
RAID 5 的優點和缺點
- 提供更好的性能。
- 支持冗餘和容錯。
- 支持熱備份。
- 將用掉一個磁碟的容量存儲奇偶校驗信息。
- 單個磁碟發生故障後不會丟失數據。我們可以更換故障硬碟後從奇偶校驗信息中重建數據。
- 適合於面向事務處理的環境,讀操作會更快。
- 由於奇偶校驗佔用資源,寫操作會慢一些。
- 重建需要很長的時間。
要求
創建 RAID 5 最少需要3個磁碟,你也可以添加更多的磁碟,前提是你要有多埠的專用硬體 RAID 控制器。在這裡,我們使用「mdadm」包來創建軟體 RAID。
mdadm 是一個允許我們在 Linux 下配置和管理 RAID 設備的包。默認情況下沒有 RAID 的配置文件,我們在創建和配置 RAID 後必須將配置文件保存在一個單獨的文件 mdadm.conf 中。
在進一步學習之前,我建議你通過下面的文章去了解 Linux 中 RAID 的基礎知識。
我的伺服器設置
操作系統 : CentOS 6.5 Final
IP 地址 : 192.168.0.227
主機名 : rd5.tecmintlocal.com
磁碟 1 [20GB] : /dev/sdb
磁碟 2 [20GB] : /dev/sdc
磁碟 3 [20GB] : /dev/sdd
這是9篇系列教程的第4部分,在這裡我們要在 Linux 系統或伺服器上使用三個20GB(名為/dev/sdb, /dev/sdc 和 /dev/sdd)的磁碟建立帶有分散式奇偶校驗的軟體 RAID 5。
第1步:安裝 mdadm 並檢驗磁碟
1、 正如我們前面所說,我們使用 CentOS 6.5 Final 版本來創建 RAID 設置,但同樣的做法也適用於其他 Linux 發行版。
# lsb_release -a
# ifconfig | grep inet
CentOS 6.5 摘要
2、 如果你按照我們的 RAID 系列去配置的,我們假設你已經安裝了「mdadm」包,如果沒有,根據你的 Linux 發行版使用下面的命令安裝。
# yum install mdadm [在 RedHat 系統]
# apt-get install mdadm [在 Debain 系統]
3、 「mdadm」包安裝後,先使用fdisk
命令列出我們在系統上增加的三個20GB的硬碟。
# fdisk -l | grep sd
安裝 mdadm 工具
4、 現在該檢查這三個磁碟是否存在 RAID 塊,使用下面的命令來檢查。
# mdadm -E /dev/sd[b-d]
# mdadm --examine /dev/sdb /dev/sdc /dev/sdd # 或
檢查 Raid 磁碟
注意: 上面的圖片說明,沒有檢測到任何超級塊。所以,這三個磁碟中沒有定義 RAID。讓我們現在開始創建一個吧!
第2步:為磁碟創建 RAID 分區
5、 首先,在創建 RAID 前磁碟(/dev/sdb, /dev/sdc 和 /dev/sdd)必須有分區,因此,在進行下一步之前,先使用fdisk
命令進行分區。
# fdisk /dev/sdb
# fdisk /dev/sdc
# fdisk /dev/sdd
創建 /dev/sdb 分區
請按照下面的說明在 /dev/sdb 硬碟上創建分區。
- 按
n
創建新的分區。 - 然後按
P
選擇主分區。選擇主分區是因為還沒有定義過分區。 - 接下來選擇分區號為1。默認就是1。
- 這裡是選擇柱面大小,我們沒必要選擇指定的大小,因為我們需要為 RAID 使用整個分區,所以只需按兩次 Enter 鍵默認將整個容量分配給它。
- 然後,按
P
來列印創建好的分區。 - 改變分區類型,按
L
可以列出所有可用的類型。 - 按
t
修改分區類型。 - 這裡使用
fd
設置為 RAID 的類型。 - 然後再次使用
p
查看我們所做的更改。 - 使用
w
保存更改。
創建 sdb 分區
注意: 我們仍要按照上面的步驟來創建 sdc 和 sdd 的分區。
創建 /dev/sdc 分區
現在,通過下面的截圖給出創建 sdc 和 sdd 磁碟分區的方法,或者你可以按照上面的步驟。
# fdisk /dev/sdc
創建 sdc 分區
創建 /dev/sdd 分區
# fdisk /dev/sdd
創建 sdd 分區
6、 創建分區後,檢查三個磁碟 sdb, sdc, sdd 的變化。
# mdadm --examine /dev/sdb /dev/sdc /dev/sdd
# mdadm -E /dev/sd[b-c] # 或
檢查磁碟變化
注意: 在上面的圖片中,磁碟的類型是 fd。
7、 現在在新創建的分區檢查 RAID 塊。如果沒有檢測到超級塊,我們就能夠繼續下一步,在這些磁碟中創建一個新的 RAID 5 配置。
在分區中檢查 RAID
第3步:創建 md 設備 md0
8、 現在使用所有新創建的分區(sdb1, sdc1 和 sdd1)創建一個 RAID 設備「md0」(即 /dev/md0),使用以下命令。
# mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
# mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1 # 或
9、 創建 RAID 設備後,檢查並確認 RAID,從 mdstat 中輸出中可以看到包括的設備的 RAID 級別。
# cat /proc/mdstat
驗證 Raid 設備
如果你想監視當前的創建過程,你可以使用watch
命令,將 cat /proc/mdstat
傳遞給它,它會在屏幕上顯示且每隔1秒刷新一次。
# watch -n1 cat /proc/mdstat
監控 RAID 5 構建過程
Raid 5 過程概要
10、 創建 RAID 後,使用以下命令驗證 RAID 設備
# mdadm -E /dev/sd[b-d]1
驗證 Raid 級別
注意: 因為它顯示三個磁碟的信息,上述命令的輸出會有點長。
11、 接下來,驗證 RAID 陣列,假定包含 RAID 的設備正在運行並已經開始了重新同步。
# mdadm --detail /dev/md0
驗證 RAID 陣列
第4步:為 md0 創建文件系統
12、 在掛載前為「md0」設備創建 ext4 文件系統。
# mkfs.ext4 /dev/md0
創建 md0 文件系統
13、 現在,在/mnt
下創建目錄 raid5,然後掛載文件系統到 /mnt/raid5/ 下,並檢查掛載點下的文件,你會看到 lost+found 目錄。
# mkdir /mnt/raid5
# mount /dev/md0 /mnt/raid5/
# ls -l /mnt/raid5/
14、 在掛載點 /mnt/raid5 下創建幾個文件,並在其中一個文件中添加一些內容然後去驗證。
# touch /mnt/raid5/raid5_tecmint_{1..5}
# ls -l /mnt/raid5/
# echo "tecmint raid setups" > /mnt/raid5/raid5_tecmint_1
# cat /mnt/raid5/raid5_tecmint_1
# cat /proc/mdstat
掛載 RAID 設備
15、 我們需要在 fstab 中添加條目,否則系統重啟後將不會顯示我們的掛載點。編輯 fstab 文件添加條目,在文件尾追加以下行。掛載點會根據你環境的不同而不同。
# vim /etc/fstab
/dev/md0 /mnt/raid5 ext4 defaults 0 0
自動掛載 RAID 5
16、 接下來,運行mount -av
命令檢查 fstab 條目中是否有錯誤。
# mount -av
檢查 Fstab 錯誤
第5步:保存 Raid 5 的配置
17、 在前面章節已經說過,默認情況下 RAID 沒有配置文件。我們必須手動保存。如果此步中沒有跟隨不屬於 md0 的 RAID 設備,它會是一些其他隨機數字。
所以,我們必須要在系統重新啟動之前保存配置。如果配置保存它在系統重新啟動時會被載入到內核中然後 RAID 也將被載入。
# mdadm --detail --scan --verbose >> /etc/mdadm.conf
保存 RAID 5 配置
注意:保存配置將保持 md0 設備的 RAID 級別穩定不變。
第6步:添加備用磁碟
18、 備用磁碟有什麼用?它是非常有用的,如果我們有一個備用磁碟,當我們陣列中的任何一個磁碟發生故障後,這個備用磁碟會進入激活重建過程,並從其他磁碟上同步數據,這樣就有了冗餘。
更多關於添加備用磁碟和檢查 RAID 5 容錯的指令,請閱讀下面文章中的第6步和第7步。
結論
在這篇文章中,我們已經看到了如何使用三個磁碟配置一個 RAID 5 。在接下來的文章中,我們將看到如何故障排除並且當 RAID 5 中的一個磁碟損壞後如何恢復。
via: http://www.tecmint.com/create-raid-5-in-linux/
作者:Babin Lonston 譯者:strugglingyouth 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive