一种基于zfssend的异步复制方法

文档序号:9417251阅读:791来源:国知局
一种基于zfs send的异步复制方法
【技术领域】
[0001]本发明涉及存储系统技术领域,尤其是涉及一种基于zfs send的异步复制方法,是备份容灾系统中的核心技术。
【背景技术】
[0002]过去数年间,随着各行各业数字化进程的推进,数据的重要性也越来越明显。在一些事件中,很多公司就是因为没有容灾系统,导致数据全部毁于一旦。客户数据丢失,受损的不仅仅是公司,还有客户。本地备份对人为操作失误、单台机器故障所造成的数据破坏和丢失是有效的。但对火灾、地震等所造成的系统和数据破坏就显得无能为力了。如果要充分保障系统和数据的安全,只是在本地将数据进行备份还远远不够,还必须在远程地点建立另外一个系统,并包含当前生产系统的全部数据备份,这就需要使用远程复制技术。
[0003]远程复制技术是应用于数据远程容灾的关键技术,它通过在远程异地对重要的数据保留一份或多份副本,使得在灾难发生时降低对数据的破坏程序,同时在较短的时间内恢复业务运行。远程复制技术有以下几个核心因素需要考虑:
[0004]1、实现层次
[0005]主要有应用层、操作系统层和存储层。应用层的数据复制是指由应用软件来实现数据的远程复制。这种方式,需要对现有应用软件进行升级,增加应用软件的复杂性,对整个业务系统的性能造成较大的影响。
[0006]操作系统的数据复制是通过操作系统的逻辑卷管理层来实现的远程复制。它以存储的逻辑数据块为单位进行,当本地生产中心某个逻辑卷中的数据块被更新时,需要把这个更新操作复制到远程容灾中心所对应的逻辑卷中。这种方式会占用主机系统的资源,影响主机上应用软件的运行效率。
[0007]存储设备的数据复制是指将复制功能实现在存储这一层,以卷或文件系统为单位。此种方式不占用主机资源,同时对操作系统和应用透明,大大降低上层软件设计的复杂程序。本文描述的复制即实现在这一层。
[0008]2、同步方式
[0009]主要有同步复制和异步复制二种方式。同步数据复制是指本地生产系统中的每一个1均需写入到远端备份系统中才算完成;异步数据复制是指本地生产系统中的1均正常执行,无须等待远程复制的完成,本地生产数据将在稍后的某个时刻被发送到远端备份系统中。
[0010]这二种方式各有优缺点。同步复制实时性强,灾难发生时本地数据与远端数据完全一致,不会有数据不一致的情况。但此种方式受带宽影响很大,数据传输距离较短。一旦两个站点之间的网络出现拥塞、故障,则会导致业务系统不可用。
[0011]异步复制方式由于写本地数据与将数据发送到远端备份不在同一时刻进行,从而不影响主机对业务的响应速度,但是牺牲了本地和远端数据的严格一致性。一旦本地系统挂掉,会存在部分数据丢失。
[0012]3、数据一致性
[0013]数据一致性是指关联数据之间的逻辑关系是否正常和完整。在异步复制过程中,会出现这样一种情况,即先后发生的两个有逻辑关联性的时间,在被复制到远端备份站点之后,远端备份系统可能只保存了后来发生的事件,而先发生的事件却没有了,或者先保存了后来发生的事件,后保存了先发生的事件。这就是数据不一致了,若本地生产系统挂掉,远端备份系统接管运行,业务系统就会在这份错误的数据上运行,造成严重的后果。因此,如何保证远端备份系统的数据一致性是异步复制需要考虑的一个问题。
[0014]快照是对指定数据集的一个完全可用拷贝,该拷贝包括相应数据在某个时间点的映射。基于这个特性,可以在源对象上做快照,然后将这份快照对应的全部数据块复制到远程站点,这样远端备份系统就可以得到一个完全可用的关于生产系统的备份。然后每隔一段固定的时间,重复上述过程,即可将新的数据从生产系统备份到远端系统中,同时保证远端的数据是可用的。
[0015]这种做法,不仅仅可以充分利用现有快照功能,还能够比较简单的实现复制功能。
[0016]4、复制周期
[0017]采用异步复制技术,本地生产系统的数据和远端备份系统的数据会不严格一致。若生产系统挂掉,则会造成部分数据丢失。数据丢失的多少,取决于复制的频率,即周期。为减小数据丢失,则必须更频繁地进行异步复制操作。没有一个统一的原则来表明什么样的频繁合适,需要根据企业能承受多少数据损失来确定。

【发明内容】

[0018]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于zfs send的异步复制方法,基于zfs send命令在存储层实现远程复制功能,不占用主机资源、对操作系统和主机应用透明,提供极强的可扩展性,便于添加特定业务环镜中需要的额外特性,或者减少不需要的特性。
[0019]本发明的目的可以通过以下技术方案来实现:
[0020]—种基于zfs send的异步复制方法,该方法由设置于本地存储系统中的客户端和设置于远端备份系统中的服务端实现,包括以下步骤:
[0021]I)执行复制功能,客户端启动;
[0022]2)本地存储系统与远端备份系统交换初始化消息;
[0023]3)客户端发送断点文件,具体为:
[0024]客户端创建线程组:
[0025]读线程组,用于读取快照内容并保存到高速缓存中,读取完成后发消息通知写线程组;
[0026]写线程组,用于将保存至高速缓存的快照内容生成断点文件,判断占用的高速缓存是否达到最大值,若是,则将生成的断点文件写入低速磁盘中,当后续写线程检测高速缓存有空闲空间时再将该文件读入高速缓存;若否,则直接发消息通知发送线程组或将低速磁盘中的断点文件读入高速缓存中后再发消息通知发送线程组;
[0027]发送线程组,用于将高速缓存中的断点文件通过网络接口发送给服务端;
[0028]各线程组间通过消息驱动,本线程完成当前阶段的工作后,将消息转到下一个线程继续处理;
[0029]4)服务端接收断点文件,并返回复制结果。
[0030]所述步骤2)中,交换的初始化消息包括待复制的卷或文件系统名字、待复制的卷或文件系统的数据大小、本次复制的特征以及是否从上次被中断的地方开始续传。
[0031]所述步骤4)中,服务端接收断点文件的过程中创建:
[0032]接收线程组,用于将接收到的所有断点文件重新组合,在远端备份系统中生成快照。
[0033]所述步骤4)中,服务端接收断点文件的过程中创建:
[0034]查询线程,用于将复制结果反馈给客户端。
[0035]所述客户端发送断点文件和服务端接收断点文件的过程中还创建:
[0036]加密线程组,用于对每个断点文件进行加密或解密。
[0037]所述客户端发送断点文件和服务端接收断点文件的过程中还创建:
[0038]压缩线程组,用于对每个断点文件进行压缩或解压。
[0039]与现有技术相比,本发明具有以下有益效果:
[0040]1、实现复制功能,在满足不占用主机资源、同时对操作系统和应用透明、不影响存储对业务的响应速度的前提下,将本地生产站点的数据备份到远端站点。同时,保证了远端备份站点上的数据一致性,在本地生产系统挂掉的情况下,能够真正的将业务接管过去。再次,每隔一段时间或待复制对象新增数据达到指定阀值的时候,自动触发一次新的复制,将新增的数据复制到远端备份站点。
[0041]2、高性能,在千兆组网环镜下,复制速率可以达到108MB/S,万兆组网环镜下,复制速率可以达到400MB/s。
[0042]3、提供断点续传特性。通过本发明方法,改进了 zfs send中断后就必须重新传送全部数据的缺点。当由于某些因素(比如生产系统异常断电、网络中断等)而导致复制过程被迫中断时,已经传递到远端备份站点的数据无须再次传递,只需要从中断的地方开始传递。这可以大大节省客户时间,提高备份效率。
[0043]4、提供加密特性,保证数据在网络上传输的安全性。支持以下加密算法:DES算法、使用两个密钥的3DES算法、使用三个密钥的3DES算法、DESX算法、RC2算法、RC4算法、RC5算法、IDEA算法、AES算法、Blowfish算法。
[0044]5、通过压缩特性,减少重复数据传输,进一步提高数据传输效率。支持以下压缩算法:Gzip、Bzip2、LZMA、TL、LZ4、LZO 算法。
[0045]6、可扩展,各线程的功能相互独立,并且使用消息进行驱动。通过此种方式,使得各线程之间不相互依赖。若要增加某个新的特性,只需要将实现该
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1