第九章网络备份系统_第1页
第九章网络备份系统_第2页
第九章网络备份系统_第3页
第九章网络备份系统_第4页
第九章网络备份系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第9章 网络存储备份系统在计算机系统中,备份是指拷贝特定的数据集到指定的存储设备上,当数据集丢失时,从相应的设备上读取这些额外拷贝重新恢复数据集。由于备份至少包含有数据集的一个副本,因此不仅需要大量的存储空间进行存放,而且必须对于这些备份数据进行高效的管理。传统上往往使用磁带库作为数据备份的目标设备,这主要是由于备份数据集往往很少改动,因此特别适合于磁带这种离线的设备。但是随着存储技术的发展和存储空间的廉价趋势,现有越来越多的存储设备可以作为备份资源。随着网络技术的发展,通过共享存储系统可以方便的为多个客户端提供高效备份服务,这样能够的优化存储资源的使用效率,并能够更好的管理各种备份数据。由于

2、备份构成对于存储容量、性能有着巨大的需要,因此大规模存储系统往往必须为多个用户和应用提供备份服务。本章首先讨论备份系统的原理和实现技术,重点介绍一种基于网络的备份系统的设计结构和实现方法。本章设计的备份系统主要针对逻辑备份,将从网络备份系统的总体结构,以及设计方案入手,详细讨论基于存储网络的备份系统的软件设计,尤其是备份管理程序和备份客户端与备份源代理(即恢复目的代理)的设计与实现。9.1 复制和镜像技术从为数据集建立拷贝的角度看,数据复制和镜像技术也是两种特殊的数据备份技术。在逻辑上数据复制更加强调数据拷贝的过程,而镜像是在时间维度上的保持拷贝和数据集更新的同步。而它们都是提高存储系统中数据

3、可用性的重要技术,并且在很多方面都采用了相同的技术,如快照技术,因此在讨论普通意义上备份系统之前,先简单分析一下复制和镜像技术。数据复制可以分为两种级别,一是基于文件系统的备份复制技术,另一种是基于数据块和逻辑卷的复制技术。前者可以通过文件系统或者数据库的备份系统实现,对重要的文件和数据进行备份,如数据备份;而后者往往基于软硬件结合的方式实现,不必了解数据的含义,例如磁盘镜像。磁盘镜像是一个基于数据块层的功能,用设备虚拟化的基本形式使两个或者多个磁盘表现为一个逻辑磁盘形式,接受完全相同的数据。从镜像对中,对磁盘驱动器的相对优先级分析可以分为主/从镜像对,对等镜像对;从操作时间性可以分为同步、异

4、步和半同步镜像;从空间上分为本地磁盘镜像和远程磁盘镜像。而镜像功能往往通过在I/O路径中增加镜像器实现。本地磁盘镜像往往结合RAID技术实现,而远程镜像往往涉及更为复杂的结构和技术。图 9.1同步远程镜像数据流程示意图同步的远程镜像技术的前提是本地和异地间通过高速的通道直接连接,它对网络的稳定性和性能都要很高的要求。实现同步的远程镜像技术有两种方法,一种是在主机端的文件系统的设备驱动层进行修改,把发给本地磁盘阵列的写I/O请求同时发送给异地的镜像磁盘阵列,当两个写I/O请求都完成后才认为请求完成,这类似于RAID1方式。另一种方法,就是在磁盘阵列的控制器中进行设计,把发给本地磁盘阵列的写I/O

5、请求同时发送给异地的镜像磁盘阵列。当远程磁盘阵列响应后,本地磁盘阵列才回复主机I/O完成。这种方法的好处是对主机透明,但为了提高性能必须在两个磁盘阵列之间建立独立的通道。对于读I/O,没有同步的必要。图 9.1显示了同步远程镜像过程。图 9.2异步远程镜像数据流程示意图异步的远程镜像技术虽然不特别要求网络的实时性,但同时引入了本地和异地数据不一致的风险。异步的远程镜像技术同样通过主机系统或者磁盘阵列系统实现,和同步方式不同的是异步系统必须建立同步点或者叫做检查点,在检查点上两方数据是完全一致的。在检查点之后,本地系统依次向远地阵列发送自己收到的I/O,但保留所有I/O请求直到下一个检查点,当远

6、程阵列确认完成到一个检查点之后,本地系统才释放这一批保留的I/O请求。图 9.2显示了异步远程镜像过程。它也是远程容灾的核心技术之一。为了保证不影响主机的业务系统的正常运行,减小数据量,数据复制所采用的基本方法是快照技术。9.2 备份系统概述数据备份是存储系统最重要应用之一,是保护用户数据的关键技术手段。虽然在线的镜像或者冗余技术能够有效的提高数据的可用性,但事实上,对于用户删除或者修改,这些在线冗余系统却无能为力,因此如果说前者那些在线冗余技术在空间维度上能够保证系统数据的可用性,那么备份系统能够进一步在时间维度上的保证数据的可靠性。实际备份有多种实现形式,从不同的角度可以对备份进行不同的分

7、类: 从备份策略来看,可以分为完全备份,增量备份,差分备份。完全备份就是拷贝整个文件系统的数据到备份设备。它最为简单,但有两个不利之处,首先是读写整个文件是一个非常费时的操作,其次每次都会需要大量的存储空间。而增量备份是一种更快、备份数据更少的策略,它在上次全备份基础上仅仅拷贝新生或者修改的文件,但是在恢复时,它需要检索整个备份文件修改链。差量备份即拷贝所有新的数据,这些数据都是上一次完全备份后产生或更新的。增量备份和差量备份的区别在于前者记录上一次备份(完全或者增量备份)以来的更新数据,而后者记录从上次完全备份以来的所有更新数据。按照备份时间来划分,可以分为即时备份和计划备份。前者需要马上开

8、始备份任务,而后者仅在制定的时间到达时启动备份任务。按照备份种类来划分,可以分为系统备份和用户备份。从备份模式来看,备份过程可以分为物理备份和逻辑备份。物理备份又称为“基于块(block-based)的备份”或“基于设备(device-based)的备份”。它忽略文件的结构,把磁盘块直接拷贝到备份介质上,这避免了大量的寻址操作,直接提高了备份的性能。但为了恢复特定的文件,物理备份必须记录文件和目录在磁盘上的组织信息,因此它同样依赖于特定的文件系统。逻辑备份也可以称作“基于文件(file-based)的备份”。它能够立即将文件目录结构,通过遍历目录树拷贝所有整个文件到指定设备,它能够很方便的完成

9、指定文件目录的恢复。根据备份服务器在备份过程中是否可以接收用户响应和数据更新,又可以分为离线备份和在线备份。许多备份程序需要整个文件系统在备份过程中保持文件系统的只读性质,当备份完成时才能进行写或者更新操作,这是一种简单的备份策略,但由于备份窗口相对很大,会降低系统的可用性。相反在线备份运行系统备份数据时的更新操作,但随着带来的就是数据一致性的问题。事实上,在线备份具有很多实现的困难之处,特别是在备份过程中目录的移动,或者文件的创建、增加、更新或者删除。对于在线备份,可以通过增加锁和检测修改机制能够避免一致性问题的产生。但是考虑到备份版本的问题,也经常使用快照技术。快照的基本思想是冻结或者维护

10、一个文件系统当前的只读状态,并记录这个时刻的系统数据。全量快照是实现所有数据的一个完整的只读副本;为了降低快照所占用的存储空间,提出了写前拷贝(COW,Copy-On-Write)和ROW(Redirect on Write,写时重定向)快照技术,写前拷贝基本想法是当正在备份的文件或数据库对象发生改变时,将磁盘上的原有数据块拷贝到一个临时磁盘位置,并使用一个特殊的位图索引标明原有块的位置以及临时存储的相应位置,类似于缓存索引,备份系统检测索引表判断下一个读取的数据块是否在临时位置,如果是,那么将就指导备份进程访问临时磁盘位置的原数据块;当备份完成时,清除位图索引,释放临时存储的数据块,提供给下

11、一次使用。而写时重定向只包括新的写操作数据。快照技术对于前台应用性能的影响较小,每天可以建立多个快照。快照可以在磁盘阵列、文件系统、卷管理器、NAS系统或者备份软件中实现。如图 9.3所示。快照首先要建立一个与主存储系统互为镜像且分离的可寻址的存储实体,备份操作在该存储实体上进行,而不是在主存储系统上进行,从而使备份不至于影响服务器正常运行。当备份结束时,由于主机可能在备份期间对主存储系统数据进行改写,从而使得镜像存储中的内容与主存储中不一致,为了镜像存储与主存储之间快速同步,在备份期间对主存储系统中的数据的改写要进行记录或缓存下来。图 9.3磁盘卷的快照示意图快照是在完全读和增量读之间的权衡

12、。每一个快照是一个完整的文件系统树,它在概念上类似与一个完全备份。然而,它的实现更类似于一个增量备份,因为快照和存档文件系统共享任何一个未被修改过的块;一个快照只需要对发生改变的块进行额外的存储。为了取得合理的性能,存储快照的设备必须有效的支持随机访问。快照主要分为两大类,一种是基于硬件的快照,利用卷映像技术执行磁盘驱动器上的数据拷贝。另一种是基于软件的快照,是通过内存作为缓冲区由软件提供系统磁盘存储的即时数据映像,这种方式存在缓冲区调度的问题。现今主要有四种快照技术:分离镜像(Split-Mirror)、写前拷贝CoW(Copy-on-Write)、重定向写RoW(Redirect on W

13、rite)、日志结构的文件系统。第一种属于基于硬件快照,后三种属于基于软件的快照。为了减小备份任务的存储空间或者传输带宽的需要,许多备份系统可以在数据开始备份时进行压缩,与之相对应的是在恢复过程中需要解压备份数据。9.3 备份系统基本结构一个典型的网络备份系统包括以下几个部件:备份引擎系统,备份源系统,网络和网络接口,备份设备和子系统。备份引擎系统运行主要的备份控制软件,并负责所有的管理功能,包括设备操作、备份计划、介质管理、数据库记录处理以及错误处理等。备份源系统备份计划、介质管理、数据库记录处理以及错误处理等。备份源系统是读取备份数据的软硬件系统,在很多情况下,备份源代理必须理解和记录数据

14、在备份源主机上数据的物理和逻辑结构,例如很多数据库备份源模块需要理解内部的表结构和物理数据存放结构,使得一方面提高备份效率,另一方面在恢复过程中使得数据能够更快地被使用。备份设备和子系统在传统上往往指对于磁带机(库)的管理,目前能够扩展管理基于磁盘的备份系统(虚拟磁带库)。而网络和网络接口部件用户传输管理命令和实际的备份数据。备份系统往往依赖于存储系统的物理和逻辑结构。在主机系统中,备份设备(磁带机等)往往在执行备份任务前挂接到主机系统外部总线接口上,由主机上的备份软件执行具体的备份任务,在完成备份任务再卸载备份设备;在恢复过程中,也同样需要挂载备份设备到主机上,由主机上的恢复软件完成恢复任务

15、。在这种结构中备份软件作为主机软件的组成部分执行备份任务。在中大型机系统中,备份设备(磁带库)在物理上往往直接连接在主机的外部总线上,无需物理的挂载和卸载过程,由备份软件负责何时进行备份或者恢复操作。也就是说,在这种系统中,主机必须参与整个备份/恢复工作,而备份源也往往是主机自己的应用数据(文件系统或者数据库)。在基于SAN的备份系统中,面向备份的磁带库和其他块级存储设备一起连接到光纤通道交换机上,因此在确定备份源和备份目的或者恢复源和恢复目的后,可以直接通过光纤通道从源设备备份或者恢复数据到目的设备,减少了主机的干预,提高了备份的性能和效率,特别对于物理备份完全可以通过光纤交换机或者磁盘阵列

16、完成卷备份,而无需主机干预。并且在这种结构中备份设备可以为多个主机提供备份服务,提高了备份设备的利用效率。在基于LAN的备份系统中,备份系统可能具有独立的备份服务器,可以高效的为更多用户提供备份服务。针对日常产生的大量数据可以使用数据备份系统对关键数据进行备份。备份技术核心就是数据复制和管理。传统备份介质往往是磁带库和光盘库,采用全量、增量或者差量备份技术对数据进行归档。网络存储系统的出现和磁盘系统的性价比的提高,大容量磁盘系统也成为一种重要的备份数据物理平台Ann Chervenak, 1998 #217。由于磁盘具有随机存取的特性,因此可以减小增量备份过程中拷贝量,并且提供更加灵活的手段。

17、文献Dorward, 2002 #218描述了一种用于对数据进行归档的网络存储系统称为Venti。在这个系统中使用数据块内容进行hash产生对于读写操作的唯一标识。这种方法强制使用一次写策略write-once策略,防止意外的或者恶意的破坏数据。除外,数据块的拷贝被关联以减少存储空间的使用和简化客户的使用。Venti可以被用于构造各种存储应用如逻辑备份,物理备份和系统快照。在一个海量网络存储系统中,备份系统往往也具有海量的特征。例如NERSC包含两个运行HPSS(High Performance Storage System)的高带宽归档系统(Archive和Regent)。这个系统包含89个

18、磁带驱动器,8个磁带库(Sun StorageTek 9310 Powerhorns)和15个IBM AIX服务器。每个系统中包括5个数据备份服务器(Mover Server)和一个核心服务器,有60个磁盘处理运行操作系统之外,同时也作为备份/恢复数据过程中磁带库的数据cache。事实上,大部分存储系统提供商都有自己的备份系统利用自己设备的特性提高备份效率,减低备份管理难度,并提供一整套数据保护方案。例如CA公司的BrightStor ARCserve Backup集合了重复数据删除、虚拟化、存储资源操作、集中管理、灾难恢复、加密、压缩等功能到备份系统之中。还有EMC的Networker,IB

19、M的Aggregate备份和恢复系统,Symantec的Netbackup等系统都提供了整体的备份方案。Kabooza Kabooza, 2009 #219在2008年12月24日和2009年1月6日之间调查了全球129个国家4257个PC用户,发现82%的PC用户不进行日常备份,而66%的用户发生过数据丢失。因此,无论对于企业用户还是个人用户而言,备份数据都是一种良好的习惯。正是由于备份是一种重要的数据保护方法,而且备份的对象和软硬件平台也千差万别,因此当前也存在各种各样的备份软件。下表列出了当前开源的备份软件及其支持的平台。表 9.1 无表题PackageLicenseWindowsMac

20、 OS XLinuxGUIFile sizeCurrent versionAMANDABSDYes?YesNo34 mb2.6.1p1Areca BackupGPL v2.0YesYesYesYes4.7 mb7.1.3BackupPCGPL v2.0YesYesYesYesBaculaGPL v2.0YesYesYesYesCobian Backup 8MPL v1.1YesNoNoYes02cpioGNUNoNoYesNoDirSync ProGPLYesYesYesYesDARGNU GPL 3YesYesYesNodumpGNUNoNoYesNoduplicityGPLY

21、esYesYesNoFlyBackGPLNoNoYesYesMondoGPLNoNoYesYesrsyncGPLNoYesYes?tarGPLNoNoYes?TimeVaultLGPLNoNoYesYesVenti?NoNoYesNoZmanda Recovery ManagerGPLYesNoYesNo9.4 典型网络备份系统的设计9.4.1 网络备份系统的结构与业务逻辑网络备份系统是基于网络环境下的数据备份和恢复系统。一方面可以很方便地将源端系统的数据按照客户特定的需要安全地备份到网络存储环境下的某个资源节点上;另一方面可以按照用户的需要(例如源系统数据出现错误、损坏时),方便、安全、完整

22、地将数据恢复到源端系统或用户指定的目的地,这样可以保证用户的数据安全性和可用性。整个系统的工作环境是由多个逻辑上的存储节点通过网络连接构成的网络存储系统,在此系统内由备份管理服务器统一进行资源、备份和恢复的管理。在基于存储网络的备份系统中用户对备份管理服务器提出数据备份或数据恢复的请求,备份管理服务器自动完成请求并反馈完成信息给用户,系统在执行备份和恢复任务的同时完成跟踪、记录和审计等工作。1. 系统的总体架构由于备份系统是基于网络存储的,因此其基本通讯的外部环境依托于TCP/IP网络。我们系统中的各种代理程序和服务器程序都是基于windows平台,数据库是基于Microsoft的access

23、及其ODBC接口协议,以便跨平台的移植。在备份系统中,管理器不直接控制存储介质,存储介质由相应存储资源代理所在的主机操作系统进行管理,备份系统仅仅利用操作系统提供的存储方式进行最终的存储。图 9.4基于存储网络的备份系统的总体架构由图 9.4可以看出整个系统主要由三个部分构成:一个是功能界面,即由用户友好的界面提供各种功能,屏蔽内部逻辑流程;第二个是应用逻辑,主要实现备份管理器的调度,备份引擎,用户代理,备份源代理,资源代理以及资源目的代理等功能;第三是存储模式,也就是对逻辑数据和备份对象数据进行存储。其中逻辑数据是本系统运行过程中产生的数据,它主要存放在备份管理器端的数据库中,体现集中管理的

24、特点;备份对象数据是指备份系统所要备份/恢复的数据,它们放在存储资源端,存放的方式由逻辑数据记录和保存,体现存储介质的特点。2. 软件体系结构图 9.5为网络备份系统的软件系统结构图。从图中可以看出网络备份系统在逻辑上分为五个子系统,各个子系统是通过TCP/IP网络连接起来的。五个子系统分别如下:备份管理器,源备份代理程序,备份目的代理程序,存储资源代理程序,以及备份客户端程序。网络备份系统的核心是备份管理器,它负责在各个代理程序和客户端程序之间进行交互和通讯,因此针对每个代理程序和客户程序,备份管理器也具有相应的子模块与之对应,进行通讯和处理。如图 9.5所示,备份管理器又包括备份引擎,任务

25、调度模块,审计信息处理模块,用户处理模块,存储资源处理模块,以及数据库的各种接口。在此基础上,备份管理器通过核心的全局数据把各个子模块联系起来。备份系统中产生的逻辑数据由备份数据库统一进行存储。备份管理器在逻辑上提供备份用户的日常管理,如创建、删除、停用/启用、改名、修改密码等;备份策略的定义、分配;系统状态的监控;资源的添加、删除、分配;各种任务的查询、暂停、取消;以及审计信息的管理,包括查看和删除。备份客户端程序主要完成普通用户的备份/恢复功能,如备份任务的定义和提交;恢复任务的定义和提交;任务状态查询、审计信息的查询和删除。图 9.5备份系统的软件体系结构备份/恢复引擎主要是具体执行一个

26、备份/恢复任务。存储资源和用户管理模块主要是为备份工作进行前期准备。而备份/恢复任务提交主要把用户的备份任务用统一的格式进行归档,交给备份任务管理器,由备份/恢复引擎根据备份任务具体需求完成备份工作。具体实现时,存储资源代理、恢复源代理和备份目的代理程序集成为一个程序,同时驻留在备份服务器(直接存取存储介质的主机);而备份客户端程序,恢复目的代理,备份源代理集成为一个程序,安装在客户机上。网络备份系统在设计时没有采用普通的C/S模式,也就是备份服务器和存储介质在物理上同一台主机上的方式。其采用的方案是实现C/S/S方式,也就是client,manager server,storage方式,这样

27、真正体现了网络存储的特点,使得备份系统具有更好的可用性,也更利于扩展。 3. 业务逻辑图9.6是网络备份系统的业务逻辑流程图。它表示网络备份系统的基本业务流程。备份管理器分别和存储资源代理、备份客户和备份源代理进行交互处理,通过核心的数据库把各个模块联系起来,构成统一的网络备份系统。图9.6业务逻辑流程注:Error! Reference source not found.中1,2,3,4,5,6表示备份客户提交备份任务的过程以及备份任务的执行过程;恢复任务的提交和执行与备份相同;(1),(2)表示存储资源加入的过程。备份管理器的核心工作是接受用户的备份请求,在适当的时候创建备份引擎线程,启动

28、备份过程,并将备份过程中的审计信息保存到备份数据库中。备份过程由备份引擎启动,又分为备份源和备份目的两个部分。备份源是需要进行备份的客户机,备份目的是要把数据备份到资源节点,它要提供足够的空间存放备份数据。数据的恢复过程是备份过程的逆过程。4. 备份过程分析图9.7备份流程图9.7是一次备份过程的流程图,它简单描述了一次备份过程经过各个模块、子系统的步骤。当一个备份任务满足条件时,备份管理器的备份任务调度线程就创建备份引擎线程,由此备份引擎线程负责备份任务的整个备份过程;备份引擎首先连接备份目的代理,连接建立后,就将备份任务单发给备份目的代理,备份目的代理根据任务单创建备份目的任务节点,并创建

29、备份目的引擎响应线程;然后,备份引擎连接备份源代理,连接建立后,将同样的备份任务单发给备份源代理,备份源代理根据任务单创建备份源的任务节点,并创建备份源引擎响应线程和备份源的任务处理线程;在备份源与备份目的都接到备份表单后,备份源连接备份目的命令端口;备份源与目的端的连接建立后,就将任务ID发给备份目的代理,备份目的代理根据接收的任务ID创建备份目的任务处理线程,并将此线程同对应的备份目的任务节点联系起来;然后,备份源连接备份目的数据端口,数据连接建立后,备份源代理就循环将备份数据发给备份目的代理,同时将备份的审计信息发给备份引擎,由备份引擎写入数据库中;最后,备份完成后,各个工作线程释放使用

30、的资源,主动退出线程。9.4.2 网络备份系统的软件设计1. 备份服务器的详细设计与实现备份管理器是整个网络备份系统的核心模块,由以下几个模块组成:服务器管理模块、备份用户代理模块、核心数据结构维护与智能任务调度模块、备份引擎模块、恢复引擎模块、备份数据库模块。其中备份服务器智能任务调度、备份恢复引擎和备份服务器管理模块是备份服务器的主要功能模块,以下是这几个模块的详细设计和实现。1)备份服务器智能任务调度模块智能任务调度模块负责整个备份服务器程序的正常运转,当一个客户通过客户端程序登录服务器以后,本模块功能将该用户信息记录,加入登录用户队列。当该用户提交一个备份/恢复任务的时候,智能任务调度

31、模块首先检查提交的任务是否可以进行备份/恢复,如果是立即备份/恢复则调用备份/恢复引擎模块处理程序,否则写入数据库中的备份/恢复任务表单。图9.8 智能任务调度模块内部流程图下面是定义的正在运行的备份任务队列、恢复任务队列和已登录用户队列的数据结构:typedef list<Backup_Running_Table*> Backup_TableLIST;typedef list<Restore_Running_Table*> Restore_TableLIST;typedef list<Login_Customer_Table*>Login_Customer

32、List ; 通过在程序中设置一个定时器,定时唤醒任务调度模块,任务调度首先检查数据库的备份/恢复任务预定执行时间是否来到,如果到达预定执行时间,任务调度模块将备份/恢复任务从数据库中取出,加入任务运转队列中,同时修改任务的状态为正在运行。然后调度备份/恢复引擎模块,开始执行备份/恢复数据工作。然后任务调度模块遍历运行队列,检查是否有运行中的任务已经执行完成,如果发现有执行完成的任务,将它们从队列中取出,改变它们的状态为已经完成,写入数据库。2)备份服务器备份/恢复引擎模块备份引擎模块和恢复引擎模块是两个对称过程的实现,它们的实现是类似的,这里具体讨论备份引擎模块的设计实现。图9.9备份过程程

33、序依赖图备份引擎模块的功能是在一个备份/恢复任务需要执行时,智能任务调度模块启动一个新的备份/恢复线程来协调备份源代理程序和备份目的代理程序实现备份任务的完成。同时,备份引擎还负责将备份/恢复过程中的审计信息存入数据库。所以备份引擎的主要功能是和备份源代理程序已经备份目的代理程序通讯,实现备份过程中的数据和信息交互。图9.9是这三个程序模块的依赖关系图:第一步,备份引擎确认数据目的端代理响应;第二步,备份引擎确认源端代理响应;第三步,备份引擎发送备份请求单到源代理;第四步,源代理向目的端代理发起备份请求,开始备份;第五步,源代理向备份引擎发送备份过程中的审计信息。实际上这是一个三方通信协调工作

34、的过程,为了能够实现备份过程中间的同步控制,将三方做了等级划分,备份引擎处于最高等级,备份源代理处于中间等级,备份目的代理处于最低等级。在实际执行备份任务时,所有的控制命令由最高层的备份引擎发出,由备份源代理接收处理,如果是目的端代理需要的命令,则由源代理转发给目的端代理。同样,报告审计信息时,先由目的端代理报告备份源代理,处理后,再由源代理提交给备份引擎。通过这样的方式,简化了网络三方通信,解决了协调一致难以控制的问题。备份引擎线程类CBackupEngineThread使用SOCKET编程来实现网络通信。由 CAsyncSocket类派生两个CEngineSrcSocket、CEngine

35、DestSocket类,在备份引擎线程中定义的CEngineSrcSocket、CEngineDestSocket类型的两个成员变量分别负责和备份源代理、备份目的代理通信。图9.10备份过程流程图3)备份服务器管理模块服务器管理模块主要是提供给管理员对整个网络备份系统进行管理的功能。它负责完成的任务是:用户管理、资源管理、任务查询和审计查询。用户管理能够查询用户的基本信息、增加新用户、更改用户信息和给用户分配资源。资源管理能够对资源信息进行查询、添加新的资源。任务查询能够查询所有的备份任务和恢复任务,并且可以根据任务的不同状态分类查询。针对运行中的备份和恢复任务,提供了暂停任务运行和恢复任务运

36、行的功能。审计查询是查询备份软件系统运行中产生的所有审计信息,也可以根据用户名或者任务ID号进行分类查询。2. 网络备份客户端的设计客户端程序主要完成用户信息的提交与处理、用户备份任务和恢复任务的查询以及客户备份请求和恢复请求的提交,为备份管理器提交请求表单以及存储资源和审计信息的管理与查询。1)通讯机制网络备份客户端采用的通讯机制是对于每一个客户使用一个连接,将命令和数据包合并成一个结构,数据包部分是一个联合结构,不同的命令对应于不同的数据包,如结构PACKET所示。这样程序实现方便,不论客户的请求是查询还是提交任务,客户端与服务器之间的通讯始终是同样大小的数据包。而且,由于客户端主要是提交

37、备份和恢复表单或进行查询工作,数据量都比较小,所以采用一个结构的方式,虽然会浪费一些空间,但是可以最大限度的利用网络带宽,因此效率也比较高。另外,网络传输是基于可靠的TCP协议的,它的正确性将由TCP协议保证,一旦网络发生错误,服务器就会断开连接,服务器端的用户处理线程主动退出。用户可以重新连接服务器。typedef struct UINT master_id; /命令主IDUINT sub_id; /命令子IDunion _recv_packetCUSTOMER_TABLE user_p; /客户表单RESOURCE_TABLE res_p; /资源表单BACKUP_TASK_TABLE b

38、ack_p; /备份任务表单RESTORE_TASK_TABLE restore_p; /恢复任务表单AUDIT_TABLE audit_p; /审计表单recv_packet;PACKET;2)备份客户端的界面设计方案备份与恢复向导在备份向导中,首先由用户选择备份源;接着根据用户选定的文件和目录,动态地生成相应的文件对话框供用户选择;然后调用资源查询,让用户从资源列表中选择备份目的端;最后让用户选择备份的开始时间和备份策略,由客户端程序生成备份的申请表单,发送到服务器端,启动备份引擎调用备份源代理进行数据的备份。在恢复向导中,首先由用户选择恢复模式;接着让用户选择恢复文件;然后根据相应的备份

39、表单生成数据窗口;最后由备份管理器启动恢复引擎,调用恢复源代理恢复数据。文件夹式样的标签控制备份客户除了提交备份和恢复任务以外,还要对相应的任务以及资源进行大量的查询,备份客户端在菜单栏和左侧的树形视图里都提供了相应的选项以供用户选择。一次查询对应一个用户视图。由于整个程序在运行过程中会有多个视图存在,所以客户端程序在设计时选择了多文档视图的方式。为了用户在多视图的切换中能够有最大的方便,我们选择了对每个视图加载一个文件夹式样的标签控制,使得用户获得最大程度的方便快捷。审计信息的维护与资源和任务的查询类似,用户不能越权访问,只能查询与自己任务相关的审计信息。当用户要查询审计信息时,客户端首先对

40、服务器提出备份完成任务和恢复完成任务的查询,服务器将与用户相关的信息返回后,用户在所有自己的任务中进行选择,选择要查询的审计信息。如果用户备份或恢复的只是一个文件,对应的审计信息将只有一天,但是如果用户备份的是目录,那么审计信息会很多。考虑到大量的审计信息会使得网络性能下降,所以只有在用户第一次取该任务的审计信息时,是从数据库中取得,然后客户端程序会将一次任务的审计信息存成一个文件,下次用户再次需要查看时,可以直接从客户端取得。任务运行态的改变用户在查看所提交的任务时,可以任意暂停和继续任务,这种任务状态的改变首先是由客户端发起的,提交服务器端的用户处理模块,然后通过运行时的备份队列来改变任务

41、状态,备份引擎,给备份源代理。 3. 用户处理的设计与实现服务器端程序主要接收用户处理程序客户端的用户请求,根据用户的要求进行相应的处理,然后提交备份管理器进行中心调度工作或提交给数据库写入数据库备份相关的核心数据结构。1)C/S建立连接过程每当服务器接受客户端的一次请求,都要通过相似的流程,如图9.11所示为用户提交一次备份任务的工作流程。如果用户提交恢复请求,则对资源节点进行查询,以便确定目的端的工作状况,从而换为查询已完成的备份任务,因为恢复表单是根据备份表单生成的。2)用户运行态的监控由于用户是否登录的状态是属于运行时状态,而本备份系统在设计数据库中的表单时都为静态,因此在用户表单中只

42、有用户停用与启用的状态表项。为了使得管理员可以监控用户的登录状态,在备份管理器中维护了一个用户队列,这个用户队列的每一个节点就是一个已登录的用户,节点的插入与删除都是在用户处理模块中实现的。一旦用户通过备份客户端登录服务器,就要经服务器的用户处理模块来进行口令的验证,此时,用户处理模块就将此用户的信息作为一个节点插入到用户队列中;当用户退出客户端程序或退出登录时,都会给服务器发出“QUIT”的命令,此时,用户处理模块就将此用户的信息从用户队列中删除。这样,备份管理器通过查询运行时的用户队列,即可以实现用户状态的监控。3)计划任务的实现如果用户提交的备份任务是即时任务,系统就会马上启动备份引擎,

43、调度备份源代理与目的代理,进行一次备份任务,具体流程如图9.11所示。如果用户提交的备份任务是计划任务,用户处理将其插入数据库中,就完成任务。然后由备份调度根据定时器每隔一定时间取出备份表单进行判断,如果到了备份的开始时间,就启动备份引擎,调度备份源代理与目的代理,进行备份任务。如果是周期性备份,由调度根据备份的频率来调整备份的下一次开始时间,并生成新的备份表单,插入数据库中,等待下一次的备份。图9.11提交备份任务的工作流程4)客户端的认证随着网络技术的发展和广泛应用,以及网络的开放性、共享性、互联程度的扩大,网络与信息系统的安全与保密问题显得越来越重要,受到越来越多的关注。网络备份系统作为

44、与网络直接连接、提供数据备份服务的系统,不仅要供局域网(Intranet用户)访问,而且更多的要供远程用户(Internet用户)访问,这对其安全性提出了更高的要求。在设计时我们考虑了其两个层次的安全性的问题。未授权用户或被管理员停用的用户不能访问服务器,普通用户只能访问权限范围内的数据;防止用户认证信息(用户名、口令等)被非法拦截、窃听。第一个层次的安全性问题一般通过在服务器上创建用户以及改变用户属性来解决。管理员根据用户请求,通过管理界面在服务器上创建用户账号,同时设置口令以及其他相关信息。用户访问服务器时需要在客户端输入用户名和口令,被服务器端认证后,才能访问相应的数据。如果用户被管理员

45、停用后,是没有权限访问服务器以及进行备份和恢复工作的,必须要向管理员申请启用用户帐号以后,才可以正常登录工作。图9.12 SSL协议层次结构用户认证的过程需要在客户端和服务器之间通过网络传送用户名和口令,这里存在安全隐患,也就是第二个层次的安全问题。目前的光盘镜像服务器一般使用明文传送用户认证信息,因此非法用户可以通过拦截TCP数据包很容易地盗窃用户名和口令,或者对数据包进行修改从而冒名顶替其他用户。特别是如果管理员口令被盗,将对服务器的安全构成较大的威胁。因此,有必要提供可靠的加密和安全机制。采用安全套接层协议SSL(Secure Sockets Layer)可以解决这个问题,服务器和客户端

46、之间的用户认证信息都通过HTTPS协议采用密文传送。4. 备份源代理的设计方案备份源代理主要是完成数据的收集,与备份目的的数据传输,以及与备份引擎的通讯。在这里着重介绍备份源的设计,以及备份源与备份引擎之间、与备份目的之间的通讯协议。1)备份源的模块分解图9.13备份源模块分解2)源与目的端的数据传输结构备份源与目的之间的文件是以块形式传送,块带有自己的头字节。头字节包括计数域和描述代码。计数域说明了数据块的字节数,描述代码定义了EOF。头字节的结构如表 9.2所示:表 9.2头字节结构描述子 8位字节计数 16位描述代码由在描述字节中的位标记说明,表 9.3是已经指定的代码及其意义。表 9.

47、3 描述代码代码意义128数据块结束64数据块传输终止3)备份源同备份引擎的通讯协议表 9.4 备份源同备份引擎发送和接收的消息编码及其含义消息编号描述字段说明000099备份命令:开始、暂停、继续、停止COMMAND_MSG的范围100199通讯信息:正常或连接错误REPORT_MSG的范围200299备份头信息AUDIT_HEAD_MSG的范围300399备份文件信息AUDIT_BODY_MSG的范围400499备份结束信息AUDIT_END_MSG的范围9.4.3 网络备份系统性能测试在网络备份系统软件完成以后,我们在100M局域网的环境中对网络备份系统进行了性能测试。测试环境是:客户端:Windows2000,CPU赛扬1.7G,内存256M,硬盘迈拓6Y060L0(60G/5400rpm),网卡RealTek8139。服务器端:Windows2000,CPU赛扬1.7G,内存256M,硬盘迈拓6Y060L0(60G/5400rpm),网卡RealTek

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论