探讨自适应协同流水线的远程复制系统

时间:2020-08-16 10:18:54 硕士毕业论文 我要投稿

探讨自适应协同流水线的远程复制系统

  1 引言
  一直以来,数据保护都是IT 行业和工业中的热门话题。特别是近几年,经历过几次大的灾难之后,一些具备完善的数据保护机制的企业能够很快恢复,但是许多其他的企业则由于数据丢失而破产。因此,数据保护技术受到人们越来越多的关注。远程复制是一种流行的数据保护技术。它通过维护主站点与地域上相隔的远端站点的实时镜像,实现对本地的自然或人为的灾难的容灾。目前,有两种典型的远程镜像策略:同步方式和异步方式[1]。因为同步方式对RTT[2](Round Trip Time)极为敏感,所以异步方式更受人们的喜爱。
  本文中,我们提出了一个新的协同流水线模型来描述远程复制系统。“协同”的意思是流水线跨越主站点,网络和远程复制站点。因为每个子任务都有相应的“所有者”,所以我们不能任意地分裂它们来平衡流水线的各个阶段。为此,我们提出了自适应成组传输策略。写请求被成组传输到远程站点,而且每个组的大小(组与组之间的时间间隔)会根据主站点和远程备份站点的处理速度动态调整。在我们设计的模型中,实现了数据压缩和加密,分别用来降低网络传输压力和增强安全性。这些操作给CPU 带来了大量的负荷。因此,我们设计了三种加速方法:细粒度流水线、多线程流水线和混合流水线。
  论文后面的篇幅组织如下:在第2 节中我们重点介绍近年来的相关工作。在第3 节,我们将详细阐释我们系统的基础架构,并提出自适应协同流水线。在第4 节,我们将从大量实验结果中介绍该系统的实现并对其的测试。最后,在第5 节我们将作2 出结论并展望下一步的工作。
  2 相关工作
  EMC Symmetrix Remote Data Facility(SRDF)[3]应用了块级的同步远程复制技术,但是如果设备的性能降到值一下,它将切换到半同步模式。Veritas Volume Replicator(VVR)[4]是一种逻辑卷级别的远程复制系统。它支持多远程复制,并应用日志和事务机制实现异步远程复制。Dot Hill 的成组远程复制服务[5],源卷采用即时快照,然后向一个或多个远程复制系统传输传输快照数据更新。
  网络应用的快照镜像[1]使用快照保证备份卷的更新。WAFL 文件系统习惯于跟踪已经更新的数据块。Seneca[6]延迟向远程站点发送成组更新来期待发生写结合。写操作仅在组中结合,并且在远程站点,每个组必须被原子地操作以防止数据不一致的事件发生。
  类似于VVR 和Dot Hill 的远程复制服务,我们的原型也在逻辑卷层实现。像Seneca 一样,更新操作被成组发送到远程站点提高性能。我们的原型中还采用了自适应机制。然而,这种自适应是基于异步模式和流水线阶段平衡而不是网络条件的自适应。
  还有许多其他的远程复制产品,例如IBM 的Extended Remote Copy (XRC)[7],HPContinuous Access Storage Appliance (CASA)[8]等等。在近几年的学术研究中,[9] 又提出了一种新的模型,在该模型中同步和异步模式由上层应用程序或系统指定。[2]并使用ForwardError Correction (FEC)和“回调”机制来实现高可靠性。
  3 自适应协同流水线
  显示了我们原型的架构。它是一个在Linux 的LVM2[10]上实现的异步远程镜像系统。NBD(网络块设备,Network Block Device)[11]用于主从站点间的数据传输。当一个写请求到达时就被复制。原始请求被放到本地队列,复制的请求被放到远程队列。在远程队列中的请求在一定时间间隔内被成组发送到备份站点。因为NBD 通过TCP 协议传输消息,所以只要每个组都能够原子地传输到备份站点就能保证一致性。为了减轻网络传输压力,请求在发送前先进行压缩。然后进行加密操作来报证安全性。从计算复杂性上考虑,先压缩后加密明显优于先加密后压缩。因此,在备份站点,请求在被提交前先解密再解压。
  3.1 协同流水线
  为了保证最大吞吐量,一个显而易见的方法是主从站点的操作并行进行,即当一个组被发送出去后并不等待,而是主站点继续处理下一个组,备份站点处理前一个。所以我们可以用两阶段(stage)流水线模型来描述请求处理的过程。我们分别叫这两阶段为主阶段和备份阶段。这是一个“协同”流水线,每个组被主从站点协作处理。我们知道,对于一个已知任务,阶段越多,每阶段的大小越接近,流水线的性能就越好。然而。协同流水线的一些特殊属性与之相悖。