天天看點

RAID磁盤陣列是什麼

在單機時代,采用單塊磁盤進行資料存儲和讀寫的方式,由于尋址和讀寫的時間消耗,導緻I/O性能非常低,且存儲容量還會受到限制。另外,單塊磁盤極其容易出現實體故障,經常導緻資料的丢失。是以大家就在想,有沒有一種辦法将多塊獨立的磁盤結合在一起組成一個技術方案,來提高資料的可靠性和I/O性能呢。

在這種情況下,RAID技術就應運而生了。

一、RAID 是什麼?

RAID ( Redundant Array of Independent Disks )即獨立磁盤備援陣列,簡稱為「磁盤陣列」,其實就是用多個獨立的磁盤組成在一起形成一個大的磁盤系統,進而實作比單塊磁盤更好的存儲性能和更高的可靠性。

二、RAID 有哪些?

RAID方案常見的可以分為:

  1. RAID0
  2. RAID1
  3. RAID5
  4. RAID6
  5. RAID10

1、RAID0

RAID0 是一種非常簡單的的方式,它将多塊磁盤組合在一起形成一個大容量的存儲。當我們要寫資料的時候,會将資料分為N份,以獨立的方式實作N塊磁盤的讀寫,那麼這N份資料會同時并發的寫到磁盤中,是以執行性能非常的高。

RAID磁盤陣列是什麼

RAID0 的讀寫性能理論上是單塊磁盤的N倍(僅限理論,因為實際中磁盤的尋址時間也是性能占用的大頭)。

但RAID0的問題是,它并不提供資料校驗或備援備份,是以一旦某塊磁盤損壞了,資料就直接丢失,無法恢複了。是以RAID0就不可能用于高要求的業務中,但可以用在對可靠性要求不高,對讀寫性能要求高的場景中

2、RAID1

RAID1 是磁盤陣列中機關成本最高的一種方式。因為它的原理是在往磁盤寫資料的時候,将同一份資料無差别的寫兩份到磁盤,分别寫到工作磁盤和鏡像磁盤,那麼它的實際空間使用率隻有50%了,兩塊磁盤當做一塊用,這是一種比較昂貴的方案,原理圖如下:

RAID磁盤陣列是什麼

RAID1其實與RAID0效果剛好相反。RAID1 這種寫雙份的做法,就給資料做了一個備援備份。這樣的話,任何一塊磁盤損壞了,都可以再基于另外一塊磁盤去恢複資料,資料的可靠性非常強,但性能就沒那麼好了。

3、RAID5

這是目前用的最多的一種方式,因為 RAID5 是一種将 存儲性能、資料安全、存儲成本 兼顧的一種方案。

在了解RAID5之前,我們可以先簡單看一下RAID3,雖然RAID3用的很少,但弄清楚了RAID3就很容易明白RAID5的思路。

RAID3的方式是:将資料按照RAID0的形式,分成多份同時寫入多塊磁盤,但是還會另外再留出一塊磁盤用于寫「奇偶校驗碼」。例如總共有N塊磁盤,那麼就會讓其中額度N-1塊用來并發的寫資料,第N塊磁盤用記錄校驗碼資料。一旦某一塊磁盤壞掉了,就可以利用其它的N-1塊磁盤去恢複資料。

但是由于第N塊磁盤是校驗碼磁盤,是以有任何資料的寫入都會要去更新這塊磁盤,導緻這塊磁盤的讀寫是最頻繁的,也就非常的容易損壞。

其他原理圖如下:

RAID磁盤陣列是什麼

RAID5模式中,不再需要用單獨的磁盤寫校驗碼了。它把校驗碼資訊分布到各個磁盤上,其原理圖如下:

RAID磁盤陣列是什麼

例如,總共有N塊磁盤,那麼會将要寫入的資料分成N份,并發的寫入到N塊磁盤中,同時還将資料的校驗碼資訊也寫入到這N塊磁盤中(資料與對應的校驗碼資訊必須得分開存儲在不同的磁盤上)。一旦某一塊磁盤損壞了,就可以用剩下的資料和對應的奇偶校驗碼資訊去恢複損壞的資料。

RAID5校驗位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn為資料塊,P為校驗,xor為異或運算)

RAID5的方式,最少需要三塊磁盤來組建磁盤陣列,允許最多同時壞一塊磁盤。如果有兩塊磁盤同時損壞了,那資料就無法恢複了。

4、RAID6

與RAID 5相比,RAID 6增加第二個獨立的奇偶校驗資訊塊。兩個獨立的奇偶系統使用不同的算法,資料的可靠性非常高,任意兩塊磁盤同時失效時不會影響資料完整性,其原理圖如下:

RAID磁盤陣列是什麼

RAID 6需要配置設定給奇偶校驗資訊更大的磁盤空間和額外的校驗計算,相對于RAID 5有更大的IO操作量和計算量,其“寫性能”強烈取決于具體的實作方案,是以RAID 6通常不會通過軟體方式來實作,而更可能通過硬體方式實作。

同一數組中最多容許兩個磁盤損壞。更換新磁盤後,資料将會重新算出并寫入新的磁盤中。依照設計理論,RAID 6必須具備四個以上的磁盤才能生效。可使用的容量為硬碟總數減去2的差,乘以最小容量。

RAID 6在硬體磁盤陣列卡的功能中,也是最常見的磁盤陣列等級。

5、RAID10

RAID10其實就是RAID1與RAID0的一個合體,RAID 10是先分割資料再鏡像,再将所有硬碟分為兩組,視為以RAID 1作為最低組合,然後将每組RAID 1視為一個“硬碟”組合為RAID 0運作。

原理圖如下:

RAID磁盤陣列是什麼

磁盤陣列比較表

下面給出以上磁盤陣列的比較表,加深印象:

RAID磁盤陣列是什麼

參考資料:

https://zhuanlan.zhihu.com/p/51170719

https://zh.wikipedia.org/wiki/RAID

繼續閱讀