国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于備份的RAID1在線重構(gòu)框架

2018-04-18 11:33
計算機(jī)應(yīng)用與軟件 2018年3期
關(guān)鍵詞:磁盤備份重構(gòu)

徐 偉

(國家安全生產(chǎn)監(jiān)督管理總局通信信息中心 北京 100713)

0 引 言

針對RAID在線重構(gòu)研究,國內(nèi)外相關(guān)研究從預(yù)測失效、spare布局、數(shù)據(jù)布局和重構(gòu)策略四個方面來探索如何加速RAID在線重構(gòu)。

預(yù)測失效主要使用磁盤自動檢測功能,探測出即將不能正常運行的磁盤,在失效前將其復(fù)制到spare盤上,從而減少重構(gòu)時間,提高磁盤陣列可靠性。在大型peer-to-peer的存儲系統(tǒng)Oceanstore里也采取了磁盤失效預(yù)測技術(shù)[1]。但這種方式不能完全準(zhǔn)確預(yù)測出磁盤失效。文獻(xiàn)[2]指出:現(xiàn)有技術(shù)只能預(yù)告實際磁盤故障的50%,其效果被夸大。

Spare布局分為Dedicated sparing[3]、Parity sparing[4]和Distributed sparing[5-7]這三種方式。Dedicated sparing模式專門用一塊磁盤作為空閑盤,當(dāng)磁盤陣列發(fā)生磁盤失效,將失效磁盤上數(shù)據(jù)完全重構(gòu)到spare磁盤。Parity sparing將spare磁盤作為第二塊parity盤,減少parity組長度。當(dāng)陣列中某塊磁盤失效,兩個parity組融合生成一個更大的單一陣列,該陣列只有一個parity組。Distributed sparing將spare空間分布在所有磁盤上,而不是專門用一個磁盤作為spare盤。當(dāng)陣列中某塊磁盤失效,失效磁盤上數(shù)據(jù)會被重構(gòu),并分布于所有磁盤的空閑空間。但當(dāng)用戶負(fù)載急劇增加時,磁盤陣列重構(gòu)性能顯著降低,重構(gòu)時間大幅增加。

通過研究RAID的數(shù)據(jù)布局來加速重構(gòu)過程是常用的一種方法。Decluster parity[8-9]通過虛擬邏輯盤構(gòu)成磁盤陣列,設(shè)物理磁盤個數(shù)為C,虛擬邏輯盤個數(shù)為G,將(G-1)/(C-1)定義為α,C和G確定了parity數(shù)據(jù)消耗總磁盤空間,α確定了系統(tǒng)的重構(gòu)性能。當(dāng)α值越小,重構(gòu)所需時間則越小,parity數(shù)據(jù)所占比例越大;當(dāng)α值越大,重構(gòu)所需時間則越大,parity數(shù)據(jù)所占比例越小??梢哉{(diào)節(jié)α,從而在重構(gòu)和parity數(shù)據(jù)所占比例間取得平衡。但是,當(dāng)α值很小時,用于parity數(shù)據(jù)的存儲開銷將非常大,而且當(dāng)用戶負(fù)載很大時,重構(gòu)所需時間仍然相當(dāng)大。文獻(xiàn)[10]提出了一種新型數(shù)據(jù)布局方式提高了鏡像磁盤陣列重構(gòu)過程。文獻(xiàn)[11]在RAID結(jié)構(gòu)里構(gòu)建了一個子陣列從而顯著加速數(shù)據(jù)重構(gòu)過程。文獻(xiàn)[12-15]對RAID6編碼布局進(jìn)行研究以便改善RAID6重構(gòu)性能。文獻(xiàn)[16-17]也對磁盤陣列編碼布局進(jìn)行研究,從而改善磁盤陣列重構(gòu)性能。

重構(gòu)策略[18]主要由重構(gòu)對象、重構(gòu)順序、重構(gòu)與服務(wù)協(xié)作這三個方面組成。

重構(gòu)對象主要分為面向條帶重構(gòu)、并行條帶重構(gòu)和面向磁盤重構(gòu)。面向條帶重構(gòu)是按條帶來進(jìn)行重構(gòu)的,并行條帶重構(gòu)采取多個并行的面向條帶重構(gòu),面向磁盤重構(gòu)采取與陣列中磁盤相同個數(shù)的進(jìn)程,一個進(jìn)程對應(yīng)一個磁盤。但是,當(dāng)用戶負(fù)載較大時,重構(gòu)所需時間仍然相當(dāng)長,且對服務(wù)性能影響顯著。文獻(xiàn)[19]描述了基于磁道的重構(gòu)算法,利用該算法可以重構(gòu)磁道上丟失數(shù)據(jù)。

重構(gòu)順序主要分為Head-following、Closet active stripe、Multiple reconstruction points和基于局部性的多線程重構(gòu)。Head-following重構(gòu)的主要原理:重構(gòu)磁盤總是從處于低地址的尚未重構(gòu)單元進(jìn)行順序重構(gòu)。Closest active stripe重構(gòu)的主要原理:在完成用戶請求時,總是從靠近磁頭位置的尚未重構(gòu)單元進(jìn)行重構(gòu)。Multiple reconstruction points重構(gòu)的主要原理:將磁盤分為多個重構(gòu)段,在完成用戶請求時,從當(dāng)前最近重構(gòu)點開始重構(gòu)。基于局部性的多線程重構(gòu)的主要原理:利用用戶負(fù)載訪問的局部性,優(yōu)先重構(gòu)頻繁訪問的區(qū)域[20]。

重構(gòu)與服務(wù)協(xié)作方面主要分為用戶請求操作、重構(gòu)速率控制兩方面。

用戶請求操作處理方式分為直讀、回寫和直寫。直讀主要原理:如果用戶對失效磁盤讀請求所涉及數(shù)據(jù)已經(jīng)被重構(gòu)并已經(jīng)在spare盤上,則直接從spare盤上讀取該數(shù)據(jù)?;貙懙闹饕恚河脩魧κТ疟P讀請求重構(gòu)出數(shù)據(jù),該數(shù)據(jù)不僅被發(fā)送給用戶,而且被寫到spare盤上。直寫的主要原理:用戶的寫請求直接發(fā)送到spare盤上,寫入spare盤的相應(yīng)位置?;贜AND閃存的高新能和可靠的PRAID-6[21]提出一種新型的數(shù)據(jù)提交方法從而獲得與RAID6同樣的恢復(fù)能力。文獻(xiàn)[22-23]通過對磁盤陣列讀寫方式和數(shù)據(jù)塊聚合來優(yōu)化磁盤陣列讀寫性能。

重構(gòu)速率控制主要在服務(wù)性能和重構(gòu)速率之間尋找平衡點,從而使得服務(wù)性能處于用戶可承受范圍,盡可能提高重構(gòu)速率[24-25]。文獻(xiàn)[26-27]指出可以根據(jù)磁頭移動軌跡來利用空閑帶寬處理后臺應(yīng)用,這也有助于提高重構(gòu)性能和服務(wù)性能。

還有其他方式[28-30]來加速磁盤陣列重構(gòu)過程。文獻(xiàn)[28]通過將熱點數(shù)據(jù)復(fù)制到固態(tài)硬盤上來加速重構(gòu)過程。文獻(xiàn)[29]在分布式RAID上利用獨立GPU加速重構(gòu)過程。文獻(xiàn)[30]利用節(jié)點的計算編碼能力,傳輸經(jīng)過編碼的數(shù)據(jù)塊來修復(fù)校驗盤,減少修復(fù)過程中的數(shù)據(jù)傳輸量,縮短校驗盤的修復(fù)時間。

針對RAID在線重構(gòu),國內(nèi)外相關(guān)研究主要從預(yù)測失效、spare分布、數(shù)據(jù)分布、重構(gòu)策略四個方面來提高磁盤陣列服務(wù)性能和重構(gòu)性能。

在對數(shù)據(jù)存儲可靠性有高要求時,RAID1作為一種RAID技術(shù),會被經(jīng)常采用。但國內(nèi)外現(xiàn)有研究始終無法解決重負(fù)載持續(xù)訪問情況下,RAID1的重構(gòu)性能和服務(wù)性能急劇惡化這一問題。

而企業(yè)存儲網(wǎng)絡(luò)系統(tǒng)多數(shù)由生產(chǎn)系統(tǒng)和備份系統(tǒng)構(gòu)成。生產(chǎn)系統(tǒng)由于直接對外提供服務(wù),因此,其可靠性和可用性非常重要。尤其是大容量磁盤越來越便宜,備份系統(tǒng)越來越多采用磁盤存儲備份數(shù)據(jù)。

因此,本文首次提出了“利用外部存放的備份數(shù)據(jù)來加速RAID1在線重構(gòu)”的思想,構(gòu)建了基于備份的RAID1在線重構(gòu)框架,從而充分挖掘了閑置磁盤備份的強(qiáng)大IO能力,顯著提高了繁忙生產(chǎn)系統(tǒng)內(nèi)RAID1在線重構(gòu)的速度。

1 設(shè)計思想

基于備份的RAID1在線重構(gòu)框架的核心思想:當(dāng)生產(chǎn)系統(tǒng)磁盤陣列RAID1出現(xiàn)磁盤失效時,可以由備份系統(tǒng)虛擬出失效磁盤處于最近備份時間點的歷史版本。通過將歷史版本恢復(fù)至熱備盤上,從而使得熱備盤成為處于最近備份時間點的版本。最后,利用生產(chǎn)系統(tǒng)虛擬出的當(dāng)前版本將失效磁盤上自最近一次備份時間點之后已修改數(shù)據(jù)重構(gòu)至spare磁盤上。此框架的主要優(yōu)點為:利用備份系統(tǒng)所提供的穩(wěn)定恢復(fù)帶寬,顯著降低了應(yīng)用負(fù)載對重構(gòu)過程的影響。同時,顯著減少了磁盤陣列RAID1參入重構(gòu),使得磁盤陣列RAID1優(yōu)先滿足用戶服務(wù)。

重構(gòu)過程分為兩個階段:版本恢復(fù)階段和版本修復(fù)階段。當(dāng)生產(chǎn)系統(tǒng)出現(xiàn)磁盤失效時,激活spare磁盤,如圖1(a)所示。首先,重構(gòu)過程進(jìn)入版本恢復(fù)階段;spare硬盤從生產(chǎn)系統(tǒng)中換出,完全由備份系統(tǒng)將失效磁盤處于最近備份時間點的歷史版本恢復(fù)至spare磁盤,從而將spare磁盤恢復(fù)成失效磁盤處于最近備份時間點的版本,如圖1(b)所示。然后重構(gòu)過程進(jìn)入版本修復(fù)階段;將spare磁盤重新加入到生產(chǎn)系統(tǒng)磁盤陣列中,利用與失效磁盤構(gòu)成RAID1的另一塊磁盤將spare盤修復(fù)為當(dāng)前版本,從而完成失效磁盤上自最近一次備份時間點之后已修改數(shù)據(jù)的重構(gòu),如圖1(c)所示。通過版本恢復(fù)階段和版本修復(fù)階段,完成spare磁盤的數(shù)據(jù)重構(gòu),從而將生產(chǎn)系統(tǒng)恢復(fù)到正常運行狀態(tài),如圖1(d)所示。

圖1 此框架的重構(gòu)過程

2 設(shè)計實現(xiàn)

基于備份的RAID1在線重構(gòu)框架的原型系統(tǒng)主要由面向數(shù)據(jù)的磁盤陣列架構(gòu)、映射管理、恢復(fù)管理和重構(gòu)管理四部分構(gòu)成,通過這四部分協(xié)作,完成磁盤陣列RAID1在線重構(gòu)過程。

2.1 面向數(shù)據(jù)的磁盤陣列架構(gòu)

通過對傳統(tǒng)磁盤陣列進(jìn)行簡單改進(jìn),我們實現(xiàn)了面向數(shù)據(jù)的磁盤陣列架構(gòu)。面向數(shù)據(jù)的磁盤陣列架構(gòu)與傳統(tǒng)磁盤陣列架構(gòu)根本差異就是:面向數(shù)據(jù)的磁盤陣列中未被使用邏輯塊上數(shù)據(jù)一定為零。我們使用一個全局位圖記錄磁盤陣列中所有邏輯塊(數(shù)據(jù)塊)的使用情況,并通過在傳統(tǒng)磁盤陣列轉(zhuǎn)發(fā)讀寫請求路徑上添加訪問位圖接口,從而實現(xiàn)了面向數(shù)據(jù)的磁盤陣列架構(gòu)。面向數(shù)據(jù)磁盤陣列必須按照條帶分配和釋放邏輯單元,以避免引起附加的讀寫操作。

2.2 映射管理

映射管理主要負(fù)責(zé)以下三類映射關(guān)系的建立和維護(hù):1) 邏輯卷邏輯塊與最新備份數(shù)據(jù)塊的映射關(guān)系;2) 失效磁盤邏輯塊與最新備份數(shù)據(jù)塊的映射關(guān)系;3) 失效磁盤上自最近備份時間點之后修改數(shù)據(jù)塊的位置標(biāo)識。如圖2所示。

圖2 磁盤邏輯塊與最新備份數(shù)據(jù)塊的映射關(guān)系

圖2(a)描述了版本、邏輯卷、磁盤陣列和磁盤之間的映射關(guān)系。假設(shè)磁盤陣列RAID1由disk0、disk1兩塊磁盤構(gòu)成;磁盤上邏輯塊、RAID1上chunk、邏輯卷(lv1)空間分配粒度和備份數(shù)據(jù)塊都為4 KB;一個邏輯卷lv1已被創(chuàng)建;邏輯卷lv1做了兩次備份,第一次備份版本為version_1,第二次備份版本為version_2;位圖lv1-bmp為自最近一次備份時間點之后的差別增量位圖,也就是第二次備份時間點之后的差別增量位圖。

如圖2(a)所示,邏輯卷lv1的第0邏輯塊和第4邏輯塊未分配實際磁盤邏輯塊,邏輯卷lv1第1塊映射到磁盤disk0和disk1的第0塊(d00和d01),lv1其余邏輯塊與磁盤上邏輯塊的映射關(guān)系不再贅述;邏輯卷lv1的version_1上數(shù)據(jù)塊v110,根據(jù)version_1的位圖,v110對應(yīng)lv1的第1塊數(shù)據(jù)(處于version_1時刻),其余版本所保存的數(shù)據(jù)塊與邏輯卷lv1邏輯塊的映射關(guān)系不再贅述;根據(jù)位圖lv1-bmp,邏輯卷lv1的第1個邏輯塊自最近一次備份時間點之后被修改;磁盤邏輯塊d01、d11、d04、d14、d05和d15未被使用,其上數(shù)據(jù)為零。

圖2(a)的映射關(guān)系、邏輯卷與磁盤陣列邏輯塊的映射關(guān)系、以及磁盤陣列與磁盤邏輯塊的映射關(guān)系,可以計算出任一磁盤邏輯塊與最新備份數(shù)據(jù)塊的映射關(guān)系。根據(jù)圖2(a)所描述的映射關(guān)系,計算出disk0和disk1這兩塊磁盤的數(shù)據(jù)塊與備份數(shù)據(jù)塊的映射關(guān)系,如圖2(b)所示。在圖2(b)中,備份數(shù)據(jù)塊v110映射在disk0和disk1的第0塊(d00和d10)上,其余不再贅述。

圖2(c)描述了各磁盤上自最近一次備份時間點之后修改數(shù)據(jù)的位置標(biāo)識(版本修復(fù)位圖)。在圖2(a)中,根據(jù)位圖lv1-bmp,可知磁盤disk0邏輯塊d00和磁盤disk1邏輯塊d01數(shù)據(jù)自最近一次備份之后已被修改。因此,生成了磁盤disk0和disk1自最近一次備份時間點之后修改數(shù)據(jù)的位置標(biāo)識。

圖2(d)中描述了使用最新數(shù)據(jù)塊來生成各磁盤邏輯塊數(shù)據(jù)。如圖2(d)所示,磁盤disk0邏輯塊d02數(shù)據(jù)相同于備份數(shù)據(jù)塊v211,其他不再贅述;由于磁盤disk0邏輯塊d00和磁盤disk1邏輯塊d01自最近一次備份時間點后被修改,所以磁盤disk1邏輯塊d01等同于磁盤disk0邏輯塊d00。

2.3 恢復(fù)管理

恢復(fù)管理構(gòu)件由多個讀線程和一個寫線程構(gòu)成,映射管理構(gòu)件由一個線程構(gòu)成。當(dāng)恢復(fù)管理構(gòu)件進(jìn)行spare磁盤的恢復(fù)操作時,映射管理構(gòu)件并行生成映射關(guān)系和版本修復(fù)位圖。

恢復(fù)管理構(gòu)件采取多個讀線程并發(fā)讀取備份數(shù)據(jù)。一個讀線程從映射緩沖內(nèi)順序取出一個映射關(guān)系,對于數(shù)據(jù),將相應(yīng)數(shù)據(jù)(一塊備份數(shù)據(jù))讀出,存放于數(shù)據(jù)緩沖相應(yīng)位置。當(dāng)某個讀線程完成數(shù)據(jù)讀取后,則順序處理還未讀取的數(shù)據(jù)。

恢復(fù)管理構(gòu)件采用單個寫線程將數(shù)據(jù)順序?qū)懭雜pare磁盤?;謴?fù)管理構(gòu)件有兩個數(shù)據(jù)緩沖,當(dāng)讀線程讀取數(shù)據(jù)并存放于一個緩沖時,寫線程將已放滿數(shù)據(jù)的另一個緩沖中數(shù)據(jù)寫入spare盤中。

2.4 重構(gòu)管理

在此原型系統(tǒng)中,重構(gòu)管理構(gòu)件僅負(fù)責(zé)版本修復(fù)階段。通過版本修復(fù)位圖和輔助位圖兩者合作,重構(gòu)管理構(gòu)件實現(xiàn)了版本修復(fù)功能。版本修復(fù)位圖是自最近備份時間點之后修改數(shù)據(jù)的位置標(biāo)識,輔助位圖上所有位初始為0,兩個位圖上每一位與磁盤上4 KB邏輯塊一一對應(yīng)。通過版本修復(fù)位圖和輔助位圖之間合作,可以判斷邏輯塊上數(shù)據(jù)是否有效。spare磁盤邏輯塊上數(shù)據(jù)被定義了兩種狀態(tài):

VALID——如果版本修復(fù)位圖中某位為0或者輔助位圖中某位為1,則對應(yīng)邏輯塊上數(shù)據(jù)有效。

INVALID——如果版本修復(fù)位圖中某位為1,且輔助位圖中相應(yīng)位為0,則對應(yīng)邏輯塊上數(shù)據(jù)無效,即邏輯塊上數(shù)據(jù)自最近一次備份時間點之后已被修改。

在版本修復(fù)階段,版本修復(fù)位圖和輔助位圖協(xié)作過程如下:

1) 按照版本修復(fù)位圖和輔助位圖,順序發(fā)出對于無效數(shù)據(jù)塊的重構(gòu)請求。當(dāng)所計算出的數(shù)據(jù)被寫入spare磁盤對應(yīng)邏輯塊之后,則將輔助位圖上相應(yīng)位設(shè)為1,從而標(biāo)識對應(yīng)邏輯塊上數(shù)據(jù)已經(jīng)有效。

2) 用戶讀請求發(fā)送給RAID1時,先直接讀取正常磁盤相應(yīng)邏輯塊上數(shù)據(jù);如果spare磁盤對應(yīng)邏輯塊上數(shù)據(jù)無效,則將其寫入spare盤,同時,將輔助位圖上相應(yīng)位設(shè)為1,從而標(biāo)識spare盤被訪問邏輯塊上數(shù)據(jù)已經(jīng)有效。

3) 用戶寫請求發(fā)送給RAID1時,當(dāng)寫請求發(fā)送給正常磁盤時,同時發(fā)送給spare盤,并將版本修復(fù)位圖上相應(yīng)位設(shè)為1;寫請求完成之后,則將輔助位圖上相應(yīng)位設(shè)為1,標(biāo)識spare盤被訪問邏輯塊上數(shù)據(jù)已經(jīng)有效。

通過面向數(shù)據(jù)的磁盤陣列架構(gòu)、映射管理、恢復(fù)管理和重構(gòu)管理四個構(gòu)件,我們實現(xiàn)了基于備份的RAID1在線重構(gòu)框架的原型系統(tǒng)。

3 性能評價

本文主要使用面向磁盤重構(gòu)算法DOR(Disk-Oriented Reconstruction)與基于備份的RAID1在線重構(gòu)框架進(jìn)行對比。因為DOR方法是現(xiàn)有重構(gòu)方法中最有效算法之一,而且已經(jīng)被實現(xiàn)于許多軟RAID1和硬RAID1產(chǎn)品中,并且在許多文獻(xiàn)中受到最廣泛的研究。

本節(jié)的測試配置如下設(shè)置:cello99(12-25、10-05)和F1.spc應(yīng)用模式;對于cello99和F1.spc這兩種應(yīng)用模式,生產(chǎn)系統(tǒng)RAID1單塊磁盤容量分別設(shè)為92 GB和31 GB;邏輯卷空間分配粒度為32 MB,完全隨機(jī)分配;生產(chǎn)系統(tǒng)RAID1中1塊磁盤失效;4 KB、8 KB和16 KB備份版本集合;每個邏輯卷對應(yīng)備份版本集合包含了184個版本;備份系統(tǒng)RAID5由6塊磁盤構(gòu)成;恢復(fù)管理模塊里讀線程數(shù)目設(shè)置為30,寫線程數(shù)目設(shè)置為1。

在本節(jié)論述中,4 KB表示為:備份版本集合的備份粒度為4 KB;8 KB、16 KB含義與4 KB類似,不再贅述。

3.1 重構(gòu)性能

圖3描述了基于備份的RAID1在線重構(gòu)框架的重構(gòu)性能相對于DOR提高倍數(shù)。從圖3中,可以得出以下結(jié)論:基于備份的RAID1在線重構(gòu)框架的重構(gòu)性能相對于DOR有顯著改善。在圖3中,對于cello99-12-25應(yīng)用負(fù)載(每天修改數(shù)據(jù)量較小且負(fù)載壓力較小),此框架的重構(gòu)性能比DOR提高了4.8至6.4倍;而對于cello99-10-05應(yīng)用負(fù)載(每天修改數(shù)據(jù)量較小且負(fù)載壓力較大),此框架的重構(gòu)性能比DOR提高了15.1至17.8倍;對于F1.spc(每天修改數(shù)據(jù)量非常大),此框架的重構(gòu)性能也比DOR提高了3倍左右。

圖3 此框架重構(gòu)性能相對于DOR提高倍數(shù)

當(dāng)RAID1存儲空間遠(yuǎn)大于邏輯卷實際分配空間時,相對于DOR,此框架對重構(gòu)性能有巨大改善。

3.2 服務(wù)性能

圖4描述了基于備份的RAID1在線重構(gòu)框架的總體平均響應(yīng)時間相對于DOR降低百分比。從圖4中,可以得出以下結(jié)論:基于備份的RAID1在線重構(gòu)框架的總體平均響應(yīng)時間相對于DOR有顯著改善。如圖4所示,對于cello99-12-25應(yīng)用負(fù)載,此框架的總體平均響應(yīng)時間比DOR降低28%左右;而對于cello99-10-05應(yīng)用負(fù)載,此框架的總體平均響應(yīng)時間比DOR降低38%左右;對于F1.spc應(yīng)用模式,此框架的總體平均響應(yīng)時間比DOR降低了20%左右。

圖4 此框架平均響應(yīng)時間相對于DOR降低百分比

4 代價分析

4.1 磁盤陣列備份映射關(guān)系的維護(hù)開銷

為了在發(fā)生磁盤失效時能夠盡快建立起所需映射關(guān)系,必須維護(hù)最新備份數(shù)據(jù)塊與磁盤陣列上邏輯塊的映射關(guān)系(磁盤陣列備份映射關(guān)系)。維護(hù)此類映射關(guān)系的空間開銷和時間開銷如表1所示。

表1 磁盤陣列備份映射關(guān)系的維護(hù)開銷

其中,磁盤容量表示為D,單位為TB;磁盤陣列容量表示為R,單位為TB,R與D相等;備份數(shù)據(jù)塊粒度表示為A,單位為KB;映射關(guān)系單元占用8個字節(jié);順序讀寫性能表示為P,單位為MB/s;映射關(guān)系所占空間為(8×R)/A,單位為GB。

1) 空間開銷。假設(shè)磁盤容量為8 TB,備份數(shù)據(jù)塊為4 KB,生產(chǎn)系統(tǒng)上磁盤陣列存儲容量為8 TB;由于備份系統(tǒng)上存儲容量一般大于生產(chǎn)系統(tǒng),假設(shè)備份系統(tǒng)上存儲容量為8 TB;如表1所示,該映射關(guān)系占用16 GB空間,僅占備份系統(tǒng)上存儲容量的0.2%;假如備份數(shù)據(jù)塊粒度為64 KB時,僅占備份系統(tǒng)上存儲容量的0.012 5%。因此,日常所需維護(hù)的映射關(guān)系所產(chǎn)生的空間開銷可以忽略不計。

2) 時間開銷。在備份系統(tǒng)上進(jìn)行日常維護(hù),日常維護(hù)映射關(guān)系的算法如下:首先從生產(chǎn)系統(tǒng)里讀取邏輯卷和磁盤陣列邏輯塊映射關(guān)系;讀取邏輯卷最新備份版本位圖;然后在內(nèi)存中更新磁盤陣列備份映射關(guān)系(順序排列),每500 MB寫回一次;每個邏輯卷依次進(jìn)行。

測試配置如下設(shè)置:生產(chǎn)系統(tǒng)上磁盤陣列RAID1由2塊磁盤構(gòu)成,單塊磁盤容量為8 TB;空間分配粒度為32 MB,完全隨機(jī)分配;4 KB備份版本集合;生產(chǎn)系統(tǒng)RAID1分配了64個128 GB邏輯卷;備份系統(tǒng)為單塊磁盤,磁盤容量為8 TB,存放了64個邏輯卷全量備份的備份版本位圖,也即每個備份版本位圖所有bit位為1,每個備份版本位圖為4 MB。最新備份數(shù)據(jù)塊與磁盤陣列邏輯塊的映射關(guān)系文件為16 GB,也存放在備份系統(tǒng)單塊8 TB磁盤上。測試結(jié)果顯示更新磁盤陣列備份映射關(guān)系只需要14.6分鐘。而且,在備份系統(tǒng)上通常采用磁盤陣列,則讀寫性能會更高,磁盤陣列備份映射關(guān)系維護(hù)時間開銷將更少。

4.2 失效磁盤備份映射關(guān)系的建立開銷

當(dāng)磁盤陣列發(fā)生磁盤失效時,需要建立失效磁盤邏輯塊與最新備份數(shù)據(jù)塊的映射關(guān)系(失效磁盤備份映射關(guān)系),本節(jié)主要考察了建立失效磁盤備份映射關(guān)系的開銷。

測試配置如下設(shè)置:生產(chǎn)系統(tǒng)上磁盤陣列RAID1由2塊磁盤構(gòu)成,單塊磁盤容量為8 TB;其中,1塊磁盤失效;空間分配粒度為32 MB,完全隨機(jī)分配;4 KB備份版本集合;生產(chǎn)系統(tǒng)RAID1分配了64個128 GB邏輯卷;1個16 GB磁盤陣列備份映射關(guān)系文件存放在單塊磁盤上。測試結(jié)果顯示,失效磁盤備份映射關(guān)系的建立速度與磁盤陣列備份映射關(guān)系讀取速度相同,接近單塊磁盤順序讀寫性能(60 MB/s)。

4.3 相關(guān)位圖的開銷

相對于傳統(tǒng)RAID重構(gòu)方法,該框架增加了全局位圖、版本修復(fù)位圖和輔助位圖,所引起的開銷如表2所示。在表2中,磁盤容量表示為D,單位為TB;磁盤數(shù)為2個;備份數(shù)據(jù)塊粒度表示為A,單位為KB;輔助位圖和版本修復(fù)位圖大小則為D×1 024/(A×8),單位為MB。

表2 位圖規(guī)模

1) 訪問開銷。由于全局位圖、版本修復(fù)位圖和輔助位圖都存放于內(nèi)存中,因此,訪問這三個位圖所產(chǎn)生的開銷可以忽略不計。

2) 空間開銷。1 TB存儲容量一般配置3 GB內(nèi)存,假設(shè)D為1 TB,磁盤數(shù)為2,磁盤陣列為RAID1,備份數(shù)據(jù)塊粒度為4 KB;如表2所示,版本修復(fù)位圖和輔助位圖都為32 MB,全局位圖為32 MB,僅為系統(tǒng)內(nèi)存總量3 GB的3.1%。因此,三個位圖的空間開銷幾乎可以忽略不計。

5 結(jié) 語

對于RAID1在線重構(gòu)的研究,國內(nèi)外現(xiàn)有研究一直解決不了重負(fù)載持續(xù)訪問下磁盤陣列RAID1重構(gòu)性能急劇惡化的問題。應(yīng)用負(fù)載所訪問的磁盤陣列RAID1歸于生產(chǎn)系統(tǒng),日常備份已經(jīng)成為保證數(shù)據(jù)可靠性的一種常用手段。

因此,本文提出了“利用外部存放的備份數(shù)據(jù)來加速RAID1在線重構(gòu)”的思想,并對此進(jìn)行了深入研究,構(gòu)建了基于備份的RAID1在線重構(gòu)框架。此框架利用備份系統(tǒng)所提供的恢復(fù)帶寬將處于最近一次備份時間點的版本數(shù)據(jù)整合至spare盤。然后利用磁盤陣列RAID1所提供的重構(gòu)帶寬將自最近一次備份時間點之后已修改數(shù)據(jù)重構(gòu)至spare盤。此框架相對于現(xiàn)有重構(gòu)方法顯著改善了RAID1的重構(gòu)性能和服務(wù)性能。

我們下一步工作將根據(jù)RAID6工作原理,構(gòu)建基于備份的RAID6在線重構(gòu)框架。

[1] Rhea S, Wells C, Eaton P, et al. Maintenance-free global data storage[J]. IEEE Internet Computing, 2001, 5(5):40-49.

[2] Pinheiro E, Weber W D, Barroso L A. Failure Trends in a Large Disk Drive Population[C]//The Proceedings of the 5th USENIX Conference on File and Storage Technologies (FAST’07), 2007:33-48.

[3] Menon J, Mattson D. Comparison of Sparing Alternative for Disk Arrays[C]//Proceedings of the 19th International Symposium on Computer Architecture, 1992, 11: 318-329.

[4] Reddy A L N, Chandy J, Banerjee P. Design and Evaluation of Gracefully Degradable Disk Arrays[J]. Journal of Parallel & Distributed Computing, 1993, 17(1-2):28-40.

[5] Rigby N M, Macdougall A J, Needs P W, et al. Performance analysis of RAIDS disk arrays with a vacationing server model for rebuild mode operation[C]//Tenth International Conference on Data Engineering. IEEE Computer Society, 1994:111-119.

[6] Qin X, Miller E L, Schwarz S J T J E. Evaluation of distributed recovery in large-scale storage systems[C]//IEEE International Symposium on High PERFORMANCE Distributed Computing, 2004. Proceedings. IEEE, 2004:172-181.

[7] Thomasian A. Comment on “RAID5 performance with distributed sparing”[J]. Parallel & Distributed Systems IEEE Transactions on, 2006, 17(4):399-400.

[8] Muntz R, Lui J. Performance Analysis of Disk Arrays Under Failure[C]//Proceedings of the 16th International Conference on Very Large Data Bases, 1990, 3: 162-173.

[9] Watanabe A, Yokota H. Adaptive Overlapped Declustering: A Highly Available Data-Placement Method Balancing Access Load and Space Utilization[C]//International Conference on Data Engineering, 2005. ICDE 2005. Proceedings. IEEE, 2005:828-839.

[10] Luo X, Shu J, Zhao Y. Shifted Element Arrangement in Mirror Disk Arrays for High Data Availability during Reconstruction[C]//International Conference on Parallel Processing. IEEE, 2012:178-188.

[11] Wan J, Wang J, Xie C, et al. S2-RAID: Parallel RAID Architecture for Fast Data Recovery[J]. IEEE Transactions on Parallel and Distributed Systems, 2014, 25(6):1638-1647.

[12] Xie P, Huang J Z, Cao Q, et al. V2-Code: A new non-MDS array code with optimal reconstruction performance for RAID-6[C]//Proceedings of IEEE International Conference on Cluster Computing, 2013,1-8.

[13] Xie P, Huang J Z, Dai E W, et al. An efficient data layout scheme for better I/O balancing in RAID-6 storage systems [J]. Frontiers of Information Technology & Electronic Engineering, 2015 , 16 (5) :335-345.

[14] Fu Y, Shu J, Luo X, et al. Short Code: An Efficient RAID-6 MDS Code for Optimizing Degraded Reads and Partial Stripe Writes[J]. IEEE Transactions on Computers, 2016, 66(1):127-137.

[15] 謝平. RAID-6編碼布局及重構(gòu)優(yōu)化研究[D].武漢:華中科技大學(xué),2015.

[16] 羅象宏. 磁盤陣列的編碼與容錯技術(shù)研究[D].北京:清華大學(xué),2014.

[17] 萬武南 , 楊威. 一種基于雙容錯RDP碼的擴(kuò)展RAID碼[J]. 小型微型計算機(jī)系統(tǒng), 2014 , 35 (11) :2477-2481.

[18] Fu G, Thomasian A, Han C, et al. Rebuild Strategies for Redundant Disk Arrays[C]//Symposium on Mass Storage Systems. 2004:223-226.

[19] Lee J Y B, Lui J C S. Automatic recovery from disk failure in continuous-media servers[J]. Parallel & Distributed Systems IEEE Transactions on, 2002, 13(5):499-515.

[20] Tian L, Feng D, Jiang H, et al. PRO: A Popularity-based Multi-threaded Reconstruction Optimization for RAID-Structured Storage Systems[C]//Usenix Conference on File and Storage Technologies, FAST 2007, February 13-16, 2007, San Jose, Ca, Usa. DBLP, 2007:277-290.

[21] 陳金忠, 姚念民, 蔡紹濱. 基于NAND閃存的高性能和可靠的PRAID-6[J]. 電子學(xué)報,2015, 43 (6): 1211-1217.

[22] 王俊杰. 通用磁盤陣列RAID性能分析及優(yōu)化[D].西安工程大學(xué),2015.

[23] 劉靖宇,譚毓安,薛靜鋒,等. S-RAID中基于連續(xù)數(shù)據(jù)特征的寫優(yōu)化策略[J]. 計算機(jī)學(xué)報, 2014 , 37 (3) :721-734.

[24] Bachmat E, Schindler J. Analysis of methods for scheduling low priority disk drive tasks[J]. Acm Sigmetrics Performance Evaluation Review, 2002, 30(1):55-65.

[25] Tian Lei, Jiang Hong, Feng Dan, et al. Implementation and Evaluation of a Popularity-Based Reconstruction Optimization Algorithm in Availability-Oriented Disk Arrays[C]//IEEE Conference on MASS Storage Systems and Technologies. IEEE Computer Society, 2007:233-238.

[26] Lumb C R, Schindler J, Ganger G R, et al. Towards higher disk head utilization:extracting free bandwidth from busy disk drives[C]//4th Symposium on Operating System Design & Implementation, 2000,3:7.

[27] Thereska E, Schindler J, Bucy J, et al. A framework for building unobtrusive disk maintenance applications[C]//Usenix Conference on File and Storage Technologies. USENIX Association, 2004:16-16.

[28] Liu F, Pan W, Xie T, et al. PDB: A Reliability-Driven Data Reconstruction Strategy Based on Popular Data Backup for RAID4 SSD Arrays[M]//Algorithms and Architectures for Parallel Processing. 2013:87-100.

[29] Khasymski A, Rafique M M, Butt A R, et al. On the Use of GPUs in Realizing Cost-Effective Distributed RAID[C]//IEEE, International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems. IEEE Computer Society, 2012:469-478.

[30] 高玲玲,許胤龍,王英子,等. 基于RAID6編碼的校驗盤故障修復(fù)算法[J]. 計算機(jī)應(yīng)用與軟件,2014, 31(6):248-251,302.

猜你喜歡
磁盤備份重構(gòu)
“雙減”能否重構(gòu)教育生態(tài)?
長城敘事的重構(gòu)
利用云備份微信聊天記錄
高鹽肥胖心肌重構(gòu)防治有新策略
它的好 它的壞 詳解動態(tài)磁盤
如何只備份有用數(shù)據(jù)而不備份垃圾數(shù)據(jù)
創(chuàng)建虛擬機(jī)磁盤方式的選擇
解決Windows磁盤簽名沖突
Windows10應(yīng)用信息備份與恢復(fù)
北京的重構(gòu)與再造