首页> 中国专利> 一种针对Log-structured存储引擎的数据冷备方法及系统

一种针对Log-structured存储引擎的数据冷备方法及系统

摘要

本发明公开了一种Log‑structured存储引擎的数据冷备份方法及系统,基于Log‑structured存储引擎具有的append存储特性,构建一套基于文件级重演机制的数据自动同步机制,并以此机制为核心给出一种针对此类型存储引擎的数据冷备解决方案;以期以较小的资源开销,实现Log‑structured存储引擎数据的持续备份,并确保备份数据在任何时间节点上都具备可用性。

著录项

  • 公开/公告号CN108874592A

    专利类型发明专利

  • 公开/公告日2018-11-23

    原文格式PDF

  • 申请/专利权人 焦点科技股份有限公司;

    申请/专利号CN201810636161.8

  • 发明设计人 梁峰;曹文源;

    申请日2018-06-20

  • 分类号

  • 代理机构南京瑞弘专利商标事务所(普通合伙);

  • 代理人陈建和

  • 地址 210032 江苏省南京市高新开发区星火路软件大厦A座12F

  • 入库时间 2023-06-19 07:18:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-10

    授权

    授权

  • 2018-12-18

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20180620

    实质审查的生效

  • 2018-11-23

    公开

    公开

说明书

技术领域

本发明涉及数据备份技术领域,特别是涉及一种针对Log-structured存储引擎的数据冷备份方法及系统。

背景技术

近些年来,随着互联网应用的蓬勃发展,产生了海量的诸如视频、音频、图片等多媒体数据,为存储这些海量数据,涌现出一大批分布式的NOSQL存储产品,其中有相当一部分是基于Log-structured模式的存储引擎实现的,鉴于其出色的读/写性能,此类NOSQL存储产品为众多互联网企业所部署、应用,并且不少企业使用它们存储了PB乃至EB级的数据。出于数据安全考虑,通常需要对数据进行冷备份,即复制一个服务数据的副本,并将副本置于非服务环境下(即备份副本不对外服务),当服务环境的数据出现损毁时,可从冷备副本恢复数据。但是,由于此类NOSQL产品所存储的数据体量通常很大,且数据量在持续快速增长,那么数据冷备份的工作也变得越发困难,所述数据冷备份是指在关闭数据库并且数据库不能更新的状况下进行的数据库完整备份,到目前为止仍未有NOSQL产品在数据冷备份上给出较好的解决方案。

实际上Log-structured模式的存储引擎,其数据的变更(含写入和更新)都是以向固定大小的数据文件append信息的方式进行的(类似记录日志的模式),且对于已经生成的数据文件只做文件删除并不做文件修改;据此特性,对于Log-structured存储引擎的数据备份实际上可转化为对数据文件的备份。而业界对于数据文件的备份,大体上分为全量备份和增量备份两个方向;然而,对PB乃至EB级的数据进行冷备份,无论是采用全量备份还是增量备份的技术,实际实施的过程中都会面临诸多困难。

在全量备份方向上,其最大的问题就是耗时极长,以一个100TB的数据样本为例,以当下流行的硬件进行全量备份大约需要10天的时间;这也就是说,如果发生了服务数据的损毁,从冷备副本恢复的数据很可能就是10天前的老数据,而近10天的数据将不复存在,这几乎是难以接受的。此外,全量备份的过程中,服务环境的网络带宽资源会被严重消耗,而全量备份的过程又必须持续进行,那么此过程对于服务环境压力是可想而知的。因此,全量备份的方法,既不能保证数据的时效性,同时还会对服务环境造成重大的负面影响,乃至导致服务环境不可用。

增量备份方面,每次只备份与上次备份的差异部分,这种方式可以大幅降低备份的数据量,从而大幅缩减备份时长。但是这种备份方式仍然存在一些问题。首先,必须确保初始备份的全量数据以及后续历次备份的增量数据被完整地保持;其次,在进行数据恢复时,必须反复、有序地基于增量副本进行恢复工作,期间若出现恢复增量副本顺序上的错误,则极可能造成数据丢失,乃至出现恢复出的数据不可用的问题;再次,由于恢复过程涉及的增量副本众多,那么恢复的时间势必很长;最后,增量备份的时效性问题同样存在,提高增量备份的频率虽然可以增加备份数据的时效性,但是这势必造成增量副本和备份资源的增加,到头来会给恢复工作带来更多的困难。

在海量文件数据冷备份问题上,专利《一种数据备份方法》(申请号:CN201510918534.7)相关研究,此专利以文件级粒度进行数据备份,与文件同步软件rsync有相近之处,当然发明者对于备份源和备份目标的对比做了优化工作;然而,上述专利提出的方法并未对文件同步的顺序作出控制,而Log-structured存储引擎来对于备份文件的顺序要求是严格的,任何数据文件顺序上的错误或者是备份文件的遗漏都会导致存储引擎无法顺利启动,从而导致存储数据的根本损毁;此外,根据Log-structured存储引擎的通用垃圾清理机制,其在垃圾清理过程中,势必会产生大量新的数据文件,同时销毁大量的失效文件;此时,采用类似rsync的备份方式将更加无法确保数据文件的实时可用性。

综上,当前业界广泛使用基于Log-structured存储引擎存放海量数据,但是仍然缺乏较好的针对这些数据的冷备方案;本发明正是为解决此问题而研究、实践的一种解决方案。

发明内容

本发明所要解决的技术问题是克服现有技术的不足,基于Log-structured存储引擎具有的append存储特性,构建一套基于文件级重演机制的数据自动同步机制,并以此机制为核心给出一种针对此类型存储引擎的数据冷备解决方案;以期以较小的资源开销,实现Log-structured存储引擎数据的持续备份,并确保备份数据在任何时间节点上都具备可用性。

为解决上述技术问题,本发明提供针对一种Log-structured存储引擎的数据冷备份方法及系统,其特征在于,包括如下步骤:

步骤1:先期开发一个用于记录并持久化Log-structured存储引擎数据文件操作日志的数据文件操作日志服务,并将该数据文件操作日志服务集成到基于Log-structured存储引擎的存储服务上,验证持久化的文件操作日志结果,确认数据文件操作日志的功能确实持续、有序地记录了存储引擎所进行的数据文件的创建和删除等操作;

步骤2:先期开发一个具备批量读取数据文件操作日志、获取指定数据文件MD5码、下载指定数据文件等功能的冷备源端服务,并将其部署到基于Log-structured存储引擎的存储服务上;

步骤3:冷备目标端服务向冷备源端服务发送登录验证请求,以建立文件同步操作会话;

步骤4:冷备源端服务验证冷备目标端服务身份,并保持验证会话;

步骤5:冷备目标端服务查询当前的备份进度,并以当前进度为起点,向冷备源端服务请求下一个批次的数据文件操作日志;

步骤6:冷备源端服务从持久化的数据文件操作日志中,以步骤5请求中的进度为起点按序获取一批数据文件操作日志,并返回给冷备目标端服务;

步骤7:冷备目标端服务获取到数据操作日志后,冷备目标端服务逐个顺序执行数据操作日志中的每一条记录;

步骤15:完成当前批次的操作日志的处理后,冷备目标端服务将记录当前批次的最后一个操作日志编号,以作为备份进度;

步骤16:冷备目标端服务以上次备份进度为起点,循环执行步骤5~步骤15。

所述步骤7中,对于删除类型的数据操作日志,跳转到步骤8;

步骤8:按照操作日志记录的文件名,删除冷备目标端服务上对应的同名数据文件;

所述步骤7中,对于创建类型的数据操作日志,若操作日志中记录的数据文件在冷备目标端服务中不存在,则跳转到步骤9~步骤11;

步骤9:冷备目标端服务向冷备源端服务发送下载指定数据文件的请求;

步骤10:冷备源端服务读取步骤9中指定的数据文件,并返回给冷备目标端服务;

步骤11:冷备目标端服务将从冷备源端服务下载到的数据文件存储到本地。

所述步骤7中,若操作日志中记录的冷备目标端服务中已经存在,则跳转到步骤12~步骤14;

步骤12:冷备目标端服务计算当前数据文件的MD5码,并以此MD5码向冷备源端服务发送验证文件一致性的请求;

步骤13:冷备源端服务验证步骤12中指定的数据文件是否与给定的MD5相符,并返回结果给冷备目标端服务;

步骤14:若冷备目标端服务从步骤13获知,待验证的数据文件与备份源不一致,则执行步骤9~步骤11。

所述步骤16中,当步骤5获得的文件操作日志为0条时,进入一段时间的休眠此后继续步骤5~步骤15的循环执行,如此往复。

所述步骤16中,当步骤5获得的文件操作日志为0条时,调用线程休眠函数,休眠参数为10秒钟,此后继续步骤5~步骤15的循环执行,如此往复。

一种针对Log-structured存储引擎的数据冷备份系统,其特征在于,包括冷备源端服务器和冷备目标端服务器,所述冷备源端服务器中包括相互连接的基于Log-structured存储引擎的存储服务模块、冷备源端服务模块和冷备源端数据文件模块,所述基于Log-structured存储引擎的存储服务模块中集成有数据文件操作日志模块,用于持续、有序地记录存储引擎所进行的数据文件的创建和删除等操作,冷备源端服务模块将基于此记录结果进行有序地文件级数据重演;所述冷备目标端服务器中包括相互连接的数据文件自动同步控制模块、数据文件下载模块和冷备目标端数据文件模块,所述冷备源端服务器通过冷备源端服务模块与冷备目标端服务器的冷备目标服务模块相连。

本发明所达到的有益效果:

(1)本发明通过建立有序的文件级重演机制,可以确保冷备数据一定与备份源上某个时刻的数据一致,这样就能够确保冷备数据始终处于可用的状态,这就解决了传统差量备份方法可能造成的数据不可用问题。即使在Log-structured存储引擎的垃圾清理场景下,得益于本发明的有序重演机制,冷备数据也能够确保随时可用。

(2)本发明基于文件级重演机制,使得冷备目标端始终从备份源上拖拽不重复的有效数据,这与传统的全量备份相比避免了重复数据传输,实现了备份效率的大幅提升,进而规避了传统全量备份方案带来的妨碍备份源正常服务的问题。

(3)本发明基于文件级重演,持续进行数据文件同步过程;同时,针对特殊的数据文件——末尾数据文件,文件同步过程也可以不失一般性地实现了周期性地更新,如此就能够确保备份数据始终和备份源上的数据达到近实时的同步效果,从而确保了冷备数据的时效性。

(4)本发明方案对备份源数据只做读操作,因此不会对备份源数据造成任何安全危害,确保了源数据安全。

(5)本发明方案是针对Log-structured存储引擎数据的冷备方案,因此本发明对基于Log-structured存储引擎实现的存储系统都具有普遍适应性。

附图说明

图1为本发明技术方案的方法流程图;

图2为本发明的示例性实施例的系统结构示意图;

图3为本发明的示例性实施例的工作流程图。

具体实施方式

下面结合附图和示例性实施例对本发明作进一步的说明:

如图1所示,技术方案的方法流程具体如下:

步骤1:先期开发一个用于记录并持久化Log-structured存储引擎数据文件操作日志的数据文件操作日志服务,并将该数据文件操作日志服务集成到基于Log-structured存储引擎的存储服务上,验证持久化的文件操作日志结果,确认数据文件操作日志的功能确实持续、有序地记录了存储引擎所进行的数据文件的创建和删除等操作;

步骤2:先期开发一个具备批量读取数据文件操作日志、获取指定数据文件MD5码、下载指定数据文件等功能的冷备源端服务,并将其部署到基于Log-structured存储引擎的存储服务上;

步骤3:冷备目标端服务向冷备源端服务发送登录验证请求,以建立文件同步操作会话;

步骤4:冷备源端服务验证冷备目标端服务身份,并保持验证会话;

步骤5:冷备目标端服务查询当前的备份进度,并以当前进度为起点,向冷备源端服务请求下一个批次的数据文件操作日志;

步骤6:冷备源端服务从持久化的数据文件操作日志中,以步骤5请求中的进度为起点按序获取一批数据文件操作日志,并返回给冷备目标端服务;

步骤7:冷备目标端服务获取到数据操作日志后,冷备目标端服务逐个顺序执行数据操作日志中的每一条记录;对于删除类型的数据操作日志,跳转到步骤8;对于创建类型的数据操作日志,若操作日志中记录的数据文件在冷备目标端服务中不存在,则跳转到步骤9~步骤11;若操作日志中记录的冷备目标端服务中已经存在,则跳转到步骤12~步骤14;

步骤8:按照操作日志记录的文件名,删除冷备目标端服务上对应的同名数据文件;

步骤9:冷备目标端服务向冷备源端服务发送下载指定数据文件的请求;

步骤10:冷备源端服务读取步骤9中指定的数据文件,并返回给冷备目标端服务;

步骤11:冷备目标端服务将从冷备源端服务下载到的数据文件存储到本地。

步骤12:冷备目标端服务计算当前数据文件的MD5码,并以此MD5码向冷备源端服务发送验证文件一致性的请求;

步骤13:冷备源端服务验证步骤12中指定的数据文件是否与给定的MD5相符,并返回结果给冷备目标端服务;

步骤14:若冷备目标端服务从步骤13获知,待验证的数据文件与备份源不一致,则执行步骤9~步骤11;

步骤15:完成当前批次的操作日志的处理后,冷备目标端服务将记录当前批次的最后一个操作日志编号,以作为备份进度;

步骤16:冷备目标端服务以上次备份进度为起点,循环执行步骤5~步骤15;当步骤5获得的文件操作日志为0条时,进入一段时间的休眠,如:调用线程休眠函数,休眠参数为10秒钟,此后继续步骤5~步骤15的循环执行,如此往复。

如图2所示,针对Log-structured存储引擎的数据冷备份系统包括冷备源端服务器和冷备目标端服务器,所述冷备源端服务器中包括相互连接的基于Log-structured存储引擎的存储服务模块、冷备源端服务模块和冷备源端数据文件模块,所述基于Log-structured存储引擎的存储服务模块中集成有数据文件操作日志模块,用于验证持久化的文件操作日志结果,确认数据文件操作日志的功能确实持续、有序地记录了存储引擎所进行的数据文件的创建和删除等操作;所述冷备目标端服务器中包括相互连接的数据文件自动同步控制模块、数据文件下载模块和冷备目标端数据文件模块,所述冷备源端服务器通过冷备源端服务模块与冷备目标端服务器的冷备目标服务模块相连。

如图3所示,针对Log-structured存储引擎的数据冷备份系统的工作流程具体步骤有:

步骤201:冷备目标端服务模块的数据文件自动同步控制模块从数据文件同步记录中获取当前的同步进度;

步骤202:文件自动同步控制模块调用数据文件下载模块,以从冷备源端服务模块获取下个批次的数据文件操作记录;

步骤203:数据文件下载模块通过诸如FTP协议,向冷备源端服务模块发起获取下个批次数据文件操作日志的请求;

步骤204:冷备源端服务模块根据给定的数据文件操作日志同步进度,从数据文件操作日志模块中查找出下个批次待重演的数据文件操作日志,并返回给冷备目标端服务模块;

步骤205:冷备目标端服务模块逐个顺序执行从步骤204获取到的数据文件操作日志中的每一条记录,其中对于增加类型的操作记录,冷备目标端服务模块将视情况向冷备源端服务模块发起数据文件下载请求或数据文件一致性验证请求;

步骤206:冷备源端服务模块根据请求,从本地读取指定的数据文件,并根据情况做数据文件回写或数据文件一致性校验工作;

步骤207:冷备目标端服务模块接收冷备源端服务模块返回的数据文件,并将其存储于本地的冷备目标端数据文件模块;若冷备目标端服务模块接收到冷备源端服务模块返回的文件一致性验证结果,则再根据验证结果决定是否再进行被验证文件的下载;

步骤208:待冷备目标端服务模块完成步骤203获取的一个批次的数据文件操作日志后,记录并持久化数据文件同步进度。

本发明主要用于提供一种针对Log-structured存储引擎的数据冷备份方法与系统,本发明所达到的有益效果:

(1)本发明通过建立有序的文件级重演机制,可以确保冷备数据一定与备份源上某个时刻的数据一致,这样就能够确保冷备数据始终处于可用的状态,这就解决了传统差量备份方法可能造成的数据不可用问题。即使在Log-structured存储引擎的垃圾清理场景下,得益于本发明的有序重演机制,冷备数据也能够确保随时可用。

(2)本发明基于文件级重演机制,使得冷备目标端始终从备份源上拖拽不重复的有效数据,这与传统的全量备份相比避免了重复数据传输,实现了备份效率的大幅提升,进而规避了传统全量备份方案带来的妨碍备份源正常服务的问题。

(3)本发明基于文件级重演,持续进行数据文件同步过程;同时,针对特殊的数据文件——末尾数据文件,文件同步过程也可以不失一般性地实现了周期性地更新,如此就能够确保备份数据始终和备份源上的数据达到近实时的同步效果,从而确保了冷备数据的时效性。

(4)本发明方案对备份源数据只做读操作,因此不会对备份源数据造成任何安全危害,确保了源数据安全。

(5)本发明方案是针对Log-structured存储引擎数据的冷备方案,因此本发明对基于Log-structured存储引擎实现的存储系统都具有普遍适应性。

以上实施例不以任何方式限定本发明,凡是对以上实施例以等效变换方式做出的其它改进与应用,都属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号