◆李 贇
一种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)资助。