RAID磁盤冗余探究
RAID的全稱是Redundant Arrays of Inexpensive Disk,可以翻譯為廉價的磁盤冗余陣列。由加利福尼亞大學伯克利分校的一位教授在1988年提出,是一種磁盤管理方式。其產生的初衷是為了降低成本,但是為了達到RAID的功能,其造價并不便宜,所以后來改為Redundant Arrays of Independent Disks(獨立磁盤冗余陣列)
其工作原理是:多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供
RAID的實現方式:操作系統(如windows, linux)稱為軟RAID
硬件卡實現(但價格昂貴)稱為硬RAID
如果是軟RAID,假如有幾塊大小不一的磁盤,每個磁盤都取100G來組合成RAID,這時系統就會產生對應的RAID設備,如/dev/sm0,/dev/sm1,/dev/sm2… 如果再將RAID掛載,假如掛載的是/mnt/raid目錄下,對應的就是幾塊磁盤而非一塊磁盤的大小,這里不同于分區。
RAID級別:
RAID-0: 條帶卷,strip
如果是RAID-0,假設有一個非常大的名為file的文件存在于掛載的設備中,如/dev/sm0,掛載在/mnt/raid0下。RAID-0會將file切割成叫做chunk的單位,這樣文件就可以跨磁盤存儲。那么RAID-0到底是怎么存儲的呢?先看看下面的圖和解釋吧!
解釋:如圖,代表RAID-0的存儲方式,即如果有四個盤,其寫入順序為(1)1、(2)2、(3)3、(4)4、(1)5、(2)6…….。這樣,不論你是寫入數據還是讀取數據,都不是一塊磁盤在工作,而是四塊磁盤同時在讀取寫入,這就大大加快了讀取寫入時間。但是,有優點也有缺點。其缺點是如果四個磁盤同時寫入,沒有重復備份的磁盤的話,一旦有一塊磁盤損壞,就會導致所有數據丟失。
補充:RAID在生產環境中至少要有二塊磁盤,其磁盤利用率是100%。
RAID-1: 鏡像卷,mirror,其數據存放方式如下:
解釋:如圖可知,(1)和(2)存放的是一樣的數據。這樣存取,有利于數據的保存,只要有一塊磁盤存在,數據就不會丟失。但是其造價也高。數據與造價相比,道消彼長,如果是存放比較重要的數據,建議還是將造價放在次要位置。至少要有二塊磁盤,利用率為1/n。
RAID-4:與RAID-0相似,將文件分割成chunk。但是其寫入與讀取方式有所不同,詳細如圖所示:
解釋:同樣是四個磁盤,但是前三個磁盤同RAID-0一樣按照(1)1、(2)2、(3)3、(1)4、(2)5……的方式存儲,至于第四個磁盤則存放通過異或校驗得出的數據。這樣如果損壞一塊磁盤,可以加入一個新的,通過校驗信息得出損壞的盤的數據。但是如果壞了第二塊,就沒辦法恢復了,所以RAID-4只允許損壞一塊磁盤。但是RAID4在實際中用到的并不多,因為事實證明,通常放校驗數據的磁盤最容易壞。磁盤至少要有三塊,磁盤利用率為n-1/n 補充:什么是異或校驗,如下
原理:相同為假,相異為真,假為0,真為1,如
1000110 ①
0011011 ②
1011101 ①和②按照其原理得出這個結果
RAID-5:也是同RAID-4相似,但存放校驗數據的盤不是固定的。如下圖:
解釋:這樣每個磁盤都承擔相同的壓力,有效的解決了磁盤的冗余性,所以在實際中用到的比較多。允許壞一塊磁盤,所以適用于保存不太重要的數據。但想要保持數據的百分之百安全,仍是不行。磁盤至少要有三塊,磁盤利用率為n-1/n 。
RAID-6:雖然與RAID-0,RAID-4,RAID-5相似,但是更復雜,成本也更高了。
解釋:RAID-6允放損壞兩塊磁盤,所以適用于存放比較重要的數據。磁盤至少要有四塊,磁盤利用率為n-2/n。
RAID-10:
解釋:如圖可知,先使用RAID-1的存儲方式,再使用RAID-0的方式,RAID-10相比RAID-01,在性能和使用率上沒有多大區別,但RAID-10更好的是允許損壞的磁盤更多。
RAID-01:RAID-01,是RAID-0和RAID-1的組合,其工作方式如下:
解釋:方框內的數據采用RAID-0的方式存取下來,同時再用RAID-1的方式,備份一份,使兩個方框內的內容相同。這樣,如果一個或多個方框內的磁盤,仍然可以利用另一個方塊內的數據恢復。但是如果兩邊各壞一個,那數據仍然也恢復不了。
原創文章,作者:xxcj,如若轉載,請注明出處:http://www.www58058.com/85492