2019年9月3日 星期二

Redundant Arrays of Inexpensive Disks, RAID

磁碟陣列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,
英翻中的意思是:容錯式廉價磁碟陣列。 RAID 可以透過一個技術(軟體或硬體),將多個較小的磁碟整合成為一個較大的磁碟裝置;
而這個較大的磁碟功能可不止是儲存而已,他還具有資料保護的功能呢。整個 RAID 由於選擇的等級 (level) 不同,而使得整合後的磁碟具有不同的功能,基本常見的 level 有這幾種(註1):

RAID-0 (等量模式, stripe):效能最佳
這種模式如果使用相同型號與容量的磁碟來組成時,達到儲存容量全部使用兩倍容量,讀取速度有機會兩倍,寫入速度1.5倍最高。

RAID-1 (映射模式, mirror):完整備份
這種模式也是需要相同的磁碟容量的,最好是一模一樣的磁碟啦!如果是不同容量的磁碟組成 RAID-1 時,那麼總容量將以最小的那一顆磁碟為主!
這種模式主要是『讓同一份資料,完整的保存在兩顆磁碟上頭』。舉例來說,如果我有一個 100MB 的檔案,且我僅有兩顆磁碟組成 RAID-1 時, 那麼這兩顆磁碟將會同步寫入 100MB 到他們的儲存空間去。
因此,整體 RAID 的容量幾乎少了 50%。由於兩顆硬碟內容一模一樣,好像鏡子映照出來一樣, 所以我們也稱他為 mirror 模式囉~
由於兩顆磁碟內的資料一模一樣,所以任何一顆硬碟損毀時,你的資料還是可以完整的保留下來的!
所以我們可以說, RAID-1 最大的優點大概就在於資料的備份吧!不過由於磁碟容量有一半用在備份,因此總容量會是全部磁碟容量的一半而已。
雖然 RAID-1 的寫入效能不佳,不過讀取的效能則還可以啦!這是因為資料有兩份在不同的磁碟上面,如果多個 processes 在讀取同一筆資料時, RAID 會自行取得最佳的讀取平衡。

RAID 5:效能與資料備份的均衡考量
RAID-5 至少需要三顆以上的磁碟才能夠組成這種類型的磁碟陣列。這種磁碟陣列的資料寫入有點類似 RAID-0 , 不過每個循環的寫入過程中,在每顆磁碟還加入一個同位檢查資料 (Parity),
這個資料會記錄其他磁碟的備份資料, 用於當有磁碟損毀時的救援。RAID-5 讀寫的情況有點像底下這樣:
在讀寫效能的比較上,讀取的效能還不賴!與 RAID-0 有的比!不過寫的效能就不見得能夠增加很多! 這是因為要寫入 RAID 5 的資料還得要經過計算同位檢查碼 (parity) 的關係。
由於加上這個計算的動作, 所以寫入的效能與系統的硬體關係較大!尤其當使用軟體磁碟陣列時,同位檢查碼是透過 CPU 去計算而非專職的磁碟陣列卡, 因此效能方面還需要評估。

RAID 6:效能與資料備份的均衡考量,容錯提升容量減少!
另外,由於 RAID 5 僅能支援一顆磁碟的損毀,因此近來還有發展出另外一種等級,就是 RAID 6 ,
這個 RAID 6 則使用兩顆磁碟的容量作為 parity 的儲存,因此整體的磁碟容量就會少兩顆,但是允許出錯的磁碟數量就可以達到兩顆了!
也就是在 RAID 6 的情況下,同時兩顆磁碟損毀時,資料還是可以救回來!

Spare Disk:預備磁碟的功能:
當磁碟陣列的磁碟損毀時,就得要將壞掉的磁碟拔除,然後換一顆新的磁碟。換成新磁碟並且順利啟動磁碟陣列後,
磁碟陣列就會開始主動的重建 (rebuild) 原本壞掉的那顆磁碟資料到新的磁碟上!然後你磁碟陣列上面的資料就復原了!
這就是磁碟陣列的優點。不過,我們還是得要動手拔插硬碟,此時通常得要關機才能這麼做。
為了讓系統可以即時的在壞掉硬碟時主動的重建,因此就需要預備磁碟 (spare disk) 的輔助。
所謂的 spare disk 就是一顆或多顆沒有包含在原本磁碟陣列等級中的磁碟,這顆磁碟平時並不會被磁碟陣列所使用,
當磁碟陣列有任何磁碟損毀時,則這顆 spare disk 會被主動的拉進磁碟陣列中,並將壞掉的那顆硬碟移出磁碟陣列! 然後立即重建資料系統。
如此你的系統則可以永保安康啊!若你的磁碟陣列有支援熱拔插那就更完美了! 直接將壞掉的那顆磁碟拔除換一顆新的,再將那顆新的設定成為 spare disk ,就完成了!

磁碟陣列的優點
說的口沫橫飛,重點在哪裡呢?其實你的系統如果需要磁碟陣列的話,其實重點在於:

資料安全與可靠性:指的並非資訊安全,而是當硬體 (指磁碟) 損毀時,資料是否還能夠安全的救援或使用之意;
讀寫效能:例如 RAID 0 可以加強讀寫效能,讓你的系統 I/O 部分得以改善;
容量:可以讓多顆磁碟組合起來,故單一檔案系統可以有相當大的容量。
尤其資料的可靠性與完整性更是使用 RAID 的考量重點!畢竟硬體壞掉換掉就好了,軟體資料損毀那可不是鬧著玩的! 所以企業界為何需要大量的 RAID 來做為檔案系統的硬體基準,現在您有點瞭解了吧?

為何磁碟陣列又分為硬體與軟體呢?所謂的硬體磁碟陣列 (hardware RAID) 是透過磁碟陣列卡來達成陣列的目的。
磁碟陣列卡上面有一塊專門的晶片在處理 RAID 的任務,因此在效能方面會比較好。在很多任務 (例如 RAID 5 的同位檢查碼計算) 磁碟陣列並不會重複消耗原本系統的 I/O 匯流排,
理論上效能會較佳。此外目前一般的中高階磁碟陣列卡都支援熱拔插, 亦即在不關機的情況下抽換損壞的磁碟,對於系統的復原與資料的可靠性方面非常的好用。
不過一塊好的磁碟陣列卡動不動就上萬元台幣,便宜的在主機板上面『附贈』的磁碟陣列功能可能又不支援某些高階功能,
由於磁碟陣列有很多優秀的功能,然而硬體磁碟陣列卡偏偏又貴的很~因此就有發展出利用軟體來模擬磁碟陣列的功能, 這就是所謂的軟體磁碟陣列 (software RAID)。
軟體磁碟陣列主要是透過軟體來模擬陣列的任務, 因此會損耗較多的系統資源,比如說 CPU 的運算與 I/O 匯流排的資源等。
不過目前我們的個人電腦實在已經非常快速了, 因此以前的速度限制現在已經不存在!所以我們可以來玩一玩軟體磁碟陣列!

參考來源:  鳥哥 linux 私房菜!

沒有留言:

張貼留言