磁盤陣列技術(shù)原理學(xué)習(xí)
【簡 介】
我們?yōu)槭裁匆褂?strong>磁盤陣列?使用磁盤陣列的好處,在于數(shù)據(jù)的安全、存取的速度及超大的存儲(chǔ)容量。如何確保數(shù)據(jù)的安全,則取決于磁盤陣列的設(shè)計(jì)與品質(zhì)。其中幾個(gè)功能是必須考慮的:是否有環(huán)境監(jiān)控器針對溫度、電壓、電源、散熱風(fēng)扇、硬盤狀態(tài)等進(jìn)行監(jiān)控。
目前人們逐漸認(rèn)識(shí)了磁盤陣列技術(shù)。磁盤陣列技術(shù)可以詳細(xì)地劃分為若干個(gè)級(jí)別0-5 RAID技術(shù),并且又發(fā)展了所謂的 RAID Level 10, 30, 50的新的級(jí)別。RAID是廉價(jià)冗余磁盤陣列(Redundant Array of Inexpensive Disk)的簡稱。用RAID的好處簡單的說就是:安全性高,速度快,數(shù)據(jù)容量超大。
某些級(jí)別的RAID技術(shù)可以把速度提高到單個(gè)硬盤驅(qū)動(dòng)器的400%。磁盤陣列把多個(gè)硬盤驅(qū)動(dòng)器連接在一起協(xié)同工作,大大提高了速度,同時(shí)把硬盤系統(tǒng)的可靠性提高到接近無錯(cuò)的境界。這些“容錯(cuò)”系統(tǒng)速度極快,同時(shí)可靠性極高。
由磁盤陣列角度來看
磁盤陣列的規(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 的磁盤陣列時(shí),對CPU的要求不須太快,因?yàn)镾CSI本身也不是很快,但是當(dāng)SCSI演變到Ultra 2, 80MB/s時(shí),對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),才會(huì)將系統(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,速度會(huì)快嗎 ?
由操作系統(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整體后背板上是否有隔絕芯片以防硬盤在熱插拔時(shí)所產(chǎn)生的高/低電壓,使系統(tǒng)電壓回流,造成系統(tǒng)的不穩(wěn)定,產(chǎn)生數(shù)據(jù)丟失的情形。我們一定要重視這個(gè)問題,因?yàn)樵诖疟P陣列內(nèi)很多硬盤都是共用這同一SCSI總線!一個(gè)硬盤熱插拔,可不能引響其它的硬盤!甚幺是熱插拔或帶電插拔?硬盤有分熱插拔硬盤,80針的硬盤是熱插拔硬盤,68針的不是熱插拔硬盤,有沒有熱插拔,在電路上的設(shè)計(jì)差異就在于有沒有保護(hù)線路的設(shè)計(jì),同樣的硬盤拖架也是一樣有分真的熱插拔及假的熱插拔的區(qū)別?!?
磁盤陣列內(nèi)的硬盤是否有順序的要求?也就是說硬盤可否不按次序地插回陣列中,數(shù)據(jù)仍能正常的存?。亢芏嗳苏J(rèn)為不是很重要,不太會(huì)發(fā)生,但是可能會(huì)發(fā)生的,我們就要防止它發(fā)生。假如您用六個(gè)硬盤做陣列,在最出初始化時(shí),此六個(gè)硬盤是有順序放置在磁盤陣列內(nèi),分為第一、第二…到第六個(gè)硬盤,是有順序的,如果您買的磁盤陣列是有順序的要求,則您要注意了:有一天您將硬盤取出,做清潔時(shí)一定要以原來的擺放順序插回磁盤陣列中,否則您的數(shù)據(jù)可能因硬盤順序與原來的不苻,磁盤陣列上的控制器不認(rèn)而數(shù)據(jù)丟失!因?yàn)槟挠脖P的SCSI ID號(hào)亂掉所致?,F(xiàn)在的磁盤陣列產(chǎn)品都已有這種不要求硬盤有順序的功能,為了防止上述的事件發(fā)生,都是不要求硬盤有順序的。
我們將討論這些新技術(shù),以及不同級(jí)別RAID的優(yōu)缺點(diǎn)。我們并不想涉及那些關(guān)鍵性的技術(shù)細(xì)節(jié)問題,而是將磁盤陣列和RAID技術(shù)介紹給對它們尚不熟悉的人們。相信這將幫助你選用合適的RAID技術(shù)。
RAID級(jí)別的定義
下表提供了6級(jí)RAID的簡單定義,本書其后部分將對各級(jí)RAID進(jìn)行更詳盡的描述。
硬盤數(shù)據(jù)跨盤(Spanning)
數(shù)據(jù)跨盤技術(shù)使多個(gè)硬盤像一個(gè)硬盤那樣工作,這使用戶通過組合已有的資源或增加一些資源來廉價(jià)地突破現(xiàn)有的硬盤空間限制。
圖2所示為4個(gè)300兆字節(jié)的硬盤驅(qū)動(dòng)器連結(jié)在一起,構(gòu)成一個(gè)SCSI系統(tǒng)。用戶只看到一個(gè)有1200兆字節(jié)的C盤,而不是看到C, D, E, F, 4個(gè)300兆字節(jié)的硬盤。在這樣的環(huán)境中,系統(tǒng)管理員不必?fù)?dān)心某個(gè)硬盤上會(huì)發(fā)生硬盤安全檢空間不夠的情況。因?yàn)楝F(xiàn)在1200兆字節(jié)的容量全在一個(gè)卷(Volume)上(例如硬盤C上)。系統(tǒng)管理員可以安全地建立所需要的任何層次的文件系統(tǒng),而不需要在多個(gè)單獨(dú)硬盤環(huán)境的限制下,計(jì)劃他的文件系統(tǒng)。
硬盤數(shù)據(jù)跨盤本身并不是RAID,它不能改善硬盤的可靠性和速度。但是它有這樣的好處,即多個(gè)小型廉價(jià)硬盤可以根據(jù)需要增加到硬盤子系統(tǒng)上。
磁盤陣列分類
硬盤分段(Disk Striping, RAID 0)
硬盤分段的方法把數(shù)據(jù)寫到多個(gè)硬盤,而不是只寫到一個(gè)盤上,這也叫作RAID O,在磁盤陣列子系統(tǒng)中,數(shù)據(jù)按系統(tǒng)規(guī)定的“段”(Segment)為單位依次寫入多個(gè)硬盤,例如數(shù)據(jù)段1寫入硬盤0,段2寫入硬盤1,段3寫入硬盤2等等。當(dāng)數(shù)據(jù)寫完最后一個(gè)硬盤時(shí),它就重新從盤0的下一可用段開始寫入,寫數(shù)據(jù)的全過程按此重復(fù)直至數(shù)據(jù)寫完。
段由塊組成,而塊又由字節(jié)組成。因此,當(dāng)段的大小為4個(gè)塊,而塊又由256個(gè)字節(jié)組成時(shí),依字節(jié)大小計(jì)算,段的大小等于1024個(gè)字節(jié)。第1~1024字節(jié)寫入盤0,第1025~2048字節(jié)寫盤1等。假如我們的硬盤子系統(tǒng)有5個(gè)硬盤,我們要寫20,000個(gè)字節(jié),則數(shù)據(jù)將如圖3那樣存儲(chǔ)。
磁盤陣列分類
硬盤分段(Disk Striping, RAID 0)
硬盤分段的方法把數(shù)據(jù)寫到多個(gè)硬盤,而不是只寫到一個(gè)盤上,這也叫作RAID O,在磁盤陣列子系統(tǒng)中,數(shù)據(jù)按系統(tǒng)規(guī)定的“段”(Segment)為單位依次寫入多個(gè)硬盤,例如數(shù)據(jù)段1寫入硬盤0,段2寫入硬盤1,段3寫入硬盤2等等。當(dāng)數(shù)據(jù)寫完最后一個(gè)硬盤時(shí),它就重新從盤0的下一可用段開始寫入,寫數(shù)據(jù)的全過程按此重復(fù)直至數(shù)據(jù)寫完。
段由塊組成,而塊又由字節(jié)組成。因此,當(dāng)段的大小為4個(gè)塊,而塊又由256個(gè)字節(jié)組成時(shí),依字節(jié)大小計(jì)算,段的大小等于1024個(gè)字節(jié)。第1~1024字節(jié)寫入盤0,第1025~2048字節(jié)寫盤1等。假如我們的硬盤子系統(tǒng)有5個(gè)硬盤,我們要寫20,000個(gè)字節(jié),則數(shù)據(jù)將如圖3那樣存儲(chǔ)。
總之,由于硬盤分段的方法,是把數(shù)據(jù)立即寫入(讀出)多個(gè)硬盤,因此它的速度比較快。實(shí)際上,數(shù)據(jù)的傳輸是順序的,但多個(gè)讀(或?qū)懀┎僮鲃t可以相互重迭進(jìn)行。這就是說,正當(dāng)段1在寫入驅(qū)動(dòng)器0時(shí),段2寫入驅(qū)動(dòng)器1的操作也開始了;而當(dāng)段2尚在寫盤驅(qū)動(dòng)器1時(shí),段3數(shù)據(jù)已送驅(qū)動(dòng)器2;如此類推,在同一時(shí)刻有幾個(gè)盤(即使不是所有的盤)在同時(shí)寫數(shù)據(jù)。因?yàn)閿?shù)據(jù)送入盤驅(qū)動(dòng)器的速度要遠(yuǎn)大于寫入物理盤的速度。因此只要根據(jù)這個(gè)特點(diǎn)編制出控制軟件,就能實(shí)現(xiàn)上述數(shù)據(jù)同時(shí)寫盤的操作。
遺憾的是RAID 0不是提供冗余的數(shù)據(jù),這是非常危險(xiǎn)的。因?yàn)楸仨毐WC整個(gè)硬盤子系統(tǒng)都正常工作,計(jì)算器才能正常工作,例如,假使一個(gè)文件的段1(在驅(qū)動(dòng)器0),段2(在驅(qū)動(dòng)器1),段3(在驅(qū)動(dòng)器2),則只要驅(qū)動(dòng)器0, 1, 2中有一個(gè)產(chǎn)生故障,就會(huì)引起問題;如果驅(qū)動(dòng)器1故障,則我們只能從驅(qū)動(dòng)器物理地取得段1和段3的數(shù)據(jù)。幸運(yùn)的是可以找到一個(gè)解決辦法,這就是硬盤分段和數(shù)據(jù)冗余。下面一小節(jié)將討論這個(gè)問題。
硬盤鏡像(RAID 1)
硬盤鏡像(RAID 1)是容錯(cuò)磁盤陣列技術(shù)最傳統(tǒng)的一種形式,在工業(yè)界中相對地最被了解,它最重要的優(yōu)點(diǎn)是百分之百的數(shù)據(jù)冗余。RAID 0通過簡單地將一個(gè)盤上的所有數(shù)據(jù)拷貝到第二個(gè)盤上(或等價(jià)的存儲(chǔ)設(shè)備上)來實(shí)現(xiàn)數(shù)據(jù)冗余,這種方法雖然簡單且實(shí)現(xiàn)起來相對較容易,但它的缺點(diǎn)是要比單個(gè)無冗余硬盤貴一倍,因?yàn)楸仨氋徺I另一個(gè)硬盤用作第一個(gè)硬盤的鏡像。
硬盤鏡像最簡單的形式,是通過把二個(gè)硬盤連結(jié)在一個(gè)控制器上來實(shí)現(xiàn)的。圖4說明了硬盤鏡像。數(shù)據(jù)寫在某一硬盤上時(shí),它同時(shí)被寫在相應(yīng)的鏡像盤上。當(dāng)一個(gè)盤驅(qū)動(dòng)器發(fā)生故障,計(jì)算器系統(tǒng)仍能正常工作,因?yàn)樗梢栽谑O碌哪菈K好盤上操作數(shù)據(jù)。
因?yàn)槎€(gè)盤互為鏡像,哪個(gè)盤出故障都無關(guān)緊要,二是盤在任何時(shí)間都包含相同的數(shù)據(jù),任何一個(gè)都可以當(dāng)作工作盤。在硬盤鏡像這個(gè)簡單的RAID方式中,仍能采用一些優(yōu)化速度的方法,例如平衡讀請求負(fù)荷。當(dāng)多個(gè)用戶同時(shí)請求得到數(shù)據(jù)時(shí),可以將讀數(shù)據(jù)的請示分散到二個(gè)硬盤中去,使讀負(fù)荷平均地分布在二個(gè)硬盤上。這種方法可觀地提高了讀數(shù)據(jù)的性能,因?yàn)槎€(gè)硬盤在同一時(shí)刻讀取不同的數(shù)據(jù)片。但是硬盤鏡像不能改善寫數(shù)據(jù)的性能。被“鏡像”的硬盤也可被鏡像到其它存儲(chǔ)設(shè)備上,例如可擦寫光盤驅(qū)動(dòng)器,雖然以光盤作鏡像盤沒有用硬盤的速度快,但這種方法比沒有使用鏡像盤畢竟減少了丟失數(shù)據(jù)的危險(xiǎn)性。
總之,鏡像系統(tǒng)容錯(cuò)性能非常好,并可以提高讀數(shù)據(jù)的速度;它的缺點(diǎn)是需要雙份硬盤,因此價(jià)格較高。
硬盤分段和數(shù)據(jù)冗余(RAID2~5)
硬盤分段改善了硬盤子系統(tǒng)的性能,因?yàn)橄蛴脖P讀寫數(shù)據(jù)的速度與硬盤子系統(tǒng)中硬盤數(shù)目成正比地增加,但它的缺點(diǎn)是硬盤子系統(tǒng)中任一硬盤的故障都會(huì)導(dǎo)致整個(gè)計(jì)算器系統(tǒng)失敗。整個(gè)分段的硬盤子系統(tǒng)部能作鏡像,如果已經(jīng)用了4個(gè)硬盤進(jìn)行分段,我們可以再增加4個(gè)分段的硬盤作為原來4個(gè)硬盤的鏡像。很明顯這是昂貴的(雖然可能比鏡像一個(gè)昂貴的大硬盤來得便宜)??梢圆挥苗R像而用其它數(shù)據(jù)冗余的方法來提供高容錯(cuò)性能??梢赃x擇一神奇偶碼模式來實(shí)現(xiàn)上述方法,可以外加一個(gè)專作奇偶校驗(yàn)用的硬盤(如在RAID 3中),或者可把奇偶校驗(yàn)數(shù)據(jù)分散分布在磁盤陣列的全部硬盤中。分布式奇偶校驗(yàn)數(shù)據(jù)(RAID 5)的例子示于圖5中。
不管用何種級(jí)別的RAID,磁盤陣列總是用異或(XOR)操作來產(chǎn)生奇偶數(shù)據(jù),當(dāng)子系統(tǒng)中有一個(gè)硬盤發(fā)生故障時(shí),也是用異或操作重建數(shù)據(jù)。下列簡單分析了XOR是怎樣工作的。
硬盤 A B C 奇偶盤 (A, B, C 異或的結(jié)果)
數(shù)據(jù) 1 0 1 0
首先記住在XOR操作中,2個(gè)數(shù)異或的結(jié)果是真(即“1”)時(shí),這二個(gè)數(shù)中有且一個(gè)數(shù)為1(另一個(gè)為0)。我們假設(shè)A, B, C中B盤故障,此時(shí)可將A, C和奇偶數(shù)據(jù)XOR起來,得到B盤失去的數(shù)據(jù)0;同樣如C盤故障,我們可將A, B盤和奇偶盤的數(shù)據(jù)XOR,得到C盤原先的數(shù)據(jù)1。
如果推廣到7個(gè)盤的硬盤子系統(tǒng):
硬盤 A B C D E F 奇偶位
數(shù)據(jù) 0 0 0 1 0 1 0
如果丟失B盤數(shù)據(jù),我們可以XOR A, C, D, E, F和奇偶位來得到失去的B盤數(shù)據(jù)0。而XOR A, B, C, D, E, F和奇偶位可恢復(fù)D盤的數(shù)據(jù)1。
采用專用的奇偶校驗(yàn)盤(如上所述,即RAID 3),當(dāng)同時(shí)產(chǎn)生多個(gè)寫操作時(shí),每次操作都要對奇偶盤進(jìn)行寫入。這將產(chǎn)生I/O瓶頸效應(yīng)。
RAID 5把奇偶位信息分散分布在硬盤子系統(tǒng)的所有硬盤上(而不是使用專用的校驗(yàn)盤0,這就改善了上述RAID 3中的奇偶盤瓶頸效應(yīng)。圖5說明了RAID 5的一種配置,圖中奇偶信息散布在子系統(tǒng)的每個(gè)硬盤上。利用每個(gè)硬盤的一部分來組成校驗(yàn)盤,寫入硬盤的奇偶位信息將較均勻地分布在所有硬盤上。所以某個(gè)用戶可能把它的一個(gè)數(shù)據(jù)段寫在硬盤A,而將奇偶信息寫在硬盤B,第二個(gè)用戶可能把數(shù)據(jù)寫在硬盤C,而奇偶信息寫在硬盤D。從這里也可看出RAID 5的性能會(huì)得到提高。
這種方法將提高硬盤子系統(tǒng)的事務(wù)處理速度。所謂事務(wù)處理,是指處理從許多不同用戶來的多個(gè)硬盤I/O操作,由于可能同時(shí)有很多用戶與硬盤打交道,迅速向硬盤寫入數(shù)據(jù),有時(shí)幾乎是同時(shí)進(jìn)行的,這種情況下,用分布式奇偶盤的方式比起用專用奇偶盤,瓶頸效應(yīng)發(fā)生的可能性要小。
對硬盤操作來說,RAID 5的寫性能比不上直接硬盤分段(指沒有校驗(yàn)信息的RAID 0)。因?yàn)楫a(chǎn)生或存儲(chǔ)奇偶碼需要一些額外操作。例如,在修改一個(gè)硬盤上的數(shù)據(jù)時(shí),其它盤上對應(yīng)段的數(shù)據(jù)(即使是無關(guān)的數(shù)據(jù))也要讀入主機(jī),以便產(chǎn)生必要的奇偶信息。奇偶段產(chǎn)生后(這要花一些時(shí)間),我們要將更新的數(shù)據(jù)段和奇偶段寫入硬盤,這通常稱為讀-修改-寫策略。因此,雖然RAID 5比RAID 0優(yōu)越,但就寫性能來說,RAID 5不如RAID 0。
鏡像技術(shù)(RAID 1)和數(shù)據(jù)奇偶位分段(RAID 5)用于上述的硬盤子系統(tǒng)中時(shí),都產(chǎn)生冗余信息。但在RAID 1中,所有數(shù)據(jù)都被復(fù)制到第二個(gè)相同的硬盤上。在RAID 5,數(shù)據(jù)的XOR碼而不是數(shù)據(jù)本身被復(fù)制,因此可以用數(shù)據(jù)的非常緊湊的表現(xiàn)方式,來恢復(fù)由于某一硬盤故障而丟失的數(shù)據(jù)。
采用RAID 5時(shí),對于5個(gè)硬盤的數(shù)組,有大約20%的硬盤空間用于存放奇偶碼,而十個(gè)硬盤的數(shù)組只有約10%的空間存放奇偶碼。在可用空間總的格式化空間的意義上來說,硬盤系統(tǒng)中的硬盤越多該系統(tǒng)就越省錢。
總之,RAID 5把硬盤分段和奇偶冗余技術(shù)的優(yōu)點(diǎn)結(jié)合在一起,這樣的硬盤子系統(tǒng)特別適合于事務(wù)處理環(huán)境,例如民航售票處,汽車出租站,銷售系統(tǒng)的終端,等等。在某些場合,可優(yōu)先考慮RAID 1(在那些寫數(shù)據(jù)比讀數(shù)據(jù)更頻繁的情況)。但許多情況,RAID 5提供了將高性能,低價(jià)格和數(shù)據(jù)安全性綜合在一起的解決辦法。
RAID Level 10
RAID Level 30
RAID Level 50
硬盤故障恢復(fù)
鏡像和RAID提供了從硬盤故障中恢復(fù)數(shù)據(jù)的新方法。因?yàn)閿?shù)據(jù)的所有部分都是有冗余的,數(shù)據(jù)有效性很高(即使在硬盤發(fā)生故障時(shí))。另一重要優(yōu)點(diǎn)是,恢復(fù)數(shù)據(jù)的工作不用立即進(jìn)行,因?yàn)橄到y(tǒng)可以在一個(gè)硬盤有故障的情況下正常工作,當(dāng)然在這種情況下,剩下的系統(tǒng)就不再有容錯(cuò)性能。要避免丟失數(shù)據(jù)就必須在第二個(gè)硬盤故障前恢復(fù)數(shù)據(jù)。更換故障硬盤后,要進(jìn)行數(shù)據(jù)恢復(fù)。在鏡像系統(tǒng)中“鏡像” 盤上有一個(gè)數(shù)據(jù)備份,因此故障硬盤(主硬盤或鏡像硬盤)通過簡單的硬盤到硬盤的拷貝操作就能重建數(shù)據(jù),如圖6所示。這個(gè)拷貝操作比從磁帶上恢復(fù)數(shù)據(jù)要快得多。
RAID 5硬盤子系統(tǒng)中,故障硬盤通過無故障硬盤上存放的糾錯(cuò)(奇偶)碼信息來重建數(shù)據(jù)。正常盤上的數(shù)據(jù)(包括奇偶信息部分)被讀出,并計(jì)算出故障盤丟失的那些數(shù)據(jù),然后寫入新替換的盤。這個(gè)過程示于圖7,它比從磁帶上恢復(fù)數(shù)據(jù)要快不少。
設(shè)計(jì)靈活的磁盤陣列可以重新配置,替換盤的地址不一定和故障盤的地址相同,見圖8。這種靈活性使安裝過程變得更為簡單。備用盤甚至可以在硬盤故障前預(yù)先連在系統(tǒng)上。在那種情況下,它就成了隨時(shí)可用的備份盤。這種盤通常稱為“熱備份”。
可靠性和可用性
這二個(gè)名詞雖然相互關(guān)連,事實(shí)上卻代表了硬盤故障的二個(gè)不同的方面,可靠性指的是硬盤在給定條件下發(fā)生故障的概率??捎眯灾傅氖怯脖P在某種用途中可能用的時(shí)間。利用這二個(gè)名詞,我們可以看到磁盤陣列是怎樣把我們的硬盤系統(tǒng)可靠性提高到接近百分之百的程度的。
磁盤陣列可以改善硬盤系統(tǒng)的可靠性。因?yàn)槟骋挥脖P中的數(shù)據(jù)可以從其它硬盤的數(shù)據(jù)中重新產(chǎn)生出來(例如RAID 5),所以很少會(huì)有機(jī)會(huì)使整個(gè)硬盤系統(tǒng)失效。硬盤子系統(tǒng)的可靠性因而大大改善了。
圖表9是RAID硬盤子系統(tǒng)與單個(gè)硬盤子系統(tǒng)的可靠性比較:
我們還必須考慮系統(tǒng)的可用性。單一硬盤系統(tǒng)的可用性比沒有數(shù)據(jù)冗余的磁盤陣列要好,而冗余磁盤陣列的可用性比單個(gè)硬盤的好得多。這是因?yàn)槿哂啻疟P陣列允許單個(gè)硬盤出錯(cuò),而繼續(xù)正常工作。此外,一個(gè)硬盤故障后的系統(tǒng)恢復(fù)時(shí)間也大大縮短(與從磁帶恢復(fù)數(shù)據(jù)相比)。最后,因?yàn)榘l(fā)生故障時(shí),硬盤上的數(shù)據(jù)是故障當(dāng)時(shí)的數(shù)據(jù),替后的硬盤也將包含故障時(shí)的數(shù)據(jù)(舉例說,前天晚上的備份數(shù)據(jù))。要得到完全的容錯(cuò)性能,計(jì)算器硬盤子系統(tǒng)的其它部件也必須有冗余例如提供二個(gè)電源,或者配備雙份硬盤控制器。沒有其它部件的冗余,即使有非??煽康挠脖P子系統(tǒng),還是不能完全防止計(jì)算機(jī)系統(tǒng)的失效。
最佳化的容錯(cuò)系統(tǒng)
如先前所述,直接分段的子系統(tǒng)(RAID 0)可以大大提高讀寫速度(相對單個(gè)硬盤),因?yàn)閿?shù)據(jù)分散在多個(gè)硬盤,硬盤操作可以同時(shí)進(jìn)行。
把二個(gè)直接分段的硬盤子系統(tǒng)組成鏡像,可以有效地構(gòu)成全冗余的快速硬盤子系統(tǒng)。這樣的子系統(tǒng),其硬盤操作甚至比直接分段的硬盤子系統(tǒng)還快,因?yàn)樵撓到y(tǒng)能同時(shí)執(zhí)行二個(gè)讀操作(每個(gè)硬盤一個(gè)讀操作),而寫操作的速度則與非鏡像直接分段子系統(tǒng)幾乎一樣,因?yàn)榘褦?shù)據(jù)同時(shí)寫入二個(gè)硬盤只需花費(fèi)很少的額外開銷。
通過我們前面所述的概念,例如雙工:(雙控制器,雙電源等),可以進(jìn)一步改善有關(guān)冗余方面的問題。雙控制器還使我們得到更高的數(shù)據(jù)傳輸速度,因?yàn)榭刂破鞒蔀樽酉到y(tǒng)性能瓶頸的可能性更小了。
磁盤陣列技術(shù)術(shù)語
硬盤鏡像(Disk Mirroring):硬盤鏡像最簡單的形式是,一個(gè)主機(jī)控制器帶二個(gè)互為鏡像的硬盤。數(shù)據(jù)同時(shí)寫入二個(gè)硬盤,二個(gè)硬盤上的數(shù)據(jù)完全相同,因此一個(gè)硬盤故障時(shí),另一個(gè)硬盤可提供數(shù)據(jù)。
硬盤數(shù)據(jù)跨盤(Disk Spanning):利用這種技術(shù),幾個(gè)硬盤看上去像是一個(gè)大硬盤;這個(gè)虛擬盤可以把數(shù)據(jù)跨盤存儲(chǔ)在不同的物理盤上,用戶不需關(guān)心哪個(gè)盤上存有他需要的數(shù)據(jù)。
硬盤數(shù)據(jù)分段(Disk Striping):數(shù)據(jù)分散存儲(chǔ)在幾個(gè)盤上。數(shù)據(jù)的第一段放在盤0,第2段放在盤1,……直至達(dá)到硬盤鏈中的最后一個(gè)盤,然后下一個(gè)邏輯段將放在硬盤0,再下一個(gè)邏輯段放在盤1,如此循環(huán)直至完成寫操作。
雙控(Duplexing):這里指的是用二個(gè)控制器來驅(qū)動(dòng)一個(gè)硬盤子系統(tǒng)。一個(gè)控制器發(fā)生故障,另一個(gè)控制器馬上控制硬盤操作。此外,如果編寫恰當(dāng)?shù)目刂破鬈浖?,可?shí)現(xiàn)不同的硬盤驅(qū)動(dòng)器同時(shí)工作。
容錯(cuò)(Fault Tolerant):具有容錯(cuò)功能的機(jī)器有抗故障的能力。例如RAID 1鏡像系統(tǒng)是容錯(cuò)的,鏡像盤中的一個(gè)出故障,硬盤子系統(tǒng)仍能正常工作。
主機(jī)控制器(Host Adapter):這里指的是使主機(jī)和外設(shè)進(jìn)行數(shù)據(jù)交換的控制部件(如SCSI控制器)。
熱修復(fù)(Hot Fix):指用一個(gè)硬盤熱備份來替換發(fā)生的故障的硬盤。要注意故障盤并不是真正地被物理替換了。用作熱備份的盤被加載上故障盤原來的數(shù)據(jù),然后系統(tǒng)恢復(fù)工作。
熱補(bǔ)(Hot Patch):具有硬盤熱備份,可隨時(shí)替換故障盤的系統(tǒng)。
熱備份(Hot Spare):與CPU系統(tǒng)電連接的硬盤,它能替換下系統(tǒng)中的故障盤。與冷備份的區(qū)別是,冷備份盤平時(shí)與機(jī)器不相連接,硬盤故障時(shí)才換下故障盤。
平均數(shù)據(jù)丟失時(shí)間(MTBDL-Mean Time Between Data Loss):發(fā)生數(shù)據(jù)丟失的事件間的平均時(shí)間。
平均無故障工作時(shí)間(MTBF-Mean Time Between Failure或MTIF):設(shè)備平均無故障運(yùn)行時(shí)間。
廉價(jià)冗余磁盤陣列(RAID-Redundant Array of Inexpensive Drives):一種將多個(gè)廉價(jià)硬盤組合成快速,有容錯(cuò)功能的硬盤子系統(tǒng)的技術(shù)。
系統(tǒng)重建(Reconstruction or Rebuild):一個(gè)硬盤發(fā)生故障后,從其它正確的硬盤數(shù)據(jù)和奇偶信息恢復(fù)故障盤數(shù)據(jù)的過程。
恢復(fù)時(shí)間(Reconstruction Time):為故障盤重建數(shù)據(jù)所需要的時(shí)間。
單個(gè)大容量硬盤(SLED-Singe Expensive Drive)。
傳輸速率(Transfer Rate):指在不同條件下存取數(shù)據(jù)的速度。
虛擬盤(Virtual Disk):與虛擬存儲(chǔ)器類似,虛擬盤是一個(gè)概念盤,用戶不必關(guān)心他的數(shù)據(jù)寫在哪個(gè)物理盤上。虛擬盤一般跨越幾個(gè)物理盤,但用戶看到的只是一個(gè)盤。