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


 

 

 前言

一、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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM