一种多时间粒度的数据备份方法 【技术领域】
本发明属于数据备份技术领域, 尤其是一种多时间粒度的数据备份方法。背景技术
目前, 现有的数据备份类方法主要包括定时备份方法和 CDP( 持续数据保护 ) 备份方法。 定时备份方法 : 通过备份代理和备份服务器来实现, 通过在备份服务器上设定备 份任务, 备份代理每隔一定时间 ( 时间粒度至少为 1 小时 ) 对数据 ( 包括文件和数据库 ) 进行备份, 备份介质可以为在线磁盘或离线磁带库, 恢复时由备份代理在备份服务器的控 制下从在线磁盘或离线磁带库调用备份过的数据进行恢复, 恢复的时间粒度由需要恢复的 数据量而定, 一般在几十分钟到几个小时之间。 定时备份方法的缺点是 : 对数据备份的时间 粒度过大, 不能对数据进行实时保护, 数据恢复速度慢。
CDP 备份方法 : 通过 CDP 代理端和 CDP 服务器来实现, CDP 代理端通过对底层卷 或裸设备写 IO 的捕获和复制, 获得需要保护卷或裸设备中变化的数据块, 然后加入控制信 息传输到 CDP 服务器端, 在 CDP 服务器端存储变化的数据块, 同时保留原有的数据块, 这样 CDP 服务器端就不仅保留了当前时刻的数据, 而且记录了以前的数据, 它实际上反映了数据 的变化历史, 允许将数据回滚到以前的某个时刻。CDP 备份方法能够实时记录数据 ( 包括 文件和数据库 ) 的变化, 可以使数据备份的时间粒度减少到秒级, 数据恢复时, 可以直接加 载 CDP 备份过的数据, 时间粒度不受需要恢复的数据量的限制, 一般在几分钟 - 几十分钟之 间。CDP 备份方法要求实现对随机 IO 读写的高速访问。CDP 备份方法的缺点是 : 多采用先 读出原有数据块、 将原有数据块写入另外区域、 写入变化数据块的方式实现, 增加了 CDP 服 务器端读写的次数, 降低了性能 ; 对历史数据的记录占用了大量的 CDP 服务器端存储空间, 为了降低对存储空间的占用, 使得 CDP 服务器端只能记载几天到一周的数据, 对于再早的 数据不能提供保护 ; 备份的数据全部存储在 CDP 服务器上, 一旦发生问题, 则会失去所有备 份过的数据。
综上所述, 现有的数据备份方法普遍存在安全性差、 工作效率低等问题, 不能有效 地对数据进行实时保护, 如果用户需要完善的数据备份方案, 往往需要购买定时备份产品 和 CDP 两套不同的产品, 增加了用户的采购成本和维护压力。
发明内容
本发明的目的在于克服现有技术的不足, 提供一种安全性好、 工作效率高并能够 有效地对数据进行实时保护的多时间粒度的数据备份方法。
本发明解决现有的技术问题是采取以下技术方案实现的 :
一种多时间粒度的数据备份方法, 包括以下步骤 :
步骤 1 : 系统主控模块进行初始化处理 ;
步骤 2 : 数据同步模块进行源端数据同步处理 ;步骤 3 : 前端接收模块接收源端的数据流, 读取读取数据块、 位置信息和时间戳信 息并填入记录的数据结构中, 此时, 如果增量存储文件空间已满则进行快照生成处理, 如果 增量存储区域内可用文件数量小于最少可用个数则进行快照回收处理, 然后将新数据流写 入到增量存储区域的可用文件中。
而且, 还包括一定时器处理步骤, 该定时器处理步骤通过定时器模块判断快照生 成触发时间或快照回收触发时间是否达到, 当到达快照生成触发时间或快照回收触发时间 时, 分别触发快照生成处理和快照回收触处理。
而且, 所述步骤 1 包括系统主控模块进行系统参数的设定、 创建镜像存储区域和 增量存储区域、 调用数据同步模块并且启动前端接收模块和定时器模块的处理过程。
而且, 所述步骤 2 包括将源端数据同步到镜像存储区域中并且生成当前镜像存储 区域的一个只读快照的处理过程。
而且, 所述的快照生成处理包括以下处理步骤 :
(1) 将增量存储区域内记录写入镜像存储区域 ;
(2) 生成当前镜像存储区域的一个只读快照。
而且, 所述快照回收处理包括以下处理步骤 : (1) 搜索创建时间最早的一个文件和与之对应的快照 ;
(2) 加载对应的快照, 进行离线磁带备份 ;
(3) 删除最早的一个文件和与之对应的快照。
本发明的优点和积极效果是 :
本发明有效地将定时备份方法和 CDP 备份方法结合在一起, 其将 CDP 代理端产生 的数据按顺序写入前端接收模块, 将随机 IO 模式转变为顺序 IO 模式, 并且通过对 SSD( 固 态硬盘 ) 的支持, 提高了 CDP 服务器端的读写效率和并发性, 同时支持对源端数据的定时、 实时不同时间粒度的数据备份方法, 提供了离线备份功能, 保证了 CDP 服务器上数据的安 全。
附图说明
图 1 是本发明的应用拓扑图 ;
图 2 是本发明的处理模块连接示意图 ;
图 3 是本发明的处理过程示意图 ;
图 4 是快照生成处理方法示意图 ;
图 5 是快照回收处理方法示意图 ;
图 6 是初始化处理流程图 ;
图 7 是数据同步处理流程图 ;
图 8 是前端接收处理流程图 ;
图 9 是定时处理流程图 ;
图 10 是快照生成处理流程图 ;
图 11 是快照回收处理流程图。 具体实施方式以下结合附图对本发明实施例做进一步详述。
一种多时间粒度的数据备份方法, 是在图 1 所示的网络拓扑结构上实现的, 该网 络拓扑结构包括客户端、 CDP 服务器、 CDP 代理端、 磁带机、 光纤交换机, 客户端、 CDP 服务器、 CDP 代理端、 磁带机、 光纤交换机连接在一起组成千兆以太网。在 CDP 服务器中安装有本发 明的多时间粒度的数据备份软件, 该 CDP 服务器使用 X86 PC 服务器或 SPARC 小型机, 其采 用的 ZFS(Zettabyte File System) 文件系统。
本发明以 CDP 代理端 ( 源端 ) 至 CDP 服务器的数据流作为数据输入, 以 CDP 服务 器输出到离线磁带库的备份数据数据流作为数据输出, 从而完成将源端至离线磁带库的数 据备份功能。 为此, 本发明利用硬件平台磁盘已有存储空间, 划分出两块特定的系统用存储 区域 : 一块区域为镜像存储区域 : 该区域用于存储某一时刻源端数据的全部备份版本, 存 储方式为裸设备存储方式 ; 另一块区域为增量存储区域 : 该区域用于存储一定时间内源端 数据的增量备份版本, 存储方式为一组固定大小的文件。
如图 2 所示, 本发明包括以下功能处理模块 :
1、 系统主控模块 : 初始化并协调调度各个子模块 ;
2、 前端接收模块 : 以后台进程的方式运行, 用于实时接收源端传输过来的数据流 ( 变化的数据块、 位置信息和时间戳信息 ), 填入到一个数据结构中 ( 记录 ) 并存储到增量 存储区域的一个文件中 ;
3、 快照生成模块 : 按照一定算法和机制生成镜像存储区域的只读快照 ;
4、 快照回收模块 : 按照一定算法和机制生成回收镜像存储区域的只读快照 ;
5、 数据同步模块 : 将源端数据同步到镜像存储区域 ;
6、 定时器模块 : 以后台进程的方式运行, 用于触发快照生成模块或快照回收模块。
一种多时间粒度的数据备份方法, 包括以下步骤 :
步骤 1 : 系统主控模块进行初始化处理
在本步骤中, 系统主控模块进行系统参数的设定、 创建镜像存储区域和增量存储 区域、 调用数据同步模块并且启动前端接收模块和定时器模块。
步骤 2 : 数据同步模块进行源端数据同步处理
在本步骤中, 数据同步模块主要将源端数据同步到镜像存储区域中, 生成当前镜 像存储区域的一个只读快照。
步骤 3 : 前端接收模块接收新数据流并将新数据流写入到增量存储区域的可用文 件中
在本步骤中, 前端接收模块接收源端的数据流, 读取读取数据块、 位置信息和时间 戳信息, 填入记录的数据结构中, 判断增量存储文件空间是否已满或增量存储区域内可用 文件数量是否小于最少可用个数, 如果增量存储文件空间已满则进行快照生成处理, 如果 增量存储区域内可用文件数量小于最少可用个数则进行快照回收处理, 然后将新数据流写 入到增量存储区域的可用文件中。
本数据备份方法还包括一个定时器处理步骤, 快照生成处理和快照回收处理除了 按照上述实时方式触发外, 还可以通过定时器处理步骤通过定时方式触发, 即通过设定快 照生成触发时间和快照回收触发时间, 当定时器模块判断快照生成触发时间到或快照回收 触发时间到时, 分别触发快照生成处理和快照回收触处理。如图 4 所示, 快照生成处理主要完成以下任务 :
1、 将增量存储区域内记录写入镜像存储区域 ;
2、 生成当前镜像存储区域的一个只读快照。
如图 5 所示, 快照回收处理完成以下任务 :
1、 搜索创建时间最早的一个文件和与之对应的快照 ;
2、 加载对应的快照, 进行离线磁带备份 ;
3、 删除最早的一个文件和与之对应的快照。
通过上述步骤即可实现实时和定时数据备份功能。
下面结合在 CDP 服务器上的多时间粒度的数据备份软件的流程图, 详细软件中各 个模块的处理过程。
一、 初始化
如图 6 所示, 初始化包括以下步骤 :
1、 初始化设定镜像存储区域大小和位置, 创建镜像存储区域 ;
2、 初始化设定增量存储区域文件总个数、 最少可用个数、 每个文件的大小和位置, 创建增量存储区域 ; 增量存储区域的介质如果采用 SSD( 固态硬盘 ) 会有更好的效果 ; 3、 调用数据同步模块 ;
4、 启动前端接收模块 ;
5、 启动定时器模块。
二、 数据同步模块
如图 7 所示, 数据同步模块包括以下步骤 :
1、 通知源端暂停应用 ;
2、 将源端数据同步到镜像存储区域中 ;
3、 打开增量存储区域内的下一个可用的文件 ;
4、 在可用文件开始位置添加快照标志位, 并置快照标志位为 1, 后面采用伪数据填 充记录数据结构 ;
5、 生成当前镜像存储区域的一个只读快照, 名称为 : marst-TS(TS : 系统当前时 间);
三、 前端接收模块
如图 8 所示, 前端接收模块包括以下步骤 :
1、 等待新数据块的到来 ;
2、 当新数据流到来时, 读取数据块、 位置信息和时间戳信息, 填入记录的数据结构 中;
3、 判断当前可用文件是否还用存储空间, 如有转到步骤 4, 没有转到步骤 5 ;
4、 添加快照标志位, 置快照标志位为 0, 将记录添加到增量存储区域内当前打开的 文件中, 转到步骤 1 ;
5、 调用快照生成模块和 / 或快照回收模块 ;
6、 关闭当前可用文件, 打开下一个可用的文件, 转到步骤 4。
四、 定时器模块
如图 9 所示, 定时器模块包括以下步骤 :
1、 设定快照生成模块和快照回收模块触发的时间间隔 ;
2、 启动快照生成模块定时器 ;
3、 启动快照回收模块定时器 ;
4、 快照生成模块触发时间间隔是否已到, 是调用快照生成模块, 转到步骤 5 ; 否转 到步骤 5 ;
5、 快照回收模块触发时间间隔是否已到, 是调用快照回收模块, 转到步骤 4 ; 否转 到步骤 4。
五、 快照生成模块
如图 10 所示, 快照生成模块包括以下步骤 :
1、 记录当前系统时间 : t;
2、 定位到增量存储区域内当前打开的文件中最近一次快照标志为 1 的记录 : *loc ;
3、 计算 *loc 之后的记录中时间戳< t 的记录个数 N ;
4、 *loc++, N- ;
5、 将记录中的数据块按照位置信息写入当前镜像存储区域的对应位置中 ; 6、 判断 N = 0 ?是则将记录中快照标志置 1, 提取时间戳为 TS, 转到步骤 7 ; 否, 转 到步骤 4 ;
7、 生成当前镜像存储区域的一个只读快照, 名称为 : marst-TS ;
8、 结束。
六、 快照回收模块
如图 11 所示, 快照回收模块包括以下步骤 :
1、 增量存储区域内可用文件数量<最少可用个数?是, 转到步骤 2, 否, 转到步骤 8;
2、 搜索增量存储区域内创建时间最早的一个文件 ;
3、 定位最早的文件到最后一条记录, 读取记录的时间戳信息 ts ;
4、 计算只读快照中 TS <= ts 的只读快照 (TS : 快照创建时名称中的时间信息 ) 数 量: M;
5、 M--, 加载只读快照, 进行离线磁带库备份 ;
6、 M = 0 ?是, 转到步骤 7, 否, 转到步骤 5 ;
7、 删除该文件, 创建一个新的可用文件 ;
8、 结束。
本发明所述的实施例是说明性的, 而不是限定性的, 因此发明并不限于具体实施 方式中所述的实施例, 凡是由本领域技术人员根据本发明的技术方案得出的其他实施方 式, 同样属于本发明保护的范围。