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