磁碟陣列技術
RAID技術是一種組織和使用磁碟的一種方法。它將多塊獨立的物理磁碟按某種方式組合起來,形成一個邏輯磁碟。新的邏輯磁碟將會比單個磁碟有更高的存儲性能。顯然,對於相同的物理磁碟,不同的組織方式將產生不同的邏輯磁碟,組成磁碟陣列的不同方式稱為RAID級別。由於RAID技術提供了比通常的磁碟存儲更高的性能指標、數據完整性和數據可用性,同時也具有極高的性價比,因此,越來越多的企業用戶採用RAID技術來存儲和保護自己的數據
RAID的基本原理是,數據必須使用一致的形式被分散到陣列中的驅動器上。要達到這個目的,數據必須被分割成大小一致的“塊”每一塊都會根據所用的RAID級別而寫入其中的一個硬碟驅動器。當數據要被讀取時,這個進程就會反過來進行,造成多個驅動器好像是一個大驅動器的假象。
RAID磁碟陣列是將多個磁碟組合起來的一種存儲設備,將數據以不同的方式組織到不同磁碟上,構成不同的RAID級別。最初磁碟陣列的出現只是將一些磁碟首尾相連起來擴大存儲空間用的,在某些場合下,RAID級別的分類中有一種稱為JBOD(Justa Bunch Of Disks),實際上JBOD嚴格上不能算是RAID的等級,只是一個將多個盤合併起來的一個大的邏輯盤,沒有任何容錯機制以及讀寫性能的提升。
最常見的RAID級別有RAID0-6,其中RAID2-4並不常用,主要是相比於其它RAID級別沒有什麼優勢,也沒有合適的套用場景。
磁碟陣列級別
磁碟陣列中針對不同的套用使用的不同技術,稱為RAID level,每一個level代表一種技術。這個level並不代表技術的高低,level5並不高於level3,level 1也不低過level 4,至於要選擇哪一種RAID level的產品,決定於用戶的操作環境(operating environment)及套用(application),與level的高低沒有必然的關係。
磁碟延伸(Disk Spanning)
磁碟延伸是在邏輯上把幾個物理盤一個接一個地串聯在一起,一個邏輯磁碟可能由多個物理磁碟構成。這就是disk spanning的意義,因為把小容量的磁碟延伸為大容量的單一磁碟,用戶不必規劃數據在各磁碟的分布,而且提高了磁碟空間的使用率。並使磁碟容量幾乎可作無限的延伸;而各個磁碟一起作取存的動作,比單一磁碟更為快捷。
數據分段( Data Striping)
因為磁碟陣列是將同一陣列的多個磁碟視為單一的虛擬磁碟(virtualdisk),所以其數據是以分塊的方式順序存放在磁碟陣列中,數據塊再按需要分段(strip),從第一個磁碟開始放,放滿一個strip,然後在下一個磁碟中繼續放入數據,放到最後一個磁碟再回到第一個磁碟放起,直到數據分布完畢。至於分段的大小視系統而定,有的系統或以1KB最有效率,或以4KB,或以6KB,甚至是4MB或8MB的,但除非數據小於一個扇區(sector,即512 bytes),否則其分段應是512的倍數。因為磁碟的讀寫是以一個扇區為單位,若數據小於512bytes,系統讀取該扇區後,還要做組合或分組(視讀或寫而定)的動作,浪費時間。數據以分段的方式儲存在不同的磁碟,整個陣列的各個磁碟可同時做讀寫操作,故數據分段使數據的存取有最好的效率,理論上本來讀一個包含四個分段的數據所需要的時間約二(磁碟的access time+數據的transfer time) X 4次,現在只要一次就可以完成。
RAID-0是將多個磁碟並列起來,在存放數據的時候將相鄰地址塊存儲在不同磁碟上,有點類似於多體交叉相鄰存儲,充分發揮了多個磁碟的並行讀寫性能,但是沒有任何的冗餘信息,因此只適應於對性能有較高要求,對可靠性無要求的場合。
RAID-1則是幾個磁碟互相作為鏡像,一個磁碟壞掉了,鏡像磁碟的數據還在,這樣安全性極高,在一些特定的套用環境下,由於存在兩個可讀取的地方,也可以獲得很好的讀速度。但是RAID-1的缺點也是比較明顯的,就是對於存儲空間比較浪費,對於磁碟空間的利用率是所有的RAID級別中最低的一個。
RAID-5則是對於儲存的性能、可靠性以及磁碟利用率都兼顧的一個存儲方案。它利用在一個條帶中作奇偶校驗,並將這個校驗信息分散存儲於各個磁碟上,當有一個磁碟損壞,根據其它磁碟的數據可以將這個磁碟的數據恢復出來。它是一個折中的方案,RAID-5的可靠性比RAID-0要高,而磁碟利用率比RAID-1要高。但是,RAID-5隻能同時允許有一個磁碟壞損,如果兩個磁碟同時壞數據就會丟失。在實際套用中,兩個磁碟同時壞的機率是很低的,因此RAID-5得到了廣泛的套用。
RAID-6隻通過增加第二個獨立的校驗塊達到同時可以有兩塊磁碟損壞而數據不丟失,但是RAID-6由於寫性能比較差,在實際套用中很少使用,況且RAID-5己經可以滿足大多數場景對於可靠性的需求。
還有一些不常見的RAID級別,比如RAID-10,是RAID-0和RAID-1的一種組合。用6個盤來組成一個RAID- 10,可以將這6個盤分為3個一組,這兩組互為鏡像,可以看作是RAID-1,而在每一組內部的3個盤又組成各自的RAID-0。與此類似的還有RAID-01,RAID-50, RAID- 53等等。