目前人們逐漸認識了磁盤陣列技術。磁盤陣列技術可以詳細地劃分為若干個級別0-5 RAID技術,並且又發展了所謂的 RAID Level 10, 30, 50的新的級別。RAID是廉價冗余磁盤陣列(Redundant Array of Inexpensive Disk)的簡稱。用RAID的好處簡單的說就是:安全性高,速度快,數據容量超大。
某些級別的RAID技術可以把速度提高到單個硬盤驅動器的400%。磁盤陣列把多個硬盤驅動器連接在一起協同工作,大大提高了速度,同時把硬盤系統的可靠性提高到接近無錯的境界。這些“容錯”系統速度極快,同時可靠性極高。
由磁盤陣列角度來看
磁盤陣列的規格最重要就在速度,也就是CPU的種類。我們知道SCSI的演變是由SCSI 2 (Narrow, 8 bits, 10MB/s), SCSI 3 (Wide, 16bits, 20MB/s), Ultra Wide (16bits, 40MB/s), Ultra 2 (Ultra Ultra Wide, 80MB/s), Ultra 3 (Ultra Ultra Ultra Wide, 160MB/s),在由SCSI到Serial I/O,也就是所謂的 Fibre Channel (FC-AL, Fibre Channel - Arbitration Loop, 100 – 200MB/s), SSA (Serial Storage Architecture, 80 – 160 MB/s), 在過去使用 Ultra Wide SCSI, 40MB/s 的磁盤陣列時,對CPU的要求不須太快,因為SCSI本身也不是很快,但是當SCSI演變到Ultra 2, 80MB/s時,對CPU的要求就非常關鍵。一般的CPU, (如 586)就必須改為高速的RISC CPU, (如 Intel RISC CPU, i960RD 32bits, i960RN 64 bits),不但是RISC CPU, 甚至於還分 32bits, 64 bits RISC CPU 的差異。586 與 RISC CPU 的差異可想而知 ! 這是由磁盤陣列的觀點出發來看的。
由服務器的角度來看
服務器的結構已由傳統的 I/O 結構改為 I2O ( Intelligent I/O, 簡稱 I2O ) 的結構,其目的就是為了減少服務器CPU的負擔,才會將系統的 I/O 與服務器CPU負載分開。Intel 因此提出 I2O 的架構,I2O 也是由一顆 RISC CPU ( i960RD 或I960RN ) 來負責 I/O 的工作。試想想若服務器內都已是由 RISC i960 CPU 來負責 I/O,結果磁盤陣列上卻仍是用 586 CPU,速度會快嗎 ?
由操作系統的角度來看
SCO OpenServer 5.0 32 bits
MicroSoft Windows NT 32 bits
SCO Unixware 7.x 64 bits
MicroSoft Windows NT 2000 32 bit 64 bits
SUN Solaris 64 bits ……..其他操作系統
在操作系統都已由 32 bits 轉到 64 bits,磁盤陣列上的CPU 必須是 Intel i960 RISC CPU才能滿足速度的要求。586 CPU 是無法滿足的!
磁盤陣列的功能
磁盤陣列內的硬盤連接方式是用SCA-II整體後背板還是只是用SCSI線連的?在SCA-II整體後背板上是否有隔絕芯片以防硬盤在熱插拔時所產生的高/低電壓,使系統電壓回流,造成系統的不穩定,產生數據丟失的情形。我們一定要重視這個問題,因為在磁盤陣列內很多硬盤都是共用這同一SCSI總線
一個硬盤熱插拔,可不能影響其它的硬盤!要麼是熱插拔或帶電插拔?硬盤有分熱插拔硬盤,80針的硬盤是熱插拔硬盤,68針的不是熱插拔硬盤,有沒有熱插拔,在電路上的設計差異就在於有沒有保護線路的設計,同樣的硬盤拖架也是一樣有分真的熱插拔及假的熱插拔的區別。
磁盤陣列內的硬盤是否有順序的要求?也就是說硬盤可否不按次序地插回陣列中,數據仍能正常的存取?很多人認為不是很重要,不太會發生,但是可能會發生的,我們就要防止它發生。假如您用六個硬盤做陣列,在最出初始化時,此六個硬盤是有順序放置在磁盤陣列內,分為第一、第二…到第六個硬盤,是有順序的。
如果您買的磁盤陣列是有順序的要求,則您要注意了:有一天您將硬盤取出,做清潔時一定要以原來的擺放順序插回磁盤陣列中,否則您的數據可能因硬盤順序與原來的不苻,磁盤陣列上的控制器不認而數據丟失!因為您的硬盤的SCSI ID號亂掉所致。現在的磁盤陣列產品都已有這種不要求硬盤有順序的功能,為了防止上述的事件發生,都是不要求硬盤有順序的。
我們將討論這些新技術,以及不同級別RAID的優缺點。我們並不想涉及那些關鍵性的技術細節問題,而是將磁盤陣列和RAID技術介紹給對它們尚不熟悉的人們。相信這將幫助你選用合適的RAID技術。
硬盤數據跨盤(Spanning)
數據跨盤技術使多個硬盤像一個硬盤那樣工作,這使用戶通過組合已有的資源或增加一些資源來廉價地突破現有的硬盤空間限制。
4個300兆字節的硬盤驅動器連結在一起,構成一個SCSI系統。用戶只看到一個有1200兆字節的C盤,而不是看到C, D, E, F, 4個300兆字節的硬盤。在這樣的環境中,系統管理員不必擔心某個硬盤上會發生硬盤安全檢空間不夠的情況。因為現在1200兆字節的容量全在一個卷(Volume)上(例如硬盤C上)。系統管理員可以安全地建立所需要的任何層次的文件系統,而不需要在多個單獨硬盤環境的限制下,計劃他的文件系統。
硬盤數據跨盤本身並不是RAID,它不能改善硬盤的可*性和速度。但是它有這樣的好處,即多個小型廉價硬盤可以根據需要增加到硬盤子系統上。
磁盤陣列分類
硬盤分段(Disk Striping, RAID 0)
硬盤分段的方法把數據寫到多個硬盤,而不是只寫到一個盤上,這也叫作RAID O,在磁盤陣列子系統中,數據按系統規定的“段”(Segment)為單位依次寫入多個硬盤,例如數據段1寫入硬盤0,段2寫入硬盤1,段3寫入硬盤2等等。當數據寫完最後一個硬盤時,它就重新從盤0的下一可用段開始寫入,寫數據的全過程按此重復直至數據寫完。
段由塊組成,而塊又由字節組成。因此,當段的大小為4個塊,而塊又由256個字節組成時,依字節大小計算,段的大小等於1024個字節。第1~1024字節寫入盤0,第1025~2048字節寫盤1等。假如我們的硬盤子系統有5個硬盤,我們要寫20,000個字節
總之,由於硬盤分段的方法,是把數據立即寫入(讀出)多個硬盤,因此它的速度比較快。實際上,數據的傳輸是順序的,但多個讀(或寫)操作則可以相互重迭進行。這就是說,正當段1在寫入驅動器0時,段2寫入驅動器1的操作也開始了;而當段2尚在寫盤驅動器1時,段3數據已送驅動器2;如此類推,在同一時刻有幾個盤(即使不是所有的盤)在同時寫數據。因為數據送入盤驅動器的速度要遠大於寫入物理盤的速度。因此只要根據這個特點編制出控制軟件,就能實現上述數據同時寫盤的操作。
遺憾的是RAID 0不是提供冗余的數據,這是非常危險的。因為必須保證整個硬盤子系統都正常工作,計算器才能正常工作,例如,假使一個文件的段1(在驅動器0),段2(在驅動器1),段3(在驅動器2),則只要驅動器0, 1, 2中有一個產生故障,就會引起問題;如果驅動器1故障,則我們只能從驅動器物理地取得段1和段3的數據。幸運的是可以找到一個解決辦法,這就是硬盤分段和數據冗余。