RAID技術 Redundant Array of Independent Disks由獨立的磁碟組成的具有冗餘特性的陣列。有兩個特性:陣列:需要很多磁碟來組成冗餘:允許某塊磁碟損壞之後,數據仍然可用目前,單塊磁碟容量只有幾T,對於現代應用程式來說遠遠不夠。為了提供容量更大的磁碟,發明瞭RAID技術... ...
RAID技術 Redundant Array of Independent Disks
由獨立的磁碟組成的具有冗餘特性的陣列。
有兩個特性:
- 陣列:需要很多磁碟來組成
- 冗餘:允許某塊磁碟損壞之後,數據仍然可用
目前,單塊磁碟容量只有幾T,對於現代應用程式來說遠遠不夠。為了提供容量更大的磁碟,發明瞭RAID技術。
1 七種RAID簡介
RAID 0
- 4個磁碟組成一個陣列
- 4個扇區組成的塊作為基本單元
- 不同磁碟的相同偏移處的塊組合成Stripe
- 數據寫入:數據被分成多塊寫入4個磁碟,而不是順序寫入一個磁碟,這就大大提高了速度
- 缺點:其中一塊磁碟廢掉,數據全部丟失。
RAID 1
- 一個數據盤,一個影子盤
- 每次寫,寫成功兩塊盤才算成功
- 沒有提供讀副本的功能,只有數據出現損壞,才會讀第二副本
- 缺點:短板效應,速度取決於最慢的盤,容量取決於最小的盤。
RAID 2
- 兩塊數據盤,一塊校驗盤
- 校驗演算法使用漢明碼,可以校驗,並具有糾錯一位的能力。
- 每個IO下發的數據被以位為單位平均打散在所有數據盤上。
- 缺點:校驗盤數量太多,開銷太大,成本昂貴。
RAID 3
- 使用邏輯運算“異或XOR”來進行計算校驗位
- 將數據盤的每一位之間做XOR運算,然後將結果寫入校驗盤的對應位置。
- 每次IO的大小:4KB,並要求所有數據盤主軸同步,不然就會等待最慢的那個數據盤完成。
- 優點:校驗效率較高,成本減少
- 缺點:不支持IO併發,無法糾正錯誤。對隨機小塊讀寫時,一個很小的IO會占用所有盤。
RAID 4
- 為瞭解決RAID 3中小塊隨機讀寫問題,增大了“條帶深度”
- 如果一個IO過來,這個IO塊小於條帶深度,那麼這次IO就被完全禁錮在一塊磁碟上,只會用到一塊磁碟。
- 缺點:校驗盤是瓶頸。
RAID 5
- 目的是支持併發IO。
- 校驗盤分割打散在數據盤上。
- 連續性能不如RAID 3。
- 隨機讀性能高。
- 寫性能較差。寫過程:新數據過來->讀取待更新扇區的原數據->讀取校驗數據->計算新數據校驗數據->將新數據和新校驗數據寫到磁碟。
RAID 6
- 目的是為瞭解決超過一塊盤損壞就丟數據的問題。
- 增加了校驗碼,通過組成方程組求解多個未知數。
- 缺點:因為要多讀出一個校驗數據,寫性能更差了。
2 關於幾個與IO相關的重要概念
IO可以分為讀寫IO、大小塊IO、連續/隨機IO、順序/併發IO、穩定/突發IO、持續/間斷IO和實虛IO。
下麵我們來分別瞭解一下這幾種IO。
1 讀/寫IO
一次IO,就是髮指令從磁碟讀寫某段序號連續的扇區內從。
指令一般是通知磁碟從某個扇區開始,並給出從這個初始扇區往後讀取的連續扇區個數,同時給出動作是讀還是寫。
一個IO索要提取的扇區段一定是連續的。
2 大/小塊IO
指控制器的指令中給出的連續讀取扇區數目的多少。如果數目很大,比如128、64等,就是大塊IO。如果很小,比如1、4、8等,就算小塊IO。
3 連續/隨機IO
連續和隨機是指本次IO給出的初始扇區地址和上一次IO的結束扇區地址是不是完全連續或者像個不多的。
如果是,則本次IO應該算是一個連續IO。
如果相差太大,則算一次隨機IO。
4 順序/併發IO
磁碟控制器如果可以同時對一個RAID系統中的多塊磁碟同時發送IO指令,並且這些最底層的IO數據包含了文件系統下發的一個IO的數據,則此時為順序IO。
5 持續/間斷IO
持續不斷地發送或者接受IO請求數據流,這種情況為持續IO。
6 穩定/突發IO
某存儲設備或者某程式在一段時間內接受或者發送的IOPS以及throughput保持響度穩定和恆定,則稱為穩定IO。
如果單位時間的IOPS或者throughput突然猛增,則為突發IO。
7 實/虛IO
讀寫實際文件或者磁碟扇區數據的,稱為實IO
對文件元數據操作的、或針對磁碟發送的非實體數據IO請求的控制性IO,稱為虛IO。
參考資料
《大話存儲2-存儲系統架構與底層原理極限剖析》