论文部分内容阅读
近些年来,随着各种重大灾难的发生,学术界和工业界越来越多地关注如何提供信息的高可靠性存储。在众多常用的数据容灾技术中,远程镜像正在发挥着重要甚至是核心的作用。它不仅可以作为一种独立的技术来将重要数据镜像到异地备份中心,而且可以与其他容灾技术如primary copy,snapshot等联合起来,应用到解决方案中。
然而,面对着复杂多变的容灾需求,提供一个兼顾性能和可扩展性的远程镜像设计存在着极大的困难。本文设计了一种新颖的三层协议栈模型以用于远程镜像。为了在广域网环境中提供稳定的网络吞吐量,在该协议栈的第一层中,我们引入了一种Hybrid Automatic Request Retransmission(ARQ)/ForwardError Correction(FEC)协议。相比于传统FEC技术中使用的Reed-Solomon(RS)编码,新传输协议使用了两种奇偶校验阵列编码:RDP和STAR。这两种编码完全基于简单异或计算,有着较优的计算复杂度,能够加速编码和解码过程。在第二层中,协议栈集中处理计算密集型的任务,包括数据压缩、加密等常应用在容灾备份业务中的操作。第三层主要关心的是远程镜像中的复制逻辑,如数据一致性、同步等策略,而这些策略的使用会对生产中心的性能产生很大影响。
基于上述三层协议栈模型,我们设计并实现了一个远程镜像的原型系统。在该原型中,我们修改了开源代码Network Block Device(NBD)并整合了Logical Volumn Manager2(LVM2),使其映射到模型中的三层协议栈。为了进一步优化原型系统的性能,计算密集的任务被安排到一个独立的计算中心进行处理。此外,我们还引入了多线程技术来提升该计算节点的处理能力。
我们搭建了模拟广域网的实验环境,并在该环境中部署、测试了原型系统。实验结果表明,新的架构及第三层中的复制策略选择对本地生产中心的性能影响极小。更为重要的是,较之于TCP协议和使用RS编码的传统FEC协议,第一层中引入的传输协议可以极大地提高网络传输吞吐率。