2009年3月27日 星期五

RAID - 磁碟陣列


磁碟陣列(Redundant Array of Independent disks, RAID)技術可以提供系統容錯能力,當伺服器的硬碟故障時可以預防資料的遺失,磁碟機是一個機械設備,終究有可能會發生故障。RAID是採取同位元檢查技術或複製資料技術,來達成系統容錯的功能。

RIAD 1使用較簡單的資料複製技術來提供系統容錯。RAID 2架構與其他架構不同,因為他不使用複製或同位檢核資訊提供容錯,RAID 2是使用一組特別的漢明碼(Hamming Code)。RAID 3、RAID 4、RAID 5是在資料寫入磁碟陣列時,使用同位檢核資訊計算來提供容錯功能。在RAID 3、RAID 4、RAID 5陣列系統中,當一顆磁碟機故障時。可以使用同位檢核資訊和其他磁碟機上的資料,一起計算出故障磁碟機上的資料。雖然重建遺失資料速度有點慢,但磁碟子系統和網路伺服器可以持續執行其功能。

RAID的等級並不重要,雖然許多廠商提供文獻資料中都有提及。但我們將討論的是較常見使用的RAID類型。

RAID一詞最早是出現在「A Case for Redundant Arrays of Inexpensive Disks(RAID)」這篇論文裡(於1987年由柏克萊大學的David A. Patterson、Garth A. Gibson 和 Randy H. katz提出),其中清楚的定義了RAID。論文中定義了RAID2的五個層級,並[認為RAID是單一昂貴磁碟(Single Large Expensive Disk, SLED)的另一種技術解決方案。



  • RAID 0
RAID 0並位出現於1988年的柏克萊論文發表上。實際上,他並不是一種RAID,因為他並不提供任何備份儲存的功能。RAID 0技術上是將一些或一組磁碟機當作單一磁碟機使用。資料劃成許多區塊,分別寫入磁碟陣列中所有磁碟機,可以同時對陣列中所有磁碟機做資料的存取,因此改進資料讀寫的效能。但如果陣列中一顆磁碟故障,所有資料將遺失。RAID 0技術又叫做磁碟等量技術(Disk Striping),但沒有同位元檢查碼,因此可以提供效能卻無法提供可靠度。

  • RAID 1
至少要兩台磁碟機才有辦法實做RAID 1。除了RAID 0,其餘的RAID都至少需要兩台以上的磁碟機。RAID 1會將所有資料分別寫入兩台不同的磁碟機上。使用RAID 1存放20GB資料時,必須要用兩顆20G的磁碟機。如此一來,勢必損失50%的的儲存空間。而且RAID 1並無法改善效能,但可以提供可靠度。

而RAID 1可以透過兩種方式實做,第一種是磁碟鏡射技術,第二種是使用磁碟複製技術。在磁碟鏡射(Disk Mirroring)技術中,兩台磁碟機連接道相同控制器上。當磁碟控制器若發生故障時,將無法讀取磁碟機上的任何資料,這是採用磁碟鏡射技術的唯一缺點。為解決此一缺點,可以採用磁碟複製(Disk Duplexing)技術來取代磁碟鏡射技術。

在磁碟複製技術中,各磁碟機是連到不同的磁碟控制器上。如此一來即解決了磁碟鏡射技術的缺點。但付出的代價是額外的磁碟控制器。

  • RAID 2

RAID 2是採用漢明編碼(Hamming Code),位所有保存在RAID 2磁碟陣列的資料,產生錯誤改正碼(糾錯碼)ECC。ECC可以查出並且改正單一位元錯誤,以及發現雙重位元錯誤。每當讀取磁碟中資料時,會同時讀取ECC碼並解碼。RAID 2的技術在實行上是相當昂貴和困難,同時額外負擔比例也是較高的。例如,在RAID 2中每4個資料位元就必須耗費三個同位元檢查碼。

由於RAID 2在實做上費用難度都相當高,因此並沒有商業化。此外,RAID 2必須使用至少三台磁碟機才能運作。

  • RAID 3

RAID 3使用同位元級的同位元檢查,使用一台額外的一台磁碟機來提供容錯,以便克服在單一台磁碟機發生故障的情況。在RAID 3中要求在陣列中所有磁碟機必須同時運作。輸出資料時,資料位元和運算出來的檢查位元會同時存到陣列的磁碟機中。至少要三台磁碟機才能運作RAID 3磁碟陣列。可以提供容錯,也可以略為提高效能。

  • RAID 4

RAID 4使用區塊層級的同位元檢查,使用額外一台位元檢查磁碟機來提供容錯,以便克服單一磁碟機發生故障的狀況。資料輸入時,資料和計算出來的同位元檢查資訊會寫到磁碟陣列中。由於磁碟機並不需要同步,所以可以單獨的存取磁碟機。至少需要三台磁碟機才能實做RAID 4磁碟陣列。還有,RAID 4在做寫入動作時,一定會用到同位元檢查磁碟機。如此一來,同位元檢查的磁碟機會很容易首先發生故障,這是缺點。可以提供容錯機制,但不能增加效能。

  • RAID 5
RAID 5使用磁碟等量技術並採取同位元檢查。它採用區塊層級的同位元檢查,但同位元檢查碼被分散到磁碟陣列的所有磁碟機中。這克服了在RAID 4磁碟陣列磁碟機易於故障的缺點。在RAID 5磁碟陣列中,儲存容量因同位元檢查碼的損失,相當於陣列中的一台磁碟機。若有三台10G容量的磁碟機,那實際上能儲存資料的空間只有20G。

  • RAID 0/1
RAID 0/1亦被稱為RAID 0+1,有時被稱為RAID 10。這是由於兩個最佳模式的結合。具有RAID 0的效能與RAID 1的複製性。RAID 0/1磁碟陣列至少需要四台磁碟機才能運作。RAID 0/1俱備兩個可以互相鏡射的RAID 0磁碟陣列。RAID 0機制提供的高效能,而RAID 1則提供了容錯的可靠性。是一舉兩得的完美方案。


沒有留言: