论文部分内容阅读
远程镜像又叫远程复制,是容灾备份的核心技术,同时也是保持远程数据同步和实现灾难恢复的基础。它利用物理位置上分离的存储设备所具备的远程数据连接功能,在远程维护一套数据镜像,一旦灾难发生时,分布在异地存储器上的数据备份并不会受到波及。远程镜像按请求镜像的主机是否需要远程镜像站点的确认信息,又可分为同步远程镜像和异步远程镜像。
本文根据实际需求和Linux操作系统特性设计并开发了一套基于Linux逻辑卷管理器(Logical Volume Manager)和网络块设备(Network Block Device)的远程复制系统。
我们将远程复制机制嵌入到Linux系统的LVM组件中,利用LVM优越的磁盘空间管理性能,屏蔽了因物理存储设备的差异而导致的系统设计的复杂性和实现的难度。该远程复制系统基本工作原理是:生产中心在LNM层截获用户的写操作请求,通过LVM层的逻辑映射将请求发送到本地设备的I/O操作队列,即本地设备写操作完成;同时将写操作数据副本和I/O请求按照本地设备(即生产中心)的写操作顺序记录到远程复制I/O请求队列中。NBD从远程复制请求队列中提取写操作请求,同样按照本地数据的写操作顺序,通过NBD协议将写请求及相应的数据副本发送到容灾中心,完成生产中心向容灾中心数据的更新。
更重要的是,运行于实际的系统并不总是和理想的设计相吻合。测试中发现,在实际运行过程中,远程复制系统由于读写压力大会出现一些在设计过程中不曾想到或者忽略的问题,这些问题对于一个要求稳定运行的实际系统至关重要。本文将对在系统测试过程中发现的问题详细讨论,并给出相应的性能优化方案。其中包括整个系统的内存分配策略、由于线程调度引起的资源分配不均匀问题、非地址对齐的小写对整个复制系统的影响以及异步复制系统缓冲区满等待策略和采用日志策略的区别和取舍。通过详细的测试方案,我们对整个系统进行了高速局域网和广域网上多方位的大压力测试。发现系统运行稳定,效能良好。