由服務(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)看
在操作系統(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)陣列的好處,在于數(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)控。磁盤(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ù)仍能正常的存?。亢芏嗳苏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)有順序的。
我們?yōu)槭茬坌枰疟P(pá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í)可靠性極高。本節(jié)將討論這些新技術(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)行更詳盡的描述。
RAID級(jí)別,描述,速度* ,容錯(cuò)性能
RAID 0,硬盤(pán)分段,硬盤(pán)并行輸入/出,無(wú)
RAID 1,硬盤(pán)鏡像,沒(méi)有提高,有(允許單個(gè)硬盤(pán)錯(cuò))
RAID 2,硬盤(pán)分段加漢明碼糾錯(cuò),沒(méi)有提高,有(允許單個(gè)硬盤(pán)錯(cuò))
RAID 3,硬盤(pán)分段加專(zhuān)用,奇偶校驗(yàn)盤(pán),硬盤(pán)并行輸入/出,有(允許單個(gè)硬盤(pán)錯(cuò))
RAID 4,硬盤(pán)分段加專(zhuān)用,奇偶校驗(yàn)盤(pán)需異步硬盤(pán),硬盤(pán)并行輸入/出,有(允許單個(gè)硬盤(pán)錯(cuò))
RAID 5,硬盤(pán)分段加奇偶校驗(yàn),分布在各硬盤(pán),
硬盤(pán)并行輸入/出比RAID0稍慢,有(允許單個(gè)硬盤(pán)錯(cuò))
*對(duì)于單一容量昂貴硬盤(pán)(SLED)的性能提高
硬盤(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)空間限制。 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)分段(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ù)將采用硬盤(pán)分段方式存儲(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)題。
硬盤(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)的。數(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)上。這種方法可觀(guā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à)格較高。