◆吴彦虹
(陕西广播电视大学延安分校 陕西 716000)
集中式数据备份系统研究
◆吴彦虹
(陕西广播电视大学延安分校 陕西 716000)
随着信息技术的应用越来越广泛,在大量主机中包含了大量非常重要的数据,为了保证这些数据的安全性,需要对这些分散在不同主机上的数据进行备份。集中数据备份系统可以实现对分散主机上数据的集中备份,系统由客户层、管理层和服务层三层组成,并且充分考虑了备份数据的安全性,采用PKI认证系统实现备份数据的安全管理。集中数据备份系统采用一种统一的模式来实现网络内分散主机上的数据处理,通过较少的硬件设备投入来为大量主机用户提供数据备份功能,提高了数据的安全性。
数据安全;数据备份;集中
由于水灾、火灾等自然灾害,系统硬件故障、人为误操作、黑客攻击等不确定因素时刻威胁着计算机中数据的安全,在任何时候,数据的丢失都将会造成无法估量的损失,因此通过数据的备份恢复管理来保证系统数据安全已经成为了信息安全研究的重点内容。目前绝大部分大型系统中都有备份系统,但是对于用户数量众多的分散主机用户而言,虽然也有强烈的数据备份需求,但并不具备单独建立备份系统的条件。为此,需要建立一个集中式数据备份系统来为网络内大量分散主机用户提供数据备份功能。
1.1 系统整体结构设计
考虑到信息系统中数据产生、存储和管理的各个环节,为了能够保证系统足够的稳定性、扩展性和适应性,数据备份系统设计采用了层次化结构,数据备份系统主要包括客户层、管理层和服务层三大部分。其中,客户层主要完成客户计算机相关资源的管理;管理层主要包括认证中心、备份控制台和备份适配器等内容;服务器则是为用户提供存储功能的服务器资源。
1.2 控制台模块设计
从功能上看,数据备份系统主要完成数据备份计划制订,数据备份和数据恢复三大功能。
(1)数据备份计划制订
数据备份计划制定由客户端发起,将数据备份计划提交到适配器,然后由适配器向控制台进行申请,在申请同归周后,适配器根据询问服务器的资源使用情况,根据服务器资源的使用现状,制订数据备份计划。
(2)数据备份
系统中的数据备份功能由控制台进行统一管理,控制台会根据不同客户端所提交并审核通过的数据备份计划,建立适配器与服务器之间的备份通道。为了实现多台客户端同时进行数据备份请求的管理,在进行数据备份时,不能由客户端直接向服务器发送数据备份请求,而应该通过向适配器发送数据备份请求,有适配器对多个客户端所提出的数据备份请求进行统一管理之后,再分配客户端与服务器之间的数据备份通道,将客户端的数据备份到服务器中。数据备份流程设计如图1所示。
1.3 服务器模块设计
服务器采用线程池的方式接收客户端所发送的备份数据。服务器底层采用 TCP协议实现数据的可靠传输,并且将加密数据存储到存储设备,在回复时根据数据恢复请求读取存储区的数据通过传输通道同步到客户端。服务器的工作流程设计如图2所示。
图1 数据备份流程图
图2 服务器流程设计
为了保证数据接收的可靠性和性能,服务器采用同步I/O策略,使用线程池并发策略防止单线程阻塞问题。
在备份计划制订、数据备份和数据恢复过程中,服务器端的主要功能和工作流程设计如下所示。
(1)备份计划制定阶段
服务器等待适配器的数据备份请求,并且根据数据备份请求安排数据备份时间。
(2)数据备份阶段
在数据备份阶段,服务器同时需要向适配器进行身份认证,认证通过之后,开始等待客户端的连接,在完成与客户端的握手协议之后,对客户端发送的数据进行校验检查,并且将数据存储到存储区。
(3)数据恢复阶段
服务器接收适配器的状态询问,并返回自身运行状态给适配器,等待数据恢复。在实现与客户端的连接自后,从存储区中读取数据恢复到客户端。
1.4 适配器模块设计
适配器是真个数据备份系统的管理模块,客户端的备份申请、服务器状态询问、客户端与服务器的认证等功能都由适配器完成。根据适配器的功能特点,适配器采用反应器框架和线程池方法完成回调和并发操作,适配器模块的设计如图3所示。
图3 适配器模块设计
在备份计划制订、数据备份和数据恢复过程中,适配器的主要功能和工作流程设计如下所示。
(1)备份计划制定阶段
在备份制订阶段,适配器接收客户端的数据备份申请,并将申请转交给控制台。同时,适配器发送验证请求对客户端的合法性进行认证,以及向服务器发送备份时间请求,询问服务器状态。在客户端合法和控制台通过了数据备份请求之后,根据服务器状态制定数据备份计划,并且存储在适配器中。
(2)数据备份阶段
根据数据备份计划,向客户端和服务器发送数据备份指令,客户端和服务器在接收到指令之后,由客户端和服务器之间建立数据通道进行数据备份。
(3)数据恢复阶段
数据恢复阶段的流程与数据备份阶段流程类似,适配器根据数据恢复计划,向客户端和服务器发送数据恢复指令,并且由客户端和服务器端建立数据通道进行数据恢复。
1.5 认证中心设计
在数据备份系统中,备份数据的安全性与系统数据的安全性同等重要,为了防止未授权的第三方窃取备份数据中的信息,需要对备份数据进行加密,以防止备份系统管理员仍以访问备份数据中的信息。在系统中采用公钥基础设施(PKI)来实现备份数据的加密。
为了保证数据传输安全,在PKI总体结构中,服务器与客户端之间采用安全套接字(Secure Socket Layer, SSL)进行通信,发送方使用接收方的公钥进行数据加密,并且使用私钥对数据进行签名,接收方使用自己的私钥对数据进行解密,并且使用对方的公钥来进行认证。
数据备份是集中式数据备份系统的重要内容,数据备份方法分为完全数据备份和增量数据备份两种情况。其中完全备份数据源的数据完全拷贝到服务器中,该算法与非集中式数据备份算法相同。但是在增量数据表备份过程中,由于集中式数据备份系统的数据源更广,因此需要在已有的增量备份算法上进行改进,以获得更好的时间性能和空间性能。
2.1 经典增量备份算法
Rsync算法是Andrew Tridgell所提出来的一种经典增量备份算法,其主要分为如下所示的三个部分。
(1)数据文件处理
首先,将数据文件按照固定大小块划分为多个数据块(最后一块的大小可能小于固定值);其次,对每个数据块计算弱校验码和强校验码两种校验码;最后,建立以弱校验码为关键字的哈希表,并将哈希表发送到集中式数据备份系统的服务器,完成数据文件的处理。
(2)待备份数据识别
集中式数据备份系统服务器在接收到客户端所上传的哈希表后,对该客户端已备份的数据文件同样按照固定大小进行分块,并计算每一块的弱校验码,若该数据块的弱校验码与客户端此次上传哈希表的弱校验码相同,则继续进行强校验码的计算和匹配,若强校验码也匹配,则表明该块数据已经备份,所有数据块处理完之后,完成客户端此次增量备份过程中待备份数据的识别,并将待备份的数据块序号发送给客户端。在这过程中,弱校验码的计算简单,执行速度较快,弱校验码和强校验码匹配的方式可以提高算法效率。
(3)备份数据文件重构
客户端接收到服务器发送的待备份数据后,建立临时文件,并将待备份的数据被分到临时文件中,并最终将临时文件上传到服务器进行保存,完成数据的增量备份。
2.2 经典增量备份算法的不足
由于集中式数据备份系统面向数量众多的数据源,数据备份事务更频繁的特点,导致如上所示的Rsync经典增量备份算法存在如下的不足。
一方面,Rsync算法采用固定大小的分块方式对数据文件进行分块,从而降低了数据变化时的算法适应能力;另一方面,在增量备份过程中,需要构建临时文件,因此算法的空间性能较差,受到存储空间的限制;除此之外,服务器的计算量大,需要进行反复扫描和匹配,在数据源较多、数据备份事务频繁时,服务器的负载过大。
2.3 增量备份算法的改进
由于集中式数据备份系统面向多个不同数据源,数据备份事务多的特点,因此更加需要考虑数据备份的网络带宽开销、计算开销和存储空间。并根据Rsync增量备份算法在集中式数据备份系统中的不足,从如下几个方面来进行改进。
(1)针对服务器端计算开销过大的问题,使用不等长分块方法进行数据块检验,将服务器端的数据差异计算由字节级别降低到数据块级别。
(2)利用差异编码技术重构文件,改进后的算法对匹配和差异数据进行差异压缩,减少差异数据的传输流量。
改进后的算法流程如下所示:
①采用基于文件内容的数据切分算法,将客户端的数据文件划分为不等长的数据块;
②记录数据块长度len和偏移量offset,并计算每个数据块的弱校验值和MD5强校验值,并将这些信息上传到服务器;
③根据数据块长度len和偏移量offset将服务器数据文件切分为对应长度的数据块,并记性搜索匹配,若匹配不成功,则将对应的块信息、差异数据和差异指示标志写入差异编码文件delta;
④服务器将最终的差异编码文件发送给客户端,客户端根据数据文件和delta文件中的差异指示标志位,来判断是否需要将数据块复制到新文件中进行备份。
集中式数据备份系统主要由客户层、管理层和服务器层三层结构组成,同时,由于网络内大量用户可以从服务器中进行数据恢复,因此为了保证用户的数据不被网络内其它用户所窃取,采用了PKI来保证服务器中用户备份数据的安全性。
[1]王悦.搭建容灾备份中心保障电子政务系统安全[J].信息系统工程,2010.
[2]敖莉,舒继武,李明强.重复数据删除技术[J].软件学报,2010.
[3]雷葆华.云计算解码—技术架构和产业运营[M].北京:电子工业出版社,2011.
网络安全技术与应用2017年4期