新聞中心
聯(lián)系我們
Contact us
Contact us
- 總部電話010-51727811
- 客服熱線400 779 6696
- 更多聯(lián)系信息
數(shù)據(jù)存儲(chǔ)磁盤陣列技術(shù)(二)
時(shí)間:2012-12-19 09:40 來源:飛客數(shù)據(jù)恢復(fù) 作者:飛客數(shù)據(jù)恢復(fù)工程師
硬盤分段和數(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è)昂貴的大硬盤來得便宜)。可以不用鏡像而用其它數(shù)據(jù)冗余的方法來提供高容錯(cuò)性能。可以選擇一神奇偶碼模式來實(shí)現(xiàn)上述方法,可以外加一個(gè)專作奇偶校驗(yàn)用的硬盤(如在RAID3中),或者可把奇偶校驗(yàn)數(shù)據(jù)分散分布在磁盤陣列的全部硬盤中。不管用何種級(jí)別的RAID,磁盤陣列總是用異或(XOR)操作來產(chǎn)生奇偶數(shù)據(jù),當(dāng)子系統(tǒng)中有一個(gè)硬盤發(fā)生故障時(shí),也是用異或操作重建數(shù)據(jù)。下列簡(jiǎn)單分析了XOR是怎樣工作的。
硬盤ABC奇偶盤(A,B,C異或的結(jié)果)
數(shù)據(jù)1010
首先記住在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):
硬盤ABCDEF奇偶位
數(shù)據(jù)0001010
如果丟失B盤數(shù)據(jù),我們可以XORA,C,D,E,F和奇偶位來得到失去的B盤數(shù)據(jù)0。而XORA,B,C,D,E,F和奇偶位可恢復(fù)D盤的數(shù)據(jù)1。采用專用的奇偶校驗(yàn)盤(如上所述,即RAID3),當(dāng)同時(shí)產(chǎn)生多個(gè)寫操作時(shí),每次操作都要對(duì)奇偶盤進(jìn)行寫入。這將產(chǎn)生I/O瓶頸效應(yīng)。RAID5把奇偶位信息分散分布在硬盤子系統(tǒng)的所有硬盤上(而不是使用專用的校驗(yàn)盤0,這就改善了上述RAID3中的奇偶盤瓶頸效應(yīng)。RAID5的一種配置:奇偶信息散布在子系統(tǒng)的每個(gè)硬盤上。利用每個(gè)硬盤的一部分來組成校驗(yàn)盤,寫入硬盤的奇偶位信息將較均勻地分布在所有硬盤上。所以某個(gè)用戶可能把它的一個(gè)數(shù)據(jù)段寫在硬盤A,而將奇偶信息寫在硬盤B,第二個(gè)用戶可能把數(shù)據(jù)寫在硬盤C,而奇偶信息寫在硬盤D。從這里也可看出RAID5的性能會(huì)得到提高。這種方法將提高硬盤子系統(tǒng)的事務(wù)處理速度。所謂事務(wù)處理,是指處理從許多不同用戶來的多個(gè)硬盤I/O操作,由于可能同時(shí)有很多用戶與硬盤打交道,迅速向硬盤寫入數(shù)據(jù),有時(shí)幾乎是同時(shí)進(jìn)行的,這種情況下,用分布式奇偶盤的方式比起用專用奇偶盤,瓶頸效應(yīng)發(fā)生的可能性要小。對(duì)硬盤操作來說,RAID5的寫性能比不上直接硬盤分段(指沒有校驗(yàn)信息的RAID0)。因?yàn)楫a(chǎn)生或存儲(chǔ)奇偶碼需要一些額外操作。例如,在修改一個(gè)硬盤上的數(shù)據(jù)時(shí),其它盤上對(duì)應(yīng)段的數(shù)據(jù)(即使是無關(guān)的數(shù)據(jù))也要讀入主機(jī),以便產(chǎn)生必要的奇偶信息。奇偶段產(chǎn)生后(這要花一些時(shí)間),我們要將更新的數(shù)據(jù)段和奇偶段寫入硬盤,這通常稱為讀-修改-寫策略。因此,雖然RAID5比RAID0優(yōu)越,但就寫性能來說,RAID5不如RAID0。鏡像技術(shù)(RAID1)和數(shù)據(jù)奇偶位分段(RAID5)用于上述的硬盤子系統(tǒng)中時(shí),都產(chǎn)生冗余信息。但在RAID1中,所有數(shù)據(jù)都被復(fù)制到第二個(gè)相同的硬盤上。在RAID5,數(shù)據(jù)的XOR碼而不是數(shù)據(jù)本身被復(fù)制,因此可以用數(shù)據(jù)的非常緊湊的表現(xiàn)方式,來恢復(fù)由于某一硬盤故障而丟失的數(shù)據(jù)。采用RAID5時(shí),對(duì)于5個(gè)硬盤的數(shù)組,有大約20%的硬盤空間用于存放奇偶碼,而十個(gè)硬盤的數(shù)組只有約10%的空間存放奇偶碼。在可用空間總的格式化空間的意義上來說,硬盤系統(tǒng)中的硬盤越多該系統(tǒng)就越省錢。總之,RAID5把硬盤分段和奇偶冗余技術(shù)的優(yōu)點(diǎn)結(jié)合在一起,這樣的硬盤子系統(tǒng)特別適合于事務(wù)處理環(huán)境,例如民航售票處,汽車出租站,銷售系統(tǒng)的終端,等等。在某些場(chǎng)合,可優(yōu)先考慮RAID1(在那些寫數(shù)據(jù)比讀數(shù)據(jù)更頻繁的情況)。但許多情況,RAID5提供了將高性能,低價(jià)格和數(shù)據(jù)安全性綜合在一起的解決辦法。
硬盤故障恢復(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ù)備份,因此故障硬盤(主硬盤或鏡像硬盤)通過簡(jiǎn)單的硬盤到硬盤的拷貝操作就能重建數(shù)據(jù),這個(gè)拷貝操作比從磁帶上恢復(fù)數(shù)據(jù)要快得多。RAID5硬盤子系統(tǒng)中,故障硬盤通過無故障硬盤上存放的糾錯(cuò)(奇偶)碼信息來重建數(shù)據(jù)。正常盤上的數(shù)據(jù)(包括奇偶信息部分)被讀出,并計(jì)算出故障盤丟失的那些數(shù)據(jù),然后寫入新替換的盤。這個(gè)過程比從磁帶上恢復(fù)數(shù)據(jù)要快不少。設(shè)計(jì)靈活的磁盤陣列可以重新配置,替換盤的地址不一定和故障盤的地址相同。這種靈活性使安裝過程變得更為簡(jiǎn)單。備用盤甚至可以在硬盤故障前預(yù)先連在系統(tǒng)上。在那種情況下,它就成了隨時(shí)可用的備份盤。這種盤通常稱為“熱備份”。
可靠性和可用性
這二個(gè)名詞雖然相互關(guān)連,事實(shí)上卻代表了硬盤故障的二個(gè)不同的方面,可靠性指的是硬盤在給定條件下發(fā)生故障的概率。可用性指的是硬盤在某種用途中可能用的時(shí)間。利用這二個(gè)名詞,我們可以看到磁盤陣列是怎樣把我們的硬盤系統(tǒng)可靠性提高到接近百分之百的程度的。磁盤陣列可以改善硬盤系統(tǒng)的可靠性。因?yàn)槟骋挥脖P中的數(shù)據(jù)可以從其它硬盤的數(shù)據(jù)中重新產(chǎn)生出來(例如RAID5),所以很少會(huì)有機(jī)會(huì)使整個(gè)硬盤系統(tǒng)失效。硬盤子系統(tǒng)的可靠性因而大大改善了。下表是RAID硬盤子系統(tǒng)與單個(gè)硬盤子系統(tǒng)的可靠性比較:
硬盤子系統(tǒng),硬盤數(shù)時(shí)間,平均故障時(shí)間*,平均丟失數(shù)據(jù)時(shí)間
單個(gè)硬盤,1,30,000小時(shí),30,0000小時(shí)
RAID0(分段),5,30,000小時(shí),6,0000小時(shí)
RAID1(鏡像),2,30,000小時(shí),49,9百萬小時(shí)
RAID5(分段加奇偶碼),5,30,000小時(shí),46,2百萬小時(shí)
硬盤子系統(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è)電源,或者配備雙份硬盤控制器。沒有其它部件的冗余,即使有非常可靠的硬盤子系統(tǒng),還是不能完全防止計(jì)算機(jī)系統(tǒng)的失效。
最佳化的容錯(cuò)系統(tǒng)
如先前所述,直接分段的子系統(tǒng)(RAID0)可以大大提高讀寫速度(相對(duì)單個(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)性能瓶頸的可能性更小了。