◆李 贇
?
一種CDP系統存儲空間優化的方法
◆李 贇
(四川大學計算機學院 四川 610065)
針對當前連續數據保護系統在長時間備份后,將消耗大量本地存儲空間的問題,本文提出一種基于TRAP-4的云存儲的連續數據保護的方法---CT-CDP。CT-CDP采用TRAP-4的方式對數據塊進行異或壓縮,然后將本地多余的備份數據集上傳至云存儲中心,從而大量節省本地存儲空間。
連續數據保護;TRAP-4;云存儲
現今塊級CDP的實現方式為:截獲客戶端所有的寫操作數據塊,將這些數據塊打上時間戳后統一存儲在遠程災備中心。恢復時,只需要按照時間戳依次將遠程災備中心的數據恢復到指定時間點即可。這種方法由于直接操作數據塊,所以具有較快的備份和恢復速度。但隨著時間增長,遠程災備中心將會積累大量備份數據從而消耗災備中心大量存儲空間。
Morrey[1]等通過對網絡塊存儲設備Peabody的寫操作進行分析,發現寫操作所有改變的數據塊中80%的數據與改變之前的數據塊相同,因此可以通過消除相同的數據塊來減少存儲空間的消耗。Yang[2]等提出一種TRAP-4(Time Recovery to Any Point-in-time4)的數據壓縮機制。這種機制通過將寫操作的前后兩數據塊進行異或操作并壓縮的方法可以大大地減少對存儲空間的消耗。顧瑜[3]等提出了基于云存儲的塊級數據保護系統,利用靈活且性價比高的云存儲來存儲備份的數據,以取得更低的備份成本。
針對塊級連續數據保護系統在長時間備份任務后消耗大量遠程災備中心存儲空間的問題,本文提出了一種基于TRAP-4的云存儲連續數據保護方法。通過將同一塊數據相鄰寫操作異或壓縮以及將多余的備份集存儲于云端,來節省大量遠程災備中心的本地存儲空間。
通常,塊級連續數據保護系統[4]采用日志方式記錄歷史數據,即按照寫操作產生的時間先后順序將其保持在日志卷上,維護一個和受保護卷相同的鏡像卷,以及記錄寫操作具體操作數據塊的元數據文件。在恢復數據時,根據恢復點解析元數據文件,可獲得歷史數據塊在日志卷上的位置,以及未修改的數據塊在鏡像卷上的位置,從而構建出恢復點受保護卷的所有數據塊。
結合同一塊數據寫操作的特性和云存儲的高性價比[5],以塊級連續數據保護常用備份方法為基礎,CT-CDP(Cloud based TRAP-4 Continuous Data Protection)方法采用以下兩種策略進行優化。
假設在T時刻,數據塊B產生了一次寫操作,寫之前的數據內容是B1,寫之后的數據內容是B2。則該數據塊此時刻寫前后數據塊的異或檢驗值為:

并記錄時間戳,元數據文件按照時間戳保持這些寫操作。針對特定的一塊數據,在日志卷中形成一系列校驗值鏈。
具體流程如圖1所示:

圖1 TRAP-4 工作原理
由于通常寫前后平均數據該變量很小,根據統計平均變化數據只有5% ~ 20%。因此異或校驗值的絕大部分數據為0,所以將日志卷壓縮后將大幅度地減少存儲空間的消耗。
當需要進行恢復時,如將T(n)時刻數據塊恢復到T(m)(n>m)時刻。對于任意一塊數據,首先從元數據文件中讀取T(n)和 T(m)之間該數據塊所有校驗值在日志卷上的位置,然后從日志卷中得到所有校驗值塊,進行下面的計算操作就可以完成該數據塊的恢復:

為了減少恢復時間以及降低日志卷數據塊丟失對恢復結果的影響,CDP系統每隔一定時間都會將當前備份的所有數據歸檔保存。在實際應用場景中,待恢復的時間點往往離當前時刻較近[6],因此災備端保存過多備份數據將浪費大量本地存儲空間。CT-CDP將多余的備份數據保存至云端[7],從而降低災備端的負荷,具體算法流程如圖2所示:

圖2 云存儲算法流程圖
在眾多的云存儲系統中,Swift分布式對象存儲系統因其存取速度快、擴展性強、更適合存儲非結構化數據等特點,成為了開源云存儲系統中的佼佼者。本方法采用Swift作為后端云存儲系統,通過Swift提供的最基本的REST[8]服務接口GET、PUT、DELETE,實現備份數據在云端的讀寫和刪除。
本實驗由1個本地生產端,1個遠程災備中心,1一個Swift云存儲服務器組成。各配置如表1所示。

表1 實驗環境
本實驗中本地生產端上的受保護卷大小為10G,遠程災備中心日志卷大小為5G,數據塊分塊為1KB,每1小時產生一個備份集。各時刻寫入數據如表2所示:

表2 寫入數據
由于鏡像卷與受保護卷大小一致,元數據文件較小。本實驗只對比日志卷的大小。通過記錄常用CDP方法(即截獲到寫數據塊后利用7zip等常用壓縮方法進行壓縮后存儲)和CT-CDP方法,每1小時產生一個備份集所需的日志卷存儲空間,實驗數據記錄如表3所示:

表3 日志卷存儲空間對比
實驗數據對比如圖3所示。

圖3 日志卷存儲空間對比柱狀圖
在上述實驗條件下,災備端本地存儲空間占用對比如圖4所示:

圖4 災備端本地存儲空間占用對比
由圖3可以看出,CT-CDP方法能夠在相同變化數據量下,比常用CDP方法節省大約50%的存儲空間;由圖4可知,隨著備份時間的增長,常用CDP方法將消耗大量本地存儲空間,而CT-CDP方法將本地存儲空間的消耗維持在兩個最新的備份集的大小,從而降低災備端的負荷。綜上所述,CT-CDP方法可以節省大量災備端存儲空間。
本文通過分析常見連續數據保護系統長期備份客戶端將消耗大量存儲空間的問題,提出了一種基于TRAP-4的云存儲連續數據保護系統。該方法將災備中心日志卷進行異或計算后壓縮存儲,同時本地只存儲兩個最新的備份集,其余的備份集都存放于云端,以節省本地存儲資源。本文通過實驗證明該系統相比于常用連續數據保護系統能夠有效地節省災備端的存儲空間。
[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]顧瑜,劉川易等.基于云存儲的塊級連續數據保護系統[J].計算機科學與探索,2014.
[4]張也,劉曉潔,鄧健.一種遠程備份數據虛擬重構方法[J].四川大學學報,2015.
[5]王歡,李戰懷,張曉等.支持連續數據保護的云備份系統架構設計[J].計算機工程與應用,2012.
[6]李虓,李元章等.一種塊級連續數據保護系統的快速恢復方法[J].北京理工大學學報,2011.
[7]劉仲,李凱等. 一種歸檔存儲系統結構[J]. 計算機工程, 2010.
[8]Vrable M, Savage S, Voelker G M. Cumulus:filesystem backup to the cloud[J]. ACM Transactions on Storage,2009.
本課題得到國家重點研發計劃(2016yfb0800604,2016yfb0800605),國家自然科學基金項目(61572334)資助。