raid概述與CentOS7.4中raid5的搭建與測試

彈指流沙間發表於2018-05-31

 

 

 前言

一、raid的定義與作用

raid(獨立冗餘磁碟陣列)。raid技術通過把多個硬碟裝置組合成一個容量更大的,安全性更好的磁碟陣列。把資料切割成許多區段後分別放在不同的物理磁碟上,然後利用分散讀寫技術來提升磁碟陣列整體的效能,同時把多個重要資料的副本同步到不同的物理裝置上,從而起到了非常好的資料冗餘備份效果。缺點就是磁碟利用率低。

 

二、raid的分類

raid的分類目前來說至少有幾十種,這裡簡單介紹一下最常見的四種,raid0,raid1,raid10,raid5。

 

1、RAID 0

 

RAID 0是最早出現的RAID模式,即Data Stripping資料分條技術。RAID 0是組建磁碟陣列中最簡單的一種形式,只需要2塊以上的硬碟即可,成本低,可以提高整個磁碟的效能和吞吐量。RAID 0沒有提供冗餘或錯誤修復能力,但實現成本是最低的。

 

2、RAID 1

 

RAID 1稱為磁碟映象,原理是把一個磁碟的資料映象到另一個磁碟上,也就是說資料在寫入一塊磁碟的同時,會在另一塊閒置的磁碟上生成映象檔案,在不影響效能情況下最大限度的保證系統的可靠性和可修復性上,只要系統中任何一對映象盤中至少有一塊磁碟可以使用,甚至可以在一半數量的硬碟出現問題時系統都可以正常執行,當一塊硬碟失效時,系統會忽略該硬碟,轉而使用剩餘的映象盤讀寫資料,具備很好的磁碟冗餘能力。雖然這樣對資料來講絕對安全,但是成本也會明顯增加,磁碟利用率為50%。

 

3、RAID0+1

 

RAID 0+1名稱上我們便可以看出是RAID0與RAID1的結合體。在我們單獨使用RAID 1也會出現類似單獨使用RAID 0那樣的問題,即在同一時間內只能向一塊磁碟寫入資料,不能充分利用所有的資源。為了解決這一問題,我們可以在磁碟映象中建立帶區集。因為這種配置方式綜合了帶區集和映象的優勢,所以被稱為RAID 0+1。把RAID0和RAID1技術結合起來,資料除分佈在多個盤上外,每個盤都有其物理映象盤,提供全冗餘能力,允許一個以下磁碟故障,而不影響資料可用性,並具有快速讀/寫能力。RAID0+1要在磁碟映象中建立帶區集至少4個硬碟。也有一種叫法叫raid10.

 

4、RAID5:分散式奇偶校驗的獨立磁碟結構
它的奇偶校驗碼存在於所有磁碟上。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁碟上,所以提高了可靠性。但是它對資料傳輸的並行性解決不好,而且控制器的設計也相當困難。在RAID 5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的資料及奇偶資訊,兩次寫新的資料及奇偶資訊。

 

總結:raid0大幅度提升了裝置的讀寫效能,但不具備容錯能力。raid1雖然十分注重資料安全,但磁碟利用率太低。raid5就是raid0和raid5的一種折中,既提升了磁碟讀寫能力,又有一定的容錯能力,成本也低。raid10就是raid0和raid1的組合,大幅度提升讀寫能力,較強的容錯能力,成本也較高。一般中小企業用raid5,大企業採用raid10。

 

這裡主要介紹raid5的搭建與測試。主要內容:一、新增硬碟。二、對磁碟進行初始化設定。三、搭建raid5。四、raid5的測試。五、raid5的維護。六、mdadm命令總結。

 

Raid5的搭建

一、 首先新增四塊硬碟

 

 

二、reboot重啟並對磁碟進行初始化設定

 

reboot重啟

 

 

 

三、搭建raid5

1,yum install -y mdadm  //安裝madam (madam是Linux下的raid管理工具)

 

2,mdadm -C /dev/md0 -ayes -l5 -n3 -x1 /dev/sd[b-e]1  //用sdb1,sdc1,sdd1,sde1四塊磁碟其中3塊建立raid5,名稱為md0,另外一塊作為熱備份。

madam引數說明

-C  --create   建立陣列;

-a  --auto    同意建立裝置,如不加此引數時必須先使用mknod 命令來建立一個RAID裝置,不過推薦使用-a yes引數一次性建立;

-l   --level   陣列模式,支援的陣列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;

-n     --raid-devices    陣列中活動磁碟的數目,該數目加上備用磁碟的數目應該等於陣列中總的磁碟數目;

 

3,檢視raid5狀態

cat /proc/mdstat

mdadm -D /dev/md0

 

4,新增raid5到raid配置檔案並做修改

echo 'DEVICE /dev/sd[b-e]1' >>/etc/mdadm.conf

mdadm -Ds >>/etc/mdadm.conf

 

5,格式化磁碟陣列

mkfs.xfs /dev/md0

 

 

6,建立掛載點並掛載

mkdir /raid5

mount /dev/md0 /raid5/

 

 

7,將掛載寫入開機啟動項

vi /etc/fstab

 

 

四,測試raid5

1, 建立檔案a.txt 和 b.txt

 

 

2, 模擬其中一塊磁碟壞道,我選擇讓sdb1損壞,然後檢視raid陣列資訊情況,發現熱備份磁碟sde1自動替換已損壞了的sdb1。並且資料無損失

 

 

3, 移除已損壞的磁碟,新增一塊新硬碟作為熱備份盤,並檢視資料情況

mdadm /dev/md0 -r /dev/sdb1

 

注意:在實際中sdb1已經是另一塊完好的硬碟了。不是說之前損壞的那塊移除再新增就好了。

 

 

五,維護raid5

1, 向raid5中新增儲存硬碟

mdadm /dev/md0 -a /dev/sdf1

 

由於預設是新增成熱備盤,得把熱備盤改為活動盤

mdadm /dev/md0 -G -n4  //-G改變raid中的活動盤的數量,一般和-n連用。-n用來指定raid中活動盤的數量。最好保證要有足夠的熱備盤新增。

 

檢視狀態,新增完成

 

2,檢視檔案系統發現總容量未變

 

此時需要對檔案系統擴容

resize2fs /dev/md0  //resizefx適用於ext3,ext4等檔案系統不適用於xfs檔案系統

 

xfs_growfs /dev/md0  //xfs_growfs對xfs檔案系統進行擴容

 

 

關於mdadm的相關引數彙總

-C  --create   建立陣列;

-a  --auto    同意建立裝置,如不加此引數時必須先使用mknod 命令來建立一個RAID裝置,不過推薦使用-a yes引數一次性建立;

-l   --level   陣列模式,支援的陣列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;

-n     --raid-devices    陣列中活動磁碟的數目,該數目加上備用磁碟的數目應該等於陣列中總的磁碟數目;

-x    熱備盤數目

例項:mdadm -C /dev/md0 -ayes -l5 -n3 -x1 /dev/sd[b-e]1  //用sdb1,sdc1,sdd1,sde1四塊磁碟其中3塊建立raid5,名稱為md0,另外一塊作為熱備份。

-D  --detail  檢視raid裝置的詳細資訊

-f  使一塊raid磁碟故障

-a  增加一塊raid磁碟

-r  移除一塊故障的raid磁碟

-s  --scan:掃描配置檔案或 /proc/mdstat以搜尋丟失的資訊

-S  停止raid磁碟陣列

例項:

mdadm -Ds >>/etc/mdadm.conf

mdadm /dev/md0 -f /dev/sdb1

mdadm /dev/md0 -r /dev/sdb1

mdadm /dev/md0 -a /dev/sdf1

mdadm /dev/md0 -G -n4  //-G改變raid中的活動盤的數量,一般和-n連用。-n用來指定raid中活動盤的數量。最好保證要有足夠的熱備盤新增。

 

 

參考閱讀 http://www.cnblogs.com/mchina/p/linux-centos-disk-array-software_raid.html

 

相關文章