基于数据容灾系统的服务漂移实现
向坤 刘晓洁 赵奎 李峰 网络
引言

随着计算机系统和网络的不断普及,数据作为开展业务不可缺少的基础,其安全性成为了各公司、政府机构等需要考虑的问题。传统的数据容灾系统往往提供基于逻辑卷的备份能力,当客户服务器数据被破坏或者丢失后,可以通过远程存储服务器提供数据的在线恢复,但是这种方式仍然无法避免服务中断给企业造成的损失。服务级容灾技术虽然可以提供服务级上的数据一致性和服务连续性,但是系统实现往往过于复杂,从传统的数据容灾系统迁移到服务容灾系统的成本也比较大。

文中提出了一种基于远程数据容灾系统的服务漂移方案。当客户服务器出现故障或者数据被破坏时,另一个镜像服务器可以通过isCSI协议发起对存储服务器上对应逻辑卷的连接请求,当虚拟逻辑建立后利用存储服务器上的数据继续提供服务。待客户服务器的故障修复或数据恢复后,再将服务切换回客户服务器。该方案拓展了传统数据容灾系统的功能,使其可以实现服务级别的容灾,也为企业从数据容灾系统迁移到服务容灾系统提供了一种可行的方案。

1服务漂移的原理与实现

1.1 iSCSI介绍

iSCSI是Intemet小型计算机系统接口(InternetSmall Computer System Interface)的简称。如图1所示,iSCSI是一种基于TCP/IP的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络SAN。iSCSI的主要功能是在TCP/IP网络上的主机系统(启动器Initiator)和存储设备(目标器Target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI提供了在IP网络封装SCSI命令,且运行在TCP上。

 

 

 
iSCSI的工作过程是:当iSCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI命令,该SCSI命令在iSCSI Initiator层被封装成iSCSI消息包并通过TCP/IP传送到设备端,设备端的iSCSItarget层会解开iSCSI消息包,得到SCSI命令的内容,然后传送给SCSI设备执行;设备执行SCSI命令后的响应,在经过设备端iSCSI Target层时被封装成iSCSI响应包,通过TCP/IP网络传送给主机的iSCSI Initiator层,iSCSI Initiator会从ISCSI响应包里解析出SCSI响应并传送给操作系统,操作系统再响应给应用程序。

在服务漂移系统中,镜像服务器用于在客户服务器故障时代替其提供服务。镜像服务器上所有对于数据的访问请求都通过iSCSI Initiator封装成TCP数据包,然后通过IP网路发送给存储服务器。存储服务器上iSCSI Target解封TCP数据包,执行数据访问请求,然后把结果封装成TCP数据包发送回去。通过这种方式在镜像服务器和存储服务器建立一种虚拟的逻辑卷链接,所有数据的实际操作在存储服务器上执行,而操作的发起却在镜像服务器上,这样保证了存储服务器上的数据可以一直保持最新。

1.2系统结构

服务漂移要求当客户服务器由于各种原因中断运行时,可以由镜像服务器代替其提供同样的服务,并且能够保证数据和服务访问地址的一致性。服务漂移的实现应该包括为3部分:请求的重定向、数据的同步以及服务的启用。

图2显示了服务漂移的系统架构。

 

 

1.2.1客户服务器

客户服务是数据生产中心,客户服务器上产生的数据通过Internet实时地备份到远程存储服务器中。

1.2.2网关服务器

网关服务器处于客户服务器和外部网络之间,将来自外部网络的服务请求定向到客户服务器,同时保护客户不受外部攻击。当客户服务器服务中断时,网关负责将服务请求定向到镜像服务器。

1.2.3任务管理主机

任务管理主机可以是任何一台接入Internet的主机,它通过Web界面和ActiveX控件分别与存储服务器、客户服务器进行通信,实现对于备份任务的远程管理。

1.2.4数据库服务器

数据服务器用于提供数据库服务和Web访问服务。关于任务的配置信息保存在数据库中,其他模块在初始化时可以通过访问数据库获得任务的基本信息和状态。同时数据库服务也提供Web访问服务,方便用户远程管理任务。

1.2.5存储服务器

存储服务器用于保存客户服务器上的逻辑卷镜像。它不断接受来自客户服务器上的实时备份数据,并写人到对应逻辑卷镜像。同时对于指定任务还可以执行数据同步、数据恢复等工作。

1.2.6镜像服务器

镜像服务器用于在客户服务器出现故障无法提供服务时,代替客户服务器提供服务。通过iSCSI协议将对逻辑卷的访问请求转发到存储服务器上对应的逻辑卷镜像。

1.3模块实现

如图3所示,包含服务漂移功能的容灾系统包括三个子系统:数据存储子系统、配置管理子系统、服务漂移子系统。

 

图3 容灾系统模块结构

1.3.1数据存储子系统

数据存储子系统包括客户端和服务器端的存储模块,提供客户服务器和存储服务器之间的实时备份、数据同步、数据恢复、离线数据导出等功能。

1.3.2配置管理子系统

配置管理主要为用户提供给予Web的远程管理界面,通过ActiveX和客户端消息处理模块实现控件和客户服务器的通信。

1.3.3服务漂移子系统

服务漂移子系统主要负责当客户服务器中断服务时,启动镜像服务器上对应的服务,并将对于指向原客户服务的服务请求重新定向到镜像服务器。

1.4服务漂移过程

容灾系统在正常工作情况下,存储服务器和客户服务器会保持定时的通信,以确定对方处于正常的工作状态。当客户服务器出现故障或灾难时,存储服务器会在检测到客户服务器长时间没有返回消息后判断客户服务器出现了故障,并且在界面上通知用户。

用户通过配置管理子系统启动服务漂移过程。如图4所示,服务漂移过程的启动主要经过三个阶段:客户服务器和存储服务器之间iSCSI连接的建立、镜像服务器上服务脚本的启动、网关服务器的请求重定向。

1.4.1iSCSI连接的建立

存储服务器在收到配置管理系统的消息后,首先会停止对于该客户服务器对应逻辑卷的更新,并将对应任务调整为停止状态。同时存储服务器使用iSCSITarget工具建立一个iSCSI目标,并将该任务对应逻辑卷加人到该iSCSI目标中。在存储服务器完成这些操作后,由镜像服务器上的iSCSI Initiator工具发起对存储服务器上iSCSI目标的连接。

1.4.2服务脚本的启动

为了保证镜像服务器上能够提供和客户服务器上相同的服务,并且保持数据的一致性,需要执行一系列的服务启动脚本。服务启动脚本的作用主要作用如下:发起iSCSI连接请求,建立和存储服务器的逻辑卷连接;然后凋用系统API将连接的逻辑卷挂载到指定的盘符;启动与客户服务器上相同的服务进程(如Web服务器、FTP服务器等等)。

 

图4 服务漂移的流程图

1.4.3服务重定向

当完成以上两个过程后,镜像服务器已经能够替代客户服务器提供连续性的服务了。最后的服务重定向过程配置网关服务器将目前定位到客户服务器的服务请求重定向到镜像服务器。位于网关服务器上的重定向模块通过运行iptables工具将所有指向原客户服务器的请求转发到镜像服务器。

2性能测试

对于服务漂移系统的评估从两个方面考虑:一是服务漂移切换的时间,时间越短对于服务中断的影响越小,系统的性能也越好;二是服务漂移之后服务器的10性能,因为漂移是通过iSCSI实现远程数据读写的,10性能可能不可能达到原来的磁盘直接读取速度,漂移后的IO性能越高说明系统的性能越好。

测试环境的存储服务器为Intel Xeon 2. 8Nz双核CPU, 512MB内存,希捷ST3500630AV 7200转硬盘,Intel 82541GI网卡。其他服务均为普通PC机。试验环境下主要测试服务漂移速度和漂移后磁盘IO性能,数据如下:

在服务漂移的性能测试中,分别针对了200m到3200m数据进行了读写测试。结果如图5所示,漂移之前原始逻辑卷的读写平均速度为28~29MB/s,漂移后通过iSCSI读写IO的平均速度为1OMI3/s。造成这样的主要原因在于本系统使用的是百兆网卡,理论上的最高下行速度为12. SMB/s,所以iSCSI传输速度实际上已经达到了网卡传输速度的上限。虽然目前漂移后iSCSI的性能比起原始磁盘的读取速度还有一定差距,但是在使用了千兆网卡后性能还能够获得进一步的提升。

 

图5 服务漂移的性能测试

在服务漂移切换时间的测试中,启动脚本主要执行两个操作,一是启动Windows Server2003上的IIS服务,二是启动Microsoft SqlServer服务。结果如图6所示,服务漂移的平均切换时间为17.2s,这样的切换时间能够比较快速地完成服务漂移的切换,不会对服务中断造成太大的影响。

 

图6 服务漂移的切换时间测试

3结束语

提出并实现一种基于现有数据容灾系统的服务漂移方案,该服务漂移功能可以在客户服务器遭到灾难或故障时有效地实现服务连续性和数据一致性,并且具有较快的服务切换时间和,在IO性能上也具有较大的提升潜力。该方案是对现有数据容灾系统功能一个有力的扩充,适合作为中小型系统的服务容灾方案。

CIO之家 www.ciozj.com 公众号:imciow
关联的文档
也许您喜欢