◆李 贇
?
一種CDP系統(tǒng)存儲(chǔ)空間優(yōu)化的方法
◆李 贇
(四川大學(xué)計(jì)算機(jī)學(xué)院 四川 610065)
針對(duì)當(dāng)前連續(xù)數(shù)據(jù)保護(hù)系統(tǒng)在長(zhǎng)時(shí)間備份后,將消耗大量本地存儲(chǔ)空間的問(wèn)題,本文提出一種基于TRAP-4的云存儲(chǔ)的連續(xù)數(shù)據(jù)保護(hù)的方法---CT-CDP。CT-CDP采用TRAP-4的方式對(duì)數(shù)據(jù)塊進(jìn)行異或壓縮,然后將本地多余的備份數(shù)據(jù)集上傳至云存儲(chǔ)中心,從而大量節(jié)省本地存儲(chǔ)空間。
連續(xù)數(shù)據(jù)保護(hù);TRAP-4;云存儲(chǔ)
現(xiàn)今塊級(jí)CDP的實(shí)現(xiàn)方式為:截獲客戶(hù)端所有的寫(xiě)操作數(shù)據(jù)塊,將這些數(shù)據(jù)塊打上時(shí)間戳后統(tǒng)一存儲(chǔ)在遠(yuǎn)程災(zāi)備中心?;謴?fù)時(shí),只需要按照時(shí)間戳依次將遠(yuǎn)程災(zāi)備中心的數(shù)據(jù)恢復(fù)到指定時(shí)間點(diǎn)即可。這種方法由于直接操作數(shù)據(jù)塊,所以具有較快的備份和恢復(fù)速度。但隨著時(shí)間增長(zhǎng),遠(yuǎn)程災(zāi)備中心將會(huì)積累大量備份數(shù)據(jù)從而消耗災(zāi)備中心大量存儲(chǔ)空間。
Morrey[1]等通過(guò)對(duì)網(wǎng)絡(luò)塊存儲(chǔ)設(shè)備Peabody的寫(xiě)操作進(jìn)行分析,發(fā)現(xiàn)寫(xiě)操作所有改變的數(shù)據(jù)塊中80%的數(shù)據(jù)與改變之前的數(shù)據(jù)塊相同,因此可以通過(guò)消除相同的數(shù)據(jù)塊來(lái)減少存儲(chǔ)空間的消耗。Yang[2]等提出一種TRAP-4(Time Recovery to Any Point-in-time4)的數(shù)據(jù)壓縮機(jī)制。這種機(jī)制通過(guò)將寫(xiě)操作的前后兩數(shù)據(jù)塊進(jìn)行異或操作并壓縮的方法可以大大地減少對(duì)存儲(chǔ)空間的消耗。顧瑜[3]等提出了基于云存儲(chǔ)的塊級(jí)數(shù)據(jù)保護(hù)系統(tǒng),利用靈活且性?xún)r(jià)比高的云存儲(chǔ)來(lái)存儲(chǔ)備份的數(shù)據(jù),以取得更低的備份成本。
針對(duì)塊級(jí)連續(xù)數(shù)據(jù)保護(hù)系統(tǒng)在長(zhǎng)時(shí)間備份任務(wù)后消耗大量遠(yuǎn)程災(zāi)備中心存儲(chǔ)空間的問(wèn)題,本文提出了一種基于TRAP-4的云存儲(chǔ)連續(xù)數(shù)據(jù)保護(hù)方法。通過(guò)將同一塊數(shù)據(jù)相鄰寫(xiě)操作異或壓縮以及將多余的備份集存儲(chǔ)于云端,來(lái)節(jié)省大量遠(yuǎn)程災(zāi)備中心的本地存儲(chǔ)空間。
通常,塊級(jí)連續(xù)數(shù)據(jù)保護(hù)系統(tǒng)[4]采用日志方式記錄歷史數(shù)據(jù),即按照寫(xiě)操作產(chǎn)生的時(shí)間先后順序?qū)⑵浔3衷谌罩揪砩?,維護(hù)一個(gè)和受保護(hù)卷相同的鏡像卷,以及記錄寫(xiě)操作具體操作數(shù)據(jù)塊的元數(shù)據(jù)文件。在恢復(fù)數(shù)據(jù)時(shí),根據(jù)恢復(fù)點(diǎn)解析元數(shù)據(jù)文件,可獲得歷史數(shù)據(jù)塊在日志卷上的位置,以及未修改的數(shù)據(jù)塊在鏡像卷上的位置,從而構(gòu)建出恢復(fù)點(diǎn)受保護(hù)卷的所有數(shù)據(jù)塊。
結(jié)合同一塊數(shù)據(jù)寫(xiě)操作的特性和云存儲(chǔ)的高性?xún)r(jià)比[5],以塊級(jí)連續(xù)數(shù)據(jù)保護(hù)常用備份方法為基礎(chǔ),CT-CDP(Cloud based TRAP-4 Continuous Data Protection)方法采用以下兩種策略進(jìn)行優(yōu)化。
假設(shè)在T時(shí)刻,數(shù)據(jù)塊B產(chǎn)生了一次寫(xiě)操作,寫(xiě)之前的數(shù)據(jù)內(nèi)容是B1,寫(xiě)之后的數(shù)據(jù)內(nèi)容是B2。則該數(shù)據(jù)塊此時(shí)刻寫(xiě)前后數(shù)據(jù)塊的異或檢驗(yàn)值為:
并記錄時(shí)間戳,元數(shù)據(jù)文件按照時(shí)間戳保持這些寫(xiě)操作。針對(duì)特定的一塊數(shù)據(jù),在日志卷中形成一系列校驗(yàn)值鏈。
具體流程如圖1所示:
圖1 TRAP-4 工作原理
由于通常寫(xiě)前后平均數(shù)據(jù)該變量很小,根據(jù)統(tǒng)計(jì)平均變化數(shù)據(jù)只有5% ~ 20%。因此異或校驗(yàn)值的絕大部分?jǐn)?shù)據(jù)為0,所以將日志卷壓縮后將大幅度地減少存儲(chǔ)空間的消耗。
當(dāng)需要進(jìn)行恢復(fù)時(shí),如將T(n)時(shí)刻數(shù)據(jù)塊恢復(fù)到T(m)(n>m)時(shí)刻。對(duì)于任意一塊數(shù)據(jù),首先從元數(shù)據(jù)文件中讀取T(n)和 T(m)之間該數(shù)據(jù)塊所有校驗(yàn)值在日志卷上的位置,然后從日志卷中得到所有校驗(yàn)值塊,進(jìn)行下面的計(jì)算操作就可以完成該數(shù)據(jù)塊的恢復(fù):
為了減少恢復(fù)時(shí)間以及降低日志卷數(shù)據(jù)塊丟失對(duì)恢復(fù)結(jié)果的影響,CDP系統(tǒng)每隔一定時(shí)間都會(huì)將當(dāng)前備份的所有數(shù)據(jù)歸檔保存。在實(shí)際應(yīng)用場(chǎng)景中,待恢復(fù)的時(shí)間點(diǎn)往往離當(dāng)前時(shí)刻較近[6],因此災(zāi)備端保存過(guò)多備份數(shù)據(jù)將浪費(fèi)大量本地存儲(chǔ)空間。CT-CDP將多余的備份數(shù)據(jù)保存至云端[7],從而降低災(zāi)備端的負(fù)荷,具體算法流程如圖2所示:
圖2 云存儲(chǔ)算法流程圖
在眾多的云存儲(chǔ)系統(tǒng)中,Swift分布式對(duì)象存儲(chǔ)系統(tǒng)因其存取速度快、擴(kuò)展性強(qiáng)、更適合存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)等特點(diǎn),成為了開(kāi)源云存儲(chǔ)系統(tǒng)中的佼佼者。本方法采用Swift作為后端云存儲(chǔ)系統(tǒng),通過(guò)Swift提供的最基本的REST[8]服務(wù)接口GET、PUT、DELETE,實(shí)現(xiàn)備份數(shù)據(jù)在云端的讀寫(xiě)和刪除。
本實(shí)驗(yàn)由1個(gè)本地生產(chǎn)端,1個(gè)遠(yuǎn)程災(zāi)備中心,1一個(gè)Swift云存儲(chǔ)服務(wù)器組成。各配置如表1所示。
表1 實(shí)驗(yàn)環(huán)境
本實(shí)驗(yàn)中本地生產(chǎn)端上的受保護(hù)卷大小為10G,遠(yuǎn)程災(zāi)備中心日志卷大小為5G,數(shù)據(jù)塊分塊為1KB,每1小時(shí)產(chǎn)生一個(gè)備份集。各時(shí)刻寫(xiě)入數(shù)據(jù)如表2所示:
表2 寫(xiě)入數(shù)據(jù)
由于鏡像卷與受保護(hù)卷大小一致,元數(shù)據(jù)文件較小。本實(shí)驗(yàn)只對(duì)比日志卷的大小。通過(guò)記錄常用CDP方法(即截獲到寫(xiě)數(shù)據(jù)塊后利用7zip等常用壓縮方法進(jìn)行壓縮后存儲(chǔ))和CT-CDP方法,每1小時(shí)產(chǎn)生一個(gè)備份集所需的日志卷存儲(chǔ)空間,實(shí)驗(yàn)數(shù)據(jù)記錄如表3所示:
表3 日志卷存儲(chǔ)空間對(duì)比
實(shí)驗(yàn)數(shù)據(jù)對(duì)比如圖3所示。
圖3 日志卷存儲(chǔ)空間對(duì)比柱狀圖
在上述實(shí)驗(yàn)條件下,災(zāi)備端本地存儲(chǔ)空間占用對(duì)比如圖4所示:
圖4 災(zāi)備端本地存儲(chǔ)空間占用對(duì)比
由圖3可以看出,CT-CDP方法能夠在相同變化數(shù)據(jù)量下,比常用CDP方法節(jié)省大約50%的存儲(chǔ)空間;由圖4可知,隨著備份時(shí)間的增長(zhǎng),常用CDP方法將消耗大量本地存儲(chǔ)空間,而CT-CDP方法將本地存儲(chǔ)空間的消耗維持在兩個(gè)最新的備份集的大小,從而降低災(zāi)備端的負(fù)荷。綜上所述,CT-CDP方法可以節(jié)省大量災(zāi)備端存儲(chǔ)空間。
本文通過(guò)分析常見(jiàn)連續(xù)數(shù)據(jù)保護(hù)系統(tǒng)長(zhǎng)期備份客戶(hù)端將消耗大量存儲(chǔ)空間的問(wèn)題,提出了一種基于TRAP-4的云存儲(chǔ)連續(xù)數(shù)據(jù)保護(hù)系統(tǒng)。該方法將災(zāi)備中心日志卷進(jìn)行異或計(jì)算后壓縮存儲(chǔ),同時(shí)本地只存儲(chǔ)兩個(gè)最新的備份集,其余的備份集都存放于云端,以節(jié)省本地存儲(chǔ)資源。本文通過(guò)實(shí)驗(yàn)證明該系統(tǒng)相比于常用連續(xù)數(shù)據(jù)保護(hù)系統(tǒng)能夠有效地節(jié)省災(zāi)備端的存儲(chǔ)空間。
[1]MORREY C B, GRUNWALD D. Peabody: the time travelling disk[C] MSS2003: Proceeding of the 20thIEEE/11thNASA Goddard Conference on Mass Storage Systems and Technologies. Washington, DC: IEEE Computer Society, 2003.
[2]YANG Q, XIAO W, REN J.TRAP-Array: a disk array archietecture providing timely recovery to any point-in-time[C].
[3]顧瑜,劉川易等.基于云存儲(chǔ)的塊級(jí)連續(xù)數(shù)據(jù)保護(hù)系統(tǒng)[J].計(jì)算機(jī)科學(xué)與探索,2014.
[4]張也,劉曉潔,鄧健.一種遠(yuǎn)程備份數(shù)據(jù)虛擬重構(gòu)方法[J].四川大學(xué)學(xué)報(bào),2015.
[5]王歡,李戰(zhàn)懷,張曉等.支持連續(xù)數(shù)據(jù)保護(hù)的云備份系統(tǒng)架構(gòu)設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2012.
[6]李虓,李元章等.一種塊級(jí)連續(xù)數(shù)據(jù)保護(hù)系統(tǒng)的快速恢復(fù)方法[J].北京理工大學(xué)學(xué)報(bào),2011.
[7]劉仲,李凱等. 一種歸檔存儲(chǔ)系統(tǒng)結(jié)構(gòu)[J]. 計(jì)算機(jī)工程, 2010.
[8]Vrable M, Savage S, Voelker G M. Cumulus:filesystem backup to the cloud[J]. ACM Transactions on Storage,2009.
本課題得到國(guó)家重點(diǎn)研發(fā)計(jì)劃(2016yfb0800604,2016yfb0800605),國(guó)家自然科學(xué)基金項(xiàng)目(61572334)資助。