home products tech support contact us

 Linux 技術支援    ⇒   基礎篇    進階篇    補腦篇    指令索引    中⇒ENG
版權所有, 引用請註明出處

 RAID 容錯式磁碟陣列

1.0 RAID 磁碟陣列
            Hardware-RAID
            Soft-RAID
            Semi-Hardware-RAID
        RAID 硬碟的選擇
        RAID Levels
           RAID 0 (stripe)
           RAID 1 (mirror)
               RAID 降級
               Spare-Disk預備硬碟
           RAID 5
               RAID 5 的不可復原錯誤
           RAID 6
           混合 RAID(Hybrid RAID)
1.1 Linux Soft RAID 軟硬磁碟陣列
       mdadm 建立/管理 Software-RAID
           Create 模式,建立 Software-RAID
                /etc/mdadm.conf 編輯 RAID 設定檔
                /proc/mdstat 監控 Soft-RAID
          Mmanage 模式,管理 Software-RAID
          Assemble 模式,重啟之前建立的 RAID
          Monitor 模式,監控 Software-RAID
          Grow 模式,改變 RAID 大小
          Misc 雜項模式
          不特定模式
       mdadm 建立混合 RAID




 1.0 RAID 容錯式磁碟陣列 RAID 是 Redundant Array of Inexpensive Disks 或 Redundant Array of Independent Disks 的縮寫,中文大多譯為〝容錯磁碟機陣列〞或〝磁碟陣列〞。

〝Redundant〞字典上的解釋為[多餘的,累贅的],在此有備份和容錯的用途,也就是用多餘的硬碟不同的組合來達到備份、容錯、甚至加速的功能。多硬碟合併成一個虛擬裝置叫 RAID。

RAID 如以功能來分類有加速、增加容量、備份或容錯,可組成不同的 RAID-Level 來滿足不同的需求。而組成各種 RAID-Levels 可以用硬體來達到叫 Hardware-RAID,也可用軟體來完成叫 Soft-RAID,或半硬半軟的 Semi-hardware RAID 其優缺點各如下:

RAID 硬碟的選擇
許多人可能認為 RAID 已有基本的備份和容錯能力故硬碟就隨便挑便宜就好,如果只是在練習是無所謂但如是部署在專業用途選硬碟有不少的學問,首先要考慮的為硬碟的校正機制。

因一般的硬碟如運作其間發現某個磁區開始不穩時會〝假死〞然後在背後偷偷的把不穩的磁區內的資料先搬到預留的磁區,搬完後封鎖不穩的磁區再把預留的磁區開放故總容量是不變的 (WDC 的術語叫〝deep recovery cycle〞),乾坤大挪移後硬碟又是一條活龍。

其間對一般使用者可能只覺硬碟頓一下但無傷大雅。但不管是 Hardware RAIDSoftware RAID 如寫入資料 8~30 秒內硬碟都沒反應就會被 RAID 當硬碟已損壞而踢出 RAID。 雖然 deep recovery cycle 不常發生,但對 24 小時都不關機的應用連續工作個一年〝應該〞會出現個幾次。不只機械硬碟, SSD 固態硬碟因 NAND -Flash 有寫入次數壽命的限制更仰賴這種自我修復機制。

以 WDC 的桌上型消費級硬碟(藍/綠/黑標硬碟)來舉例,假死在執行〝deep recovery cycle〞的時間最久可達 2 分鐘,如果發生時且用在 RAID 早就被 RAID 當故障碟踢掉,而 WDC 的企業級系列的硬碟( 如Velociraptor 和 Re 的 RAID Edition )有〝TLER〞( Time-Limited Error Recovery 限時錯誤校準功能)保證校正時的假死不超過 7 秒就不會被 RAID 踢出[註 1.0]。

不止 WDC 硬碟他牌的企業級(Enterprice)硬碟如 Seaget / Toshiba /Hitachi 也皆有類似 TLER 機制只是術語可能叫 ERC(Error Eecovery Control) 或 CCTL (Command Completion Time Limit ),所以組 RAID 時花一些時間到硬碟的官網看一下規格,如要組 RAID 5 更要考慮〝URE〞和容量盡量減少可能的RAID 5 不可復原錯誤, 可不是只看價錢和容量不然怎麼死的都不知道。

一般來說適合組 RAID 的硬碟為"企業等級"(Enterprice) 或 NAS等級,有支援〝TLER〞( 限時錯誤校準功能),和較低的〝unrecoverable read error〞 (不可復原的讀取錯誤)。

^ back on top ^

RAID-Levles
不同數量的硬碟或 partition 可依功能組成不同的 RAID-Levles,來達到加速、增加容量、備份或容錯某一功能,但如再加硬碟可組混合 RIAD來達到複合功能,如加速+容錯或增加容量+備份等。 一些便宜的 Hardware RAIDFake RAID 可能只支援有限的 RAID-Levles。雖標準的 RAID-Levles 從 RAID0~RAID6 但 RAID 2~RAID4 理論大於實際並不實用,也少有商業化的成品就略過不介紹了。


^ back on top ^


 1.1 Linux Soft RAID 軟硬磁碟陣列 Software-RAID (軟體磁碟陣列)雖管理沒硬體 RAID 方便和快速但永遠不會消失因〝不用錢〞另一優點為彈性可自由組合不同的 RAID-level 且可用 partiton 來組 RAID 或來個大雜匯,例如可混合 IDE/SATA/SCSI/USB 等各種界面的硬碟來組 RAID,這是 Hardware-RAID 辦不到的。況且一些低階的硬體 RAID 控制卡可能只支援有限的 RAID-levels ,例如 Dell 低階的 RAID-Controller (PERC) H200 只支援 RAID0/RAID1和 RAID10,但話說回來用 Sof-fRAID 跑 RAID0/RAID1和 RAID10 也不會比 Hardware-RAID 慢,因基本上 RAID 0 和 RIAD 1 不用什麼運算。


mdadm 建立/管理 Software-RAID
指令 mdadm,為〝 multiple disk devices admin 〞的縮寫,為 Linux 建立/管理/監控 Software-RAID工具。而所謂的〝 md〞(multiple disk devices)和 LVMkpartx 的〝 dm〞( /dev/mapper/)都是虛擬儲存裝置。

mdadm 為一複合指令用於建立/管理/監控 Software-RAID ,詳細的用法自行參考 man mdadm,這只介紹常用的 createmanageassemblemonitorgrowmisc 模式。

mdadm 建立混合 RAID
常見的和實用的混合 RAID有 RAID10、,RAID50 和 RAID60,部分發行版有支援 --level=10,故如下例一個指令就可建立 RAID10。

例:
# mdadm -v --create /dev/md0 --level=raid10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde ←建立 RAID 10
上述方法雖方便但不易了解各別硬碟的作用,如那個硬碟為 stripe 那個硬硬是 mirror ?,故建議一層一層的建,如下例建一個 RAID 50,先建兩個 RAID 5,再把這兩個 RAID 5 組成 RAID 0 就是 RAID 50。

例:
# mdadm --create /dev/md0 --raid-devices=3 --level=5 /dev/sdb1 /dev/sdc1 /dev/sdd1
  ↑ 先建一 RAID 5
# mdadm --create /dev/md1 --raid-devices=3 --level=5 /dev/sde1 /dev/sdf1 /dev/sdg1
  ↑ 再建一 RAID 5
# mdadm --create /dev/md3 --raid-devices=2 --level=0 /dev/md0 /dev/md1
  ↑ 二個 RAID5 組成 RAID 0 就是 RAID 50


^ back on top ^




 
[註1.0] 參考來源 WD Knowledge Base 中文: http://wdc-tw.custhelp.com/app/answers/detail/a_id/7019/session/L3RpbWUvMTQwNzk0ODcyMy9zaWQvLUxSSm9MX2w%3D
& 英文: http://wdc.custhelp.com/app/answers/detail/a_id/1397/p/227,283/session/L3RpbWUvMTMyMTQzOTc4NS9zaWQvdVhvYmpmSms%3D

[註1.1] IDE 界面的硬碟不支援熱插拔,SCSI/SAS/SATA//eSATA/USB 界面的硬碟才有可能支援熱插拔,但有無支援還是要參考硬體的說明書。