RAID陣列管理軟件可以在I/O路徑的幾個(gè)地方實(shí)現(xiàn),這毫不令人驚訝,因?yàn)檫@些位置和鏡像和緩存的位置一樣:主機(jī)系統(tǒng)、I/O控制器、磁盤子系統(tǒng)等。
1.基于主機(jī)卷管理軟件的RAIDRAID
陣列管理軟件的一個(gè)常見(jiàn)位置是卷管理器,它運(yùn)行在主機(jī)系統(tǒng)上,在這個(gè)模式下,主機(jī)CPU提供RAID算法運(yùn)行所需要的處理能力。
基于主機(jī)的RAID已經(jīng)被證明是相當(dāng)有效的,常常運(yùn)行在UNIX環(huán)境下,而不是在PC環(huán)境下,其主要原因是開(kāi)發(fā)RAID的卷管理軟件公司的市場(chǎng)運(yùn)作方式。幾年來(lái),VeritasSoftware已經(jīng)成功地向領(lǐng)先的UNIX廠商們出售了它的卷管理軟件,也將為Windows2000提供基本的磁盤管理器,以將卷管理概念引入PC市場(chǎng)。CrosStorSoftware也為工業(yè)界提供了卷管理軟件,可嵌入范圍很廣的裝置和系統(tǒng)中。
操作系統(tǒng)和系統(tǒng)制造商有時(shí)也開(kāi)發(fā)自己專用的卷管理器,并加入了RAID的功能。即使不支持更高級(jí)的RAID,但大部分服務(wù)器操作系統(tǒng)至少支持RAID1鏡像。隨著市場(chǎng)對(duì)RAID和磁盤子系統(tǒng)前景的看好,可能有更多的系統(tǒng)制造商和附件產(chǎn)品將會(huì)介入其中。
1)基于主機(jī)RAID的分析
基于主機(jī)的RAID要求主機(jī)系統(tǒng)提供CPU的處理周期,也占用系統(tǒng)內(nèi)存帶寬和主機(jī)I/O總線。按照實(shí)現(xiàn)的RAID級(jí)的不同,這會(huì)引起幾個(gè)I/O操作通過(guò)系統(tǒng)總線,而外部磁盤陣列軟件將它們當(dāng)作一個(gè)請(qǐng)求處理。此外,校驗(yàn)RAID是非常耗費(fèi)CPU的。
例如,RAID1鏡像實(shí)現(xiàn)起來(lái)相當(dāng)簡(jiǎn)單,并不涉及大量的處理,同時(shí),它對(duì)資源的消耗也不特別嚴(yán)重,而RAID4、5、6則要求多次XOR校驗(yàn)操作,以及從磁盤驅(qū)動(dòng)器中讀出數(shù)據(jù)。
舉一個(gè)例子,假如RAID5運(yùn)行在主機(jī)系統(tǒng)中,主機(jī)系統(tǒng)安裝有JBOD磁盤子系統(tǒng)。當(dāng)更新磁盤上的一個(gè)分塊時(shí),必須在主機(jī)I/O總線上移動(dòng)相當(dāng)多的數(shù)據(jù)。在這種情況下,原有數(shù)據(jù)和原有校驗(yàn)數(shù)據(jù)必須從磁盤讀出,然后新數(shù)據(jù)再寫(xiě)到磁盤,校驗(yàn)的XOR計(jì)算處于讀和寫(xiě)之間。若將獨(dú)立的重疊I/O操作用于多個(gè)成員磁盤,主機(jī)I/O總線可能變得更為擁擠。
2)基于陣列管理軟件的RAID3問(wèn)題
當(dāng)RAID功能在主機(jī)軟件中實(shí)現(xiàn)時(shí),值得懷疑的是RAID3是否能夠正常工作。RAID3的性能取決于成員驅(qū)動(dòng)器的寫(xiě)操作,對(duì)匹配磁盤轉(zhuǎn)動(dòng)同步的容錯(cuò)范圍很小。然而,基于主機(jī)的陣列管理軟件所提供的數(shù)據(jù)必須通過(guò)整個(gè)I/O路徑,因而,很難保證數(shù)據(jù)能夠及時(shí)地傳送給磁盤子系統(tǒng),提供適當(dāng)?shù)年嚵行阅堋R驗(yàn)镽AID3的速度取決于所使用的同步磁盤,假如主機(jī)和磁盤之間的數(shù)據(jù)傳送發(fā)生延遲,那么會(huì)導(dǎo)致成員磁盤的不必要的轉(zhuǎn)動(dòng),致使陣列的性能很差。
注意RAID子系統(tǒng)的許多冗余屬性實(shí)際上是磁盤子系統(tǒng)的一部分,也可以由JBOD提供,
這些包括冗余的電源、風(fēng)扇、甚至熱插拔磁盤驅(qū)動(dòng)器。雖然基于主機(jī)的RAID能夠支持熱
交換磁盤驅(qū)動(dòng)器,但主機(jī)軟件并不支持它,要使它能正常地工作,必須將它放入磁盤子
系統(tǒng)。
RAID2:專有磁盤的并行訪問(wèn)
過(guò)去,磁盤驅(qū)動(dòng)器花費(fèi)更貴,而且沒(méi)有今天這樣復(fù)雜的電路,因而,就構(gòu)想出了RAID2,RAID2的定義涉及RAID控制器中的錯(cuò)誤校驗(yàn)電路。今天,這個(gè)功能已經(jīng)被集成到磁盤驅(qū)動(dòng)器中,雖然便宜,但效率卻不高。因此,RAID2沒(méi)有形成產(chǎn)品,在文獻(xiàn)中也幾乎被忽略。