什麼是IO(七) RAID

2021-07-10 21:07:51 字數 1829 閱讀 9169

raid很基礎,但是在儲存系統中佔據非常重要的地位,所有涉及儲存的書籍都會提到raid。raid通過磁碟冗餘的方式提高了可用性和可高性,一方面增加了資料讀寫速度,另一方面增加了資料的安全性。

raid 0

對資料進行條帶化。使用兩個磁碟交替存放連續資料。因此可以實現併發讀寫,但帶來的問題是如果乙個磁碟損壞,另外乙個磁碟的資料將失去意義。raid 0最少需要2塊盤。

對資料進行映象。資料寫入時,相同的資料同時寫入兩塊盤。因此兩個盤的資料完全一致,如果一塊盤損壞,另外一塊盤可以頂替使用,raid 1帶來了很好的可靠性。同時讀的時候,資料可以從兩個盤上進行讀取。但是raid 1帶來的問題就是空間的浪費。兩塊盤只提供了一塊盤的空間。raid 1最少需要2塊盤。

raid 5 和 raid 4

使用多餘的一塊校驗盤。資料寫入時,raid 5需要對資料進行計算,以便得出校驗位。因此,在寫效能上raid 5會有損失。但是raid 5兼顧了效能和安全性。當有一塊磁碟損壞時,raid 5可以通過其他盤上的資料對其進行恢復。

如圖可以看出,右下角為p的就是校驗資料。可以看到raid 5的校驗資料依次分布在不同的盤上,這樣可以避免出現熱點盤(因為所有寫操作和更新操作都需要修改校驗資訊,如果校驗都在乙個盤做,會導致這個盤成為寫瓶頸,從而拖累整體效能,raid 4的問題)。raid 5最少需要3塊盤。

raid 6與raid 5類似。但是提供了兩塊校驗盤(下圖右下角為p和q的)。安全性更高,寫效能更差了。raid 0最少需要4塊盤。

raid 10是raid 0 和raid 1的結合,同時兼顧了二者的特點,提供了高效能,但是同時空間使用也是最大。raid 10最少需要4塊盤。

需要注意,使用raid 10來稱呼其實很容易產生混淆,因為raid 0+1和raid 10基本上只是兩個數字交換了一下位置,但是對raid來說就是兩個不同的組成。因此,更容易理解的方式是「striped mirrors」,即:條帶化後的映象——raid 10;或者「mirrored stripes」,即:映象後的條帶化。比較raid 10和raid 0+1,雖然最終都是用到了4塊盤,但是在資料組織上有所不同,從而帶來問題。raid 10在可用性上是要高於raid 0+1的:

raid 50 同raid 10,先做條帶化以後,在做raid 5。兼顧效能,同時又保證空間的利用率。raid 50最少需要6塊盤。

總結:

什麼是IO(二) IO模型

這部分的東西在網路程式設計經常能看到,不過在所有io處理中都是類似的。io請求的兩個階段 使用資源階段 真正進行資料接收和發生。舉例說就是排隊和服務。在等待資源階段,io分為阻塞io和非阻塞io。阻塞io 資源不可用時,io請求一直阻塞,直到反饋結果 有資源或超時 非阻塞io 資源不可用時,io請求...

什麼是重疊I O

在windows中有乙個api bool readfile handle hfile,handle to file lpvoid lpbuffer,data buffer dword nnumberofbytestoread,number of bytes to read lpdword lpnum...

什麼是重疊I O

在windows中有乙個api叫readfile bool readfile handle hfile,handle to file lpvoid lpbuffer,data buffer dword nnumberofbytestoread,number of bytes to read lpdw...