由服務器的角度來看
服務器的結構已由傳統的I/O結構改為I2O(IntelligentI/O,簡稱I2O)的結構,其目的就是為了減少服務器CPU的負擔,才會將系統的I/O與服務器CPU負載分開。Intel因此提出I2O的架構,I2O也是由一顆RISCCPU(i960RD或I960RN)來負責I/O的工作。試想想若服務器內都已是由RISCi960CPU來負責I/O,結果磁盤陣列上卻仍是用586CPU,速度會快嗎?
由操作系統的角度來看
在操作系統都已由32bits轉到64bits,磁盤陣列上的CPU必須是Inteli960RISCCPU才能滿足速度的要求。586CPU是無法滿足的!
磁盤陣列的功能
使用磁盤陣列的好處,在于數據的安全、存取的速度及超大的存儲容量。如何確保數據的安全,則取決于磁盤陣列的設計與品質。其中幾個功能是必須考慮的:是否有環境監控器針對溫度、電壓、電源、散熱風扇、硬盤狀態等進行監控。磁盤陣列內的硬盤連接方式是用SCA-II整體后背板還是只是用SCSI線連的?在SCA-II整體后背板上是否有隔絕芯片以防硬盤在熱插拔時所產生的高/低電壓,使系統電壓回流,造成系統的不穩定,產生數據丟失的情形。我們一定要重視這個問題,因為在磁盤陣列內很多硬盤都是共用這同一SCSI總線!一個硬盤熱插拔,可不能引響其它的硬盤!甚幺是熱插拔或帶電插拔?硬盤有分熱插拔硬盤,80針的硬盤是熱插拔硬盤,68針的不是熱插拔硬盤,有沒有熱插拔,在電路上的設計差異就在于有沒有保護線路的設計,同樣的硬盤拖架也是一樣有分真的熱插拔及假的熱插拔的區別。磁盤陣列內的硬盤是否有順序的要求?也就是說硬盤可否不按次序地插回陣列中,數據仍能正常的存取?很多人認為不是很重要,不太會發生,但是可能會發生的,我們就要防止它發生。假如您用六個硬盤做陣列,在最出初始化時,此六個硬盤是有順序放置在磁盤陣列內,分為第一、第二…到第六個硬盤,是有順序的,如果您買的磁盤陣列是有順序的要求,則您要注意了:有一天您將硬盤取出,做清潔時一定要以原來的擺放順序插回磁盤陣列中,否則您的數據可能因硬盤順序與原來的不苻,磁盤陣列上的控制器不認而數據丟失!因為您的硬盤的SCSIID號亂掉所致。現在的磁盤陣列產品都已有這種不要求硬盤有順序的功能,為了防止上述的事件發生,都是不要求硬盤有順序的。
我們為什幺需要磁盤陣列
目前人們逐漸認識了磁盤陣列技術。磁盤陣列技術可以詳細地劃分為若干個級別0-5RAID技術,并且還發展了所謂的RAIDLevel10,30,50的新的級別。RAID是廉價冗余磁盤陣列(RedundantArrayofInexpensiveDisk)的簡稱。用RAID的好處簡單的說就是:安全性高,速度快,數據容量超大某些級別的RAID技術可以把速度提高到單個硬盤驅動器的400%。磁盤陣列把多個硬盤驅動器連接在一起協同工作,大大提高了速度,同時把硬盤系統的可靠性提高到接近無錯的境界。這些“容錯”系統速度極快,同時可靠性極高。本節將討論這些新技術,以及不同級別RAID的優缺點。我們并不想涉及那些關鍵性的技術細節問題,而是將磁盤陣列和RAID技術介紹給對它們尚不熟悉的人們。相信這將幫助你選用合適的RAID技術。
RAID級別的定義
下表提供了6級RAID的簡單定義,本書其后部分將對各級RAID進行更詳盡的描述。
RAID級別,描述,速度*,容錯性能
RAID0,硬盤分段,硬盤并行輸入/出,無
RAID1,硬盤鏡像,沒有提高,有(允許單個硬盤錯)
RAID2,硬盤分段加漢明碼糾錯,沒有提高,有(允許單個硬盤錯)
RAID3,硬盤分段加專用,奇偶校驗盤,硬盤并行輸入/出,有(允許單個硬盤錯)
RAID4,硬盤分段加專用,奇偶校驗盤需異步硬盤,硬盤并行輸入/出,有(允許單個硬盤錯)
RAID5,硬盤分段加奇偶校驗,分布在各硬盤,
硬盤并行輸入/出比RAID0稍慢,有(允許單個硬盤錯)
*對于單一容量昂貴硬盤(SLED)的性能提高
硬盤數據跨盤(Spanning)
數據跨盤技術使多個硬盤像一個硬盤那樣工作,這使用戶通過組合已有的資源或增加一些資源來廉價地突破現有的硬盤空間限制。4個300兆字節的硬盤驅動器連結在一起,構成一個SCSI系統。用戶只看到一個有1200兆字節的C盤,而不是看到C,D,E,F,4個300兆字節的硬盤。在這樣的環境中,系統管理員不必擔心某個硬盤上會發生硬盤安全檢空間不夠的情況。因為現在1200兆字節的容量全在一個卷(Volume)上(例如硬盤C上)。系統管理員可以安全地建立所需要的任何層次的文件系統,而不需要在多個單獨硬盤環境的限制下,計劃他的文件系統。硬盤數據跨盤本身并不是RAID,它不能改善硬盤的可靠性和速度。但是它有這樣的好處,即多個小型廉價硬盤可以根據需要增加到硬盤子系統上。
硬盤分段(DiskStriping,RAID0)
硬盤分段的方法把數據寫到多個硬盤,而不是只寫到一個盤上,這也叫作RAIDO,在磁盤陣列子系統中,數據按系統規定的“段”(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;如此類推,在同一時刻有幾個盤(即使不是所有的盤)在同時寫數據。因為數據送入盤驅動器的速度要遠大于寫入物理盤的速度。因此只要根據這個特點編制出控制軟件,就能實現上述數據同時寫盤的操作。遺憾的是RAID0不是提供冗余的數據,這是非常危險的。因為必須保證整個硬盤子系統都正常工作,計算器才能正常工作,例如,假使一個文件的段1(在驅動器0),段2(在驅動器1),段3(在驅動器2),則只要驅動器0,1,2中有一個產生故障,就會引起問題;如果驅動器1故障,則我們只能從驅動器物理地取得段1和段3的數據。幸運的是可以找到一個解決辦法,這就是硬盤分段和數據冗余。下面一小節將討論這個問題。
硬盤鏡像(RAID1)
硬盤鏡像(RAID1)是容錯磁盤陣列技術最傳統的一種形式,在工業界中相對地最被了解,它最重要的優點是百分之百的數據冗余。RAID0通過簡單地將一個盤上的所有數據拷貝到第二個盤上(或等價的存儲設備上)來實現數據冗余,這種方法雖然簡單且實現起來相對較容易,但它的缺點是要比單個無冗余硬盤貴一倍,因為必須購買另一個硬盤用作第一個硬盤的鏡像。硬盤鏡像最簡單的形式,是通過把二個硬盤連結在一個控制器上來實現的。數據寫在某一硬盤上時,它同時被寫在相應的鏡像盤上。當一個盤驅動器發生故障,計算器系統仍能正常工作,因為它可以在剩下的那塊好盤上操作數據。因為二個盤互為鏡像,哪個盤出故障都無關緊要,二是盤在任何時間都包含相同的數據,任何一個都可以當作工作盤。在硬盤鏡像這個簡單的RAID方式中,仍能采用一些優化速度的方法,例如平衡讀請求負荷。當多個用戶同時請求得到數據時,可以將讀數據的請示分散到二個硬盤中去,使讀負荷平均地分布在二個硬盤上。這種方法可觀地提高了讀數據的性能,因為二個硬盤在同一時刻讀取不同的數據片。但是硬盤鏡像不能改善寫數據的性能。被“鏡像”的硬盤也可被鏡像到其它存儲設備上,例如可擦寫光盤驅動器,雖然以光盤作鏡像盤沒有用硬盤的速度快,但這種方法比沒有使用鏡像盤畢竟減少了丟失數據的危險性。總之,鏡像系統容錯性能非常好,并可以提高讀數據的速度;它的缺點是需要雙份硬盤,因此價格較高。