標籤:儲存 lvm raid
最近在思考一種廉價方便的cinder整合LVM driver的方式,那就是cinder+LVM+多塊盤組成的RAID硬碟。這樣的情況下就要根據讀寫需求和可用資源考慮採用什麼樣的RAID,以及怎樣選擇實現raid的方式,有兩種分別為硬體RAID和軟體RAID,為了溫習一下,就順便畫些圖(圖中使用的硬碟數都是該RAID下需要的最少硬碟數)總結下各個RAID技術。
軟RAID與硬RAID
硬RAID可以理解為需要RAID卡,通過RAID卡實現對多塊盤的管理, 把多塊盤組成RAID冗餘陣列,如何組合成RAID,關鍵就是RAID卡如何?定址。
軟RAID 通過作業系統層次的軟體實現RAID,如我們熟悉的linux下MD軟體,命令列為mdadm,軟raid優點是不需要花費買raid卡的錢,但是軟raid耗費記憶體,而且效能沒有硬體RAID強,功能也沒有硬體raid多。
接著下面介紹各種RAID技術
一、RAID 0
採用條帶技術,以位元組或位為單位按條帶(各個盤起始位移量相同,之後的一定數量位元組的區段)在多個磁碟並行寫,可以提高I/O讀寫效能,但它沒有像RAID1一樣有資料冗餘,一但硬碟故障, 就玩完 。結構如。
二、RAID 1
採用鏡像技術,每次寫的時候, 要在另一塊盤上就拷貝,這就是為了容災,寫效能降低。資料結構如
三、RAID 2
首先採用了條帶技術,並通過增加冗餘盤存放為每個位元進行海明碼編碼的資料, 這樣可以實現校正和錯誤修正,需要把2的n次冪塊盤作為校正資料盤。結構如
四、RAID 3
採用條帶技術, 寫入時以位元為分區寫,同時增加一塊盤存放同位位元資料,這樣的話。當資料盤壞了一塊, 重新放上硬碟可通過校正盤和其他資料盤恢複資料。結構如
五、RAID 4
首先為什麼有RAID4,是為了提高並發機率而生,它在RAID3基礎上,採用更大的分區來作為單位寫入資料,為什麼要提高寫入資料區塊大小呢,假設原來在RAID3時候要寫入A和B 資料到第一塊磁碟,A資料正在佔用校正盤,那麼B資料需要等待, 那現在提高了寫入資料大小了, 那A和B也許就可以組成一個大塊一起寫入了, 這就是實現了這種偽並發。這種RAID需要前期寫入時進行資料的最佳化,NetAPP的WAFL檔案系統就使用RAID4. 一般RAID4很少用。
六、 RAID 5
RAID 5採用真正的實現了並發I/O,不會像RAID3一樣有熱點盤,它把同位資料平均分配到多塊磁碟上,如何能提高並發I/O呢,比如有四塊盤,假設第一塊磁碟寫入A資料時候校正區在第二塊磁碟,此時第三塊和第四塊磁碟是閒置,當在某個條帶寫B資料到第三塊盤,而第四塊盤存B資料的校正位時, 這樣A資料和B資料就可以同時讀寫了。
七、 RAID 6
RAID 6是在RAID5 的基礎上增加了一個校正區, 這個每個條帶都有兩個校正區, 他們採用不用的校正演算法,資料的可靠性增強
接下來介紹幾種組合RAID
一、RAID01
總磁碟數為N,在每個N/2塊盤做RAID0, 以四塊盤為例所示,有鏡像有條帶, 但是冗餘度不如RAID10好,接下來RAID10中總結
二、RAID10
順序寫入D1,D2,D3,D4,資料區塊分布分布如,其實就相當與奇數盤組成raid0, 同時偶數盤作為奇數盤的備份,它與RAID01相比,優勢在於,只要互為鏡像的兩塊盤不同時壞,資料就能正常讀寫。而RAID01中組成raid0的資料盤壞一塊都不行,他要求組成raid0的一組盤完好時才能正常的讀寫。以圖示的四塊盤為例,RAID10能接受{1,3} {1,4} {2,3} {2,4} 塊盤壞,而RAID01隻能接受{1,2} {3,4}塊盤損壞。
三、RAID30
與RAID50一樣,加一層RAID0 就是把資料弄的更分散,讀寫效能更高。容錯能力更強。
四、RAID50