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