1. 程式人生 > >liunx磁盤陣列raid詳解

liunx磁盤陣列raid詳解

liunx raid

一丶raid

1.raid定義

磁盤陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁盤構成的具有冗余能力的陣列”之意。
磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。利用這項技術,將數據切割成許多區段,分別存放在各個硬盤上。[1]
磁盤陣列還能利用同位檢查(Parity Check)的觀念,在數組中任意一個硬盤故障時,仍可讀出數據,在數據重構時,將數據經計算後重新置入新硬盤中。

2.raid的優缺點

優點

提高傳輸速率。RAID通過在多個磁盤上同時存儲和讀取數據來大幅提高存儲系統的數據吞吐量(Throughput)。在RAID中,可以讓很多磁盤驅動器同時傳輸數據,而這些磁盤驅動器在邏輯上又是一個磁盤驅動器,所以使用RAID可以達到單個磁盤驅動器幾倍、幾十倍甚至上百倍的速率。這也是RAID最初想要解決的問題。因為當時CPU的速度增長很快,而磁盤驅動器的數據傳輸速率無法大幅提高,所以需要有一種方案解決二者之間的矛盾。RAID最後成功了。

通過數據校驗提供容錯功能。普通磁盤驅動器無法提供容錯功能,如果不包括寫在磁盤上的CRC(循環冗余校驗)碼的話。RAID容錯是建立在每個磁盤驅動器的硬件容錯功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較為完備的相互校驗/恢復的措施,甚至是直接相互的鏡像備份,從而大大提高了RAID系統的容錯度,提高了系統的穩定冗余性。

缺點

RAID0沒有冗余功能,如果一個磁盤(物理)損壞,則所有的數據都無法使用。
RAID1磁盤的利用率最高只能達到50%(使用兩塊盤的情況下),是所有RAID級別中最低的。
RAID0+1以理解為是RAID 0和RAID 1的折中方案。RAID 0+1可以為系統提供數據安全保障,但保障程度要比 Mirror低而磁盤空間利用率要比Mirror高。

4.常用raid及特點

技術分享圖片
raid 0 條帶化 chunk size n*min(size) (#讀寫的提升 至少2塊盤)
實現方式就是把N塊同樣的硬盤用硬件的形式通過智能磁盤控制器或用操作系統中的磁盤驅動程序以軟件的方式串聯在一起創建一個大的卷集。在使用中電腦數據依次寫入到各塊硬盤中,它的最大優點就是可以整倍的提高硬盤的容量。如使用了三塊80GB的硬盤組建成RAID 0模式,那麽磁盤容量就會是240GB。其速度方面,各單獨一塊硬盤的速度完全相同。最大的缺點在於任何一塊硬盤出現故障,整個系統將會受到破壞,可靠性僅為單獨一塊硬盤的1/N。
技術分享圖片

raid 1 鏡像 min(size) (#寫性能略降低 ,讀性能提升 至少2塊盤)

原理是把一個磁盤的數據鏡像到另一個磁盤上,也就是說數據在寫入一塊磁盤的同時,會在另一塊閑置的磁盤上生成鏡像文件,在不影響性能情況下最大限度的保證系統的可靠性和可修復性上,只要系統中任何一對鏡像盤中至少有一塊磁盤可以使用,甚至可以在一半數量的硬盤出現問題時系統都可以正常運行,當一塊硬盤失效時,系統會忽略該硬盤,轉而使用剩余的鏡像盤讀寫數據,具備很好的磁盤冗余能力
技術分享圖片
raid 5 奇偶校驗 (#(n-1)*min(size) 至少3塊盤)
RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁盤上,所以提高了可靠性。但是它對數據傳輸的並行性解決不好,而且控制器的設計也相當困難。
技術分享圖片

raid 10 (#先做多個raid1,再組成raid0 安全性優於raid01)
 先鏡射再分區數據,再將所有硬盤分為兩組,視為是RAID 0的最低組合,然後將這兩組各自視為RAID 1運作。優點是同時擁有RAID 0的超凡速度和RAID 1的數據高可靠性,但是CPU占用率同樣也更高,而且磁盤的利用率比較低.
技術分享圖片
raid 01 (#先做多個raid0,再組成raid1)
先分區再將數據鏡射到兩組硬盤。它將所有的硬盤分為兩組,變成RAID 1的最低組合,而將兩組硬盤各自視為RA
ID 0運作.優點是同時擁有RAID 0的超凡速度和RAID 1的數據高可靠性,但是CPU占用率同樣也更高,而且磁盤的利用率比較低
技術分享圖片
raid 50 (#先做多個raid5,再組成raid0,安全性略低於raid10)
RAID50具備更高的容錯能力,因為它允許某個組內有一個磁盤出現故障,而不會造成數據丟失。而且因為奇偶位分部於RAID5子磁盤組上,故重建速度有很大提高。優勢:更高的容錯能力,具備更快數據讀取速率的潛力。
5.raid用法及常用選項
用法
mdadm -C /dev/md0 -a yes -n 2 -l 0 /dev/sdc /dev/sdd
mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sde /dev/sdf
mdadm -C /dev/md1 -a yes -n 2 -l 1 -x 1 /dev/sd{e,f,g}
常用選項
-C 創建raid
-a yes 自動創建raid設備/dev/mdX
-n num 陣列中磁盤的數量
-l num 陣列的等級
-x num 熱備盤的數量
mdadm -D /dev/mdx 查看raid信息
cat /proc/mdstat 查看全部的raid信息
mdadm -S /dev/mdx 停止raid
mdadm -A /dev/mdx /dev/sdc /dev/sda
cat /proc/mdstat
mdadm -D -s > /etc/mdadm.conf 將raid信息保存至文件
mdadm -A -s 激活/etc/mdadm.conf中的所有raid設備
mdadm -F /dev/md1 實時監控raid狀態

raid1,raid5專用命令
mdadm /dev/md1 -f /dev/sdx 將md1中的sdx設置為壞的設備
mdadm /dev/md1 -r /dev/sd 將md1中的sdx從raid成員中刪除
mdadm /dev/md1 -a /dev/sdx 向md1中增加新成員sdx
mdadm -G /dev/md1 -n 3 -a /dev/sdh 將raid1 md1的成員數量改為3,並加入新的成員(不是加為熱備盤)
刪除硬盤raid
mdadm --zero-superblock /dev/sdx 刪除某塊硬盤的raid信息

6.共享熱備盤實現方式

mdadm -D -s > /etc/mdadm.conf
在需要共享的多組raid信息最後分別都寫上spare-group=magedu
然後再加一新行,頂頭寫MAILADDR root@localhost
service mdmonitor restart

liunx磁盤陣列raid詳解