磁盤陣列技術(shù)原理學(xué)習(xí)
【簡 介】
我們?yōu)槭裁匆褂?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/磁盤陣列">磁盤陣列?使用磁盤陣列的好處,在于數(shù)據(jù)的安全、存取的速度及超大的存儲容量。如何確保數(shù)據(jù)的安全,則取決于磁盤陣列的設(shè)計與品質(zhì)。其中幾個功能是必須考慮的:是否有環(huán)境監(jiān)控器針對溫度、電壓、電源、散熱風(fēng)扇、硬盤狀態(tài)等進(jìn)行監(jiān)控。
目前人們逐漸認(rèn)識了磁盤陣列技術(shù)。磁盤陣列技術(shù)可以詳細(xì)地劃分為若干個級別0-5 RAID技術(shù),并且又發(fā)展了所謂的 RAID Level 10, 30, 50的新的級別。RAID是廉價冗余磁盤陣列(Redundant Array of Inexpensive Disk)的簡稱。用RAID的好處簡單的說就是:安全性高,速度快,數(shù)據(jù)容量超大。
某些級別的RAID技術(shù)可以把速度提高到單個硬盤驅(qū)動器的400%。磁盤陣列把多個硬盤驅(qū)動器連接在一起協(xié)同工作,大大提高了速度,同時把硬盤系統(tǒng)的可靠性提高到接近無錯的境界。這些“容錯”系統(tǒng)速度極快,同時可靠性極高。
由磁盤陣列角度來看
磁盤陣列的規(guī)格最重要就在速度,也就是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本身也不是很快,但是當(dāng)SCSI演變到Ultra 2, 80MB/s時,對CPU的要求就非常關(guān)鍵。一般的CPU, (如 586)就必須改為高速的RISC CPU, (如 Intel RISC CPU, i960RD 32bits, i960RN 64 bits),不但是RISC CPU, 甚至于還分 32bits, 64 bits RISC CPU 的差異。586 與 RISC CPU 的差異可想而知 ! 這是由磁盤陣列的觀點(diǎn)出發(fā)來看的。
由服務(wù)器的角度來看
服務(wù)器的結(jié)構(gòu)已由傳統(tǒng)的 I/O 結(jié)構(gòu)改為 I2O ( Intelligent I/O, 簡稱 I2O ) 的結(jié)構(gòu),其目的就是為了減少服務(wù)器CPU的負(fù)擔(dān),才會將系統(tǒng)的 I/O 與服務(wù)器CPU負(fù)載分開。Intel 因此提出 I2O 的架構(gòu),I2O 也是由一顆 RISC CPU ( i960RD 或I960RN ) 來負(fù)責(zé) I/O 的工作。試想想若服務(wù)器內(nèi)都已是由 RISC i960 CPU 來負(fù)責(zé) I/O,結(jié)果磁盤陣列上卻仍是用 586 CPU,速度會快嗎 ?
由操作系統(tǒng)的角度來看
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 ……..其他操作系統(tǒng)
在操作系統(tǒng)都已由 32 bits 轉(zhuǎn)到 64 bits,磁盤陣列上的CPU 必須是 Intel i960 RISC CPU才能滿足速度的要求。586 CPU 是無法滿足的 !
磁盤陣列的功能
磁盤陣列內(nèi)的硬盤連接方式是用SCA-II整體后背板還是只是用SCSI線連的?在SCA-II整體后背板上是否有隔絕芯片以防硬盤在熱插拔時所產(chǎn)生的高/低電壓,使系統(tǒng)電壓回流,造成系統(tǒng)的不穩(wěn)定,產(chǎn)生數(shù)據(jù)丟失的情形。我們一定要重視這個問題,因為在磁盤陣列內(nèi)很多硬盤都是共用這同一SCSI總線!一個硬盤熱插拔,可不能引響其它的硬盤!甚幺是熱插拔或帶電插拔?硬盤有分熱插拔硬盤,80針的硬盤是熱插拔硬盤,68針的不是熱插拔硬盤,有沒有熱插拔,在電路上的設(shè)計差異就在于有沒有保護(hù)線路的設(shè)計,同樣的硬盤拖架也是一樣有分真的熱插拔及假的熱插拔的區(qū)別?!?
磁盤陣列內(nèi)的硬盤是否有順序的要求?也就是說硬盤可否不按次序地插回陣列中,數(shù)據(jù)仍能正常的存???很多人認(rèn)為不是很重要,不太會發(fā)生,但是可能會發(fā)生的,我們就要防止它發(fā)生。假如您用六個硬盤做陣列,在最出初始化時,此六個硬盤是有順序放置在磁盤陣列內(nèi),分為第一、第二…到第六個硬盤,是有順序的,如果您買的磁盤陣列是有順序的要求,則您要注意了:有一天您將硬盤取出,做清潔時一定要以原來的擺放順序插回磁盤陣列中,否則您的數(shù)據(jù)可能因硬盤順序與原來的不苻,磁盤陣列上的控制器不認(rèn)而數(shù)據(jù)丟失!因為您的硬盤的SCSI ID號亂掉所致?,F(xiàn)在的磁盤陣列產(chǎn)品都已有這種不要求硬盤有順序的功能,為了防止上述的事件發(fā)生,都是不要求硬盤有順序的?!?
我們將討論這些新技術(shù),以及不同級別RAID的優(yōu)缺點(diǎn)。我們并不想涉及那些關(guān)鍵性的技術(shù)細(xì)節(jié)問題,而是將磁盤陣列和RAID技術(shù)介紹給對它們尚不熟悉的人們。相信這將幫助你選用合適的RAID技術(shù)。
RAID級別的定義
下表提供了6級RAID的簡單定義,本書其后部分將對各級RAID進(jìn)行更詳盡的描述。
硬盤數(shù)據(jù)跨盤(Spanning)
數(shù)據(jù)跨盤技術(shù)使多個硬盤像一個硬盤那樣工作,這使用戶通過組合已有的資源或增加一些資源來廉價地突破現(xiàn)有的硬盤空間限制。
圖2所示為4個300兆字節(jié)的硬盤驅(qū)動器連結(jié)在一起,構(gòu)成一個SCSI系統(tǒng)。用戶只看到一個有1200兆字節(jié)的C盤,而不是看到C, D, E, F, 4個300兆字節(jié)的硬盤。在這樣的環(huán)境中,系統(tǒng)管理員不必?fù)?dān)心某個硬盤上會發(fā)生硬盤安全檢空間不夠的情況。因為現(xiàn)在1200兆字節(jié)的容量全在一個卷(Volume)上(例如硬盤C上)。系統(tǒng)管理員可以安全地建立所需要的任何層次的文件系統(tǒng),而不需要在多個單獨(dú)硬盤環(huán)境的限制下,計劃他的文件系統(tǒng)。
硬盤數(shù)據(jù)跨盤本身并不是RAID,它不能改善硬盤的可靠性和速度。但是它有這樣的好處,即多個小型廉價硬盤可以根據(jù)需要增加到硬盤子系統(tǒng)上。
磁盤陣列分類
硬盤分段(Disk Striping, RAID 0)
硬盤分段的方法把數(shù)據(jù)寫到多個硬盤,而不是只寫到一個盤上,這也叫作RAID O,在磁盤陣列子系統(tǒng)中,數(shù)據(jù)按系統(tǒng)規(guī)定的“段”(Segment)為單位依次寫入多個硬盤,例如數(shù)據(jù)段1寫入硬盤0,段2寫入硬盤1,段3寫入硬盤2等等。當(dāng)數(shù)據(jù)寫完最后一個硬盤時,它就重新從盤0的下一可用段開始寫入,寫數(shù)據(jù)的全過程按此重復(fù)直至數(shù)據(jù)寫完。
段由塊組成,而塊又由字節(jié)組成。因此,當(dāng)段的大小為4個塊,而塊又由256個字節(jié)組成時,依字節(jié)大小計算,段的大小等于1024個字節(jié)。第1~1024字節(jié)寫入盤0,第1025~2048字節(jié)寫盤1等。假如我們的硬盤子系統(tǒng)有5個硬盤,我們要寫20,000個字節(jié),則數(shù)據(jù)將如圖3那樣存儲。
磁盤陣列分類
硬盤分段(Disk Striping, RAID 0)
硬盤分段的方法把數(shù)據(jù)寫到多個硬盤,而不是只寫到一個盤上,這也叫作RAID O,在磁盤陣列子系統(tǒng)中,數(shù)據(jù)按系統(tǒng)規(guī)定的“段”(Segment)為單位依次寫入多個硬盤,例如數(shù)據(jù)段1寫入硬盤0,段2寫入硬盤1,段3寫入硬盤2等等。當(dāng)數(shù)據(jù)寫完最后一個硬盤時,它就重新從盤0的下一可用段開始寫入,寫數(shù)據(jù)的全過程按此重復(fù)直至數(shù)據(jù)寫完。
段由塊組成,而塊又由字節(jié)組成。因此,當(dāng)段的大小為4個塊,而塊又由256個字節(jié)組成時,依字節(jié)大小計算,段的大小等于1024個字節(jié)。第1~1024字節(jié)寫入盤0,第1025~2048字節(jié)寫盤1等。假如我們的硬盤子系統(tǒng)有5個硬盤,我們要寫20,000個字節(jié),則數(shù)據(jù)將如圖3那樣存儲。
總之,由于硬盤分段的方法,是把數(shù)據(jù)立即寫入(讀出)多個硬盤,因此它的速度比較快。實(shí)際上,數(shù)據(jù)的傳輸是順序的,但多個讀(或?qū)懀┎僮鲃t可以相互重迭進(jìn)行。這就是說,正當(dāng)段1在寫入驅(qū)動器0時,段2寫入驅(qū)動器1的操作也開始了;而當(dāng)段2尚在寫盤驅(qū)動器1時,段3數(shù)據(jù)已送驅(qū)動器2;如此類推,在同一時刻有幾個盤(即使不是所有的盤)在同時寫數(shù)據(jù)。因為數(shù)據(jù)送入盤驅(qū)動器的速度要遠(yuǎn)大于寫入物理盤的速度。因此只要根據(jù)這個特點(diǎn)編制出控制軟件,就能實(shí)現(xiàn)上述數(shù)據(jù)同時寫盤的操作。
遺憾的是RAID 0不是提供冗余的數(shù)據(jù),這是非常危險的。因為必須保證整個硬盤子系統(tǒng)都正常工作,計算器才能正常工作,例如,假使一個文件的段1(在驅(qū)動器0),段2(在驅(qū)動器1),段3(在驅(qū)動器2),則只要驅(qū)動器0, 1, 2中有一個產(chǎn)生故障,就會引起問題;如果驅(qū)動器1故障,則我們只能從驅(qū)動器物理地取得段1和段3的數(shù)據(jù)。幸運(yùn)的是可以找到一個解決辦法,這就是硬盤分段和數(shù)據(jù)冗余。下面一小節(jié)將討論這個問題。
評論