第九章 网络备份系统.docx

上传人:b****8 文档编号:10626678 上传时间:2023-02-22 格式:DOCX 页数:25 大小:368.92KB
下载 相关 举报
第九章 网络备份系统.docx_第1页
第1页 / 共25页
第九章 网络备份系统.docx_第2页
第2页 / 共25页
第九章 网络备份系统.docx_第3页
第3页 / 共25页
第九章 网络备份系统.docx_第4页
第4页 / 共25页
第九章 网络备份系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

第九章 网络备份系统.docx

《第九章 网络备份系统.docx》由会员分享,可在线阅读,更多相关《第九章 网络备份系统.docx(25页珍藏版)》请在冰豆网上搜索。

第九章 网络备份系统.docx

第九章网络备份系统

第9章网络存储备份系统

在计算机系统中,备份是指拷贝特定的数据集到指定的存储设备上,当数据集丢失时,从相应的设备上读取这些额外拷贝重新恢复数据集。

由于备份至少包含有数据集的一个副本,因此不仅需要大量的存储空间进行存放,而且必须对于这些备份数据进行高效的管理。

传统上往往使用磁带库作为数据备份的目标设备,这主要是由于备份数据集往往很少改动,因此特别适合于磁带这种离线的设备。

但是随着存储技术的发展和存储空间的廉价趋势,现有越来越多的存储设备可以作为备份资源。

随着网络技术的发展,通过共享存储系统可以方便的为多个客户端提供高效备份服务,这样能够的优化存储资源的使用效率,并能够更好的管理各种备份数据。

由于备份构成对于存储容量、性能有着巨大的需要,因此大规模存储系统往往必须为多个用户和应用提供备份服务。

本章首先讨论备份系统的原理和实现技术,重点介绍一种基于网络的备份系统的设计结构和实现方法。

本章设计的备份系统主要针对逻辑备份,将从网络备份系统的总体结构,以及设计方案入手,详细讨论基于存储网络的备份系统的软件设计,尤其是备份管理程序和备份客户端与备份源代理(即恢复目的代理)的设计与实现。

9.1复制和镜像技术

从为数据集建立拷贝的角度看,数据复制和镜像技术也是两种特殊的数据备份技术。

在逻辑上数据复制更加强调数据拷贝的过程,而镜像是在时间维度上的保持拷贝和数据集更新的同步。

而它们都是提高存储系统中数据可用性的重要技术,并且在很多方面都采用了相同的技术,如快照技术,因此在讨论普通意义上备份系统之前,先简单分析一下复制和镜像技术。

数据复制可以分为两种级别,一是基于文件系统的备份复制技术,另一种是基于数据块和逻辑卷的复制技术。

前者可以通过文件系统或者数据库的备份系统实现,对重要的文件和数据进行备份,如数据备份;而后者往往基于软硬件结合的方式实现,不必了解数据的含义,例如磁盘镜像。

磁盘镜像是一个基于数据块层的功能,用设备虚拟化的基本形式使两个或者多个磁盘表现为一个逻辑磁盘形式,接受完全相同的数据。

从镜像对中,对磁盘驱动器的相对优先级分析可以分为主/从镜像对,对等镜像对;从操作时间性可以分为同步、异步和半同步镜像;从空间上分为本地磁盘镜像和远程磁盘镜像。

而镜像功能往往通过在I/O路径中增加镜像器实现。

本地磁盘镜像往往结合RAID技术实现,而远程镜像往往涉及更为复杂的结构和技术。

图9.1同步远程镜像数据流程示意图

同步的远程镜像技术的前提是本地和异地间通过高速的通道直接连接,它对网络的稳定性和性能都要很高的要求。

实现同步的远程镜像技术有两种方法,一种是在主机端的文件系统的设备驱动层进行修改,把发给本地磁盘阵列的写I/O请求同时发送给异地的镜像磁盘阵列,当两个写I/O请求都完成后才认为请求完成,这类似于RAID1方式。

另一种方法,就是在磁盘阵列的控制器中进行设计,把发给本地磁盘阵列的写I/O请求同时发送给异地的镜像磁盘阵列。

当远程磁盘阵列响应后,本地磁盘阵列才回复主机I/O完成。

这种方法的好处是对主机透明,但为了提高性能必须在两个磁盘阵列之间建立独立的通道。

对于读I/O,没有同步的必要。

图9.1显示了同步远程镜像过程。

图9.2异步远程镜像数据流程示意图

异步的远程镜像技术虽然不特别要求网络的实时性,但同时引入了本地和异地数据不一致的风险。

异步的远程镜像技术同样通过主机系统或者磁盘阵列系统实现,和同步方式不同的是异步系统必须建立同步点或者叫做检查点,在检查点上两方数据是完全一致的。

在检查点之后,本地系统依次向远地阵列发送自己收到的I/O,但保留所有I/O请求直到下一个检查点,当远程阵列确认完成到一个检查点之后,本地系统才释放这一批保留的I/O请求。

图9.2显示了异步远程镜像过程。

它也是远程容灾的核心技术之一。

为了保证不影响主机的业务系统的正常运行,减小数据量,数据复制所采用的基本方法是快照技术。

9.2备份系统概述

数据备份是存储系统最重要应用之一,是保护用户数据的关键技术手段。

虽然在线的镜像或者冗余技术能够有效的提高数据的可用性,但事实上,对于用户删除或者修改,这些在线冗余系统却无能为力,因此如果说前者那些在线冗余技术在空间维度上能够保证系统数据的可用性,那么备份系统能够进一步在时间维度上的保证数据的可靠性。

实际备份有多种实现形式,从不同的角度可以对备份进行不同的分类:

从备份策略来看,可以分为完全备份,增量备份,差分备份。

完全备份就是拷贝整个文件系统的数据到备份设备。

它最为简单,但有两个不利之处,首先是读写整个文件是一个非常费时的操作,其次每次都会需要大量的存储空间。

而增量备份是一种更快、备份数据更少的策略,它在上次全备份基础上仅仅拷贝新生或者修改的文件,但是在恢复时,它需要检索整个备份文件修改链。

差量备份即拷贝所有新的数据,这些数据都是上一次完全备份后产生或更新的。

增量备份和差量备份的区别在于前者记录上一次备份(完全或者增量备份)以来的更新数据,而后者记录从上次完全备份以来的所有更新数据。

按照备份时间来划分,可以分为即时备份和计划备份。

前者需要马上开始备份任务,而后者仅在制定的时间到达时启动备份任务。

按照备份种类来划分,可以分为系统备份和用户备份。

从备份模式来看,备份过程可以分为物理备份和逻辑备份。

物理备份又称为“基于块(block-based)的备份”或“基于设备(device-based)的备份”。

它忽略文件的结构,把磁盘块直接拷贝到备份介质上,这避免了大量的寻址操作,直接提高了备份的性能。

但为了恢复特定的文件,物理备份必须记录文件和目录在磁盘上的组织信息,因此它同样依赖于特定的文件系统。

逻辑备份也可以称作“基于文件(file-based)的备份”。

它能够立即将文件目录结构,通过遍历目录树拷贝所有整个文件到指定设备,它能够很方便的完成指定文件目录的恢复。

根据备份服务器在备份过程中是否可以接收用户响应和数据更新,又可以分为离线备份和在线备份。

许多备份程序需要整个文件系统在备份过程中保持文件系统的只读性质,当备份完成时才能进行写或者更新操作,这是一种简单的备份策略,但由于备份窗口相对很大,会降低系统的可用性。

相反在线备份运行系统备份数据时的更新操作,但随着带来的就是数据一致性的问题。

事实上,在线备份具有很多实现的困难之处,特别是在备份过程中目录的移动,或者文件的创建、增加、更新或者删除。

对于在线备份,可以通过增加锁和检测修改机制能够避免一致性问题的产生。

但是考虑到备份版本的问题,也经常使用快照技术。

快照的基本思想是冻结或者维护一个文件系统当前的只读状态,并记录这个时刻的系统数据。

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

而写时重定向只包括新的写操作数据。

快照技术对于前台应用性能的影响较小,每天可以建立多个快照。

快照可以在磁盘阵列、文件系统、卷管理器、NAS系统或者备份软件中实现。

如图9.3所示。

快照首先要建立一个与主存储系统互为镜像且分离的可寻址的存储实体,备份操作在该存储实体上进行,而不是在主存储系统上进行,从而使备份不至于影响服务器正常运行。

当备份结束时,由于主机可能在备份期间对主存储系统数据进行改写,从而使得镜像存储中的内容与主存储中不一致,为了镜像存储与主存储之间快速同步,在备份期间对主存储系统中的数据的改写要进行记录或缓存下来。

图9.3磁盘卷的快照示意图

快照是在完全读和增量读之间的权衡。

每一个快照是一个完整的文件系统树,它在概念上类似与一个完全备份。

然而,它的实现更类似于一个增量备份,因为快照和存档文件系统共享任何一个未被修改过的块;一个快照只需要对发生改变的块进行额外的存储。

为了取得合理的性能,存储快照的设备必须有效的支持随机访问。

快照主要分为两大类,一种是基于硬件的快照,利用卷映像技术执行磁盘驱动器上的数据拷贝。

另一种是基于软件的快照,是通过内存作为缓冲区由软件提供系统磁盘存储的即时数据映像,这种方式存在缓冲区调度的问题。

现今主要有四种快照技术:

分离镜像(Split-Mirror)、写前拷贝CoW(Copy-on-Write)、重定向写RoW(RedirectonWrite)、日志结构的文件系统。

第一种属于基于硬件快照,后三种属于基于软件的快照。

为了减小备份任务的存储空间或者传输带宽的需要,许多备份系统可以在数据开始备份时进行压缩,与之相对应的是在恢复过程中需要解压备份数据。

9.3备份系统基本结构

一个典型的网络备份系统包括以下几个部件:

备份引擎系统,备份源系统,网络和网络接口,备份设备和子系统。

备份引擎系统运行主要的备份控制软件,并负责所有的管理功能,包括设备操作、备份计划、介质管理、数据库记录处理以及错误处理等。

备份源系统备份计划、介质管理、数据库记录处理以及错误处理等。

备份源系统是读取备份数据的软硬件系统,在很多情况下,备份源代理必须理解和记录数据在备份源主机上数据的物理和逻辑结构,例如很多数据库备份源模块需要理解内部的表结构和物理数据存放结构,使得一方面提高备份效率,另一方面在恢复过程中使得数据能够更快地被使用。

备份设备和子系统在传统上往往指对于磁带机(库)的管理,目前能够扩展管理基于磁盘的备份系统(虚拟磁带库)。

而网络和网络接口部件用户传输管理命令和实际的备份数据。

备份系统往往依赖于存储系统的物理和逻辑结构。

在主机系统中,备份设备(磁带机等)往往在执行备份任务前挂接到主机系统外部总线接口上,由主机上的备份软件执行具体的备份任务,在完成备份任务再卸载备份设备;在恢复过程中,也同样需要挂载备份设备到主机上,由主机上的恢复软件完成恢复任务。

在这种结构中备份软件作为主机软件的组成部分执行备份任务。

在中大型机系统中,备份设备(磁带库)在物理上往往直接连接在主机的外部总线上,无需物理的挂载和卸载过程,由备份软件负责何时进行备份或者恢复操作。

也就是说,在这种系统中,主机必须参与整个备份/恢复工作,而备份源也往往是主机自己的应用数据(文件系统或者数据库)。

在基于SAN的备份系统中,面向备份的磁带库和其他块级存储设备一起连接到光纤通道交换机上,因此在确定备份源和备份目的或者恢复源和恢复目的后,可以直接通过光纤通道从源设备备份或者恢复数据到目的设备,减少了主机的干预,提高了备份的性能和效率,特别对于物理备份完全可以通过光纤交换机或者磁盘阵列完成卷备份,而无需主机干预。

并且在这种结构中备份设备可以为多个主机提供备份服务,提高了备份设备的利用效率。

在基于LAN的备份系统中,备份系统可能具有独立的备份服务器,可以高效的为更多用户提供备份服务。

针对日常产生的大量数据可以使用数据备份系统对关键数据进行备份。

备份技术核心就是数据复制和管理。

传统备份介质往往是磁带库和光盘库,采用全量、增量或者差量备份技术对数据进行归档。

网络存储系统的出现和磁盘系统的性价比的提高,大容量磁盘系统也成为一种重要的备份数据物理平台{AnnChervenak,1998#217}。

由于磁盘具有随机存取的特性,因此可以减小增量备份过程中拷贝量,并且提供更加灵活的手段。

文献{Dorward,2002#218}描述了一种用于对数据进行归档的网络存储系统称为Venti。

在这个系统中使用数据块内容进行hash产生对于读写操作的唯一标识。

这种方法强制使用一次写策略write-once策略,防止意外的或者恶意的破坏数据。

除外,数据块的拷贝被关联以减少存储空间的使用和简化客户的使用。

Venti可以被用于构造各种存储应用如逻辑备份,物理备份和系统快照。

在一个海量网络存储系统中,备份系统往往也具有海量的特征。

例如NERSC包含两个运行HPSS(HighPerformanceStorageSystem)的高带宽归档系统(Archive和Regent)。

这个系统包含89个磁带驱动器,8个磁带库(SunStorageTek9310Powerhorns)和15个IBMAIX服务器。

每个系统中包括5个数据备份服务器(MoverServer)和一个核心服务器,有60个磁盘处理运行操作系统之外,同时也作为备份/恢复数据过程中磁带库的数据cache。

事实上,大部分存储系统提供商都有自己的备份系统利用自己设备的特性提高备份效率,减低备份管理难度,并提供一整套数据保护方案。

例如CA公司的BrightStorARCserveBackup集合了重复数据删除、虚拟化、存储资源操作、集中管理、灾难恢复、加密、压缩等功能到备份系统之中。

还有EMC的Networker,IBM的Aggregate备份和恢复系统,Symantec的Netbackup等系统都提供了整体的备份方案。

Kabooza{Kabooza,2009#219}在2008年12月24日和2009年1月6日之间调查了全球129个国家4257个PC用户,发现82%的PC用户不进行日常备份,而66%的用户发生过数据丢失。

因此,无论对于企业用户还是个人用户而言,备份数据都是一种良好的习惯。

正是由于备份是一种重要的数据保护方法,而且备份的对象和软硬件平台也千差万别,因此当前也存在各种各样的备份软件。

下表列出了当前开源的备份软件及其支持的平台。

表9.1无表题

Package

License

Windows

MacOSX

Linux

GUI

Filesize

Currentversion

AMANDA

BSD

Yes

?

Yes

No

34mb

2.6.1p1

ArecaBackup

GPLv2.0

Yes

Yes

Yes

Yes

4.7mb

7.1.3

BackupPC

GPLv2.0

Yes

Yes

Yes

Yes

Bacula

GPLv2.0

Yes

Yes

Yes

Yes

CobianBackup8

MPLv1.1

Yes

No

No

Yes

8.4.0.202

cpio

GNU

No

No

Yes

No

DirSyncPro

GPL

Yes

Yes

Yes

Yes

DAR

GNUGPL3

Yes

Yes

Yes

No

dump

GNU

No

No

Yes

No

duplicity

GPL

Yes

Yes

Yes

No

FlyBack

GPL

No

No

Yes

Yes

Mondo

GPL

No

No

Yes

Yes

rsync

GPL

No

Yes

Yes

?

tar

GPL

No

No

Yes

?

TimeVault

LGPL

No

No

Yes

Yes

Venti

?

No

No

Yes

No

ZmandaRecoveryManager

GPL

Yes

No

Yes

No

9.4典型网络备份系统的设计

9.4.1网络备份系统的结构与业务逻辑

网络备份系统是基于网络环境下的数据备份和恢复系统。

一方面可以很方便地将源端系统的数据按照客户特定的需要安全地备份到网络存储环境下的某个资源节点上;另一方面可以按照用户的需要(例如源系统数据出现错误、损坏时),方便、安全、完整地将数据恢复到源端系统或用户指定的目的地,这样可以保证用户的数据安全性和可用性。

整个系统的工作环境是由多个逻辑上的存储节点通过网络连接构成的网络存储系统,在此系统内由备份管理服务器统一进行资源、备份和恢复的管理。

在基于存储网络的备份系统中用户对备份管理服务器提出数据备份或数据恢复的请求,备份管理服务器自动完成请求并反馈完成信息给用户,系统在执行备份和恢复任务的同时完成跟踪、记录和审计等工作。

1.系统的总体架构

由于备份系统是基于网络存储的,因此其基本通讯的外部环境依托于TCP/IP网络。

我们系统中的各种代理程序和服务器程序都是基于windows平台,数据库是基于Microsoft的access及其ODBC接口协议,以便跨平台的移植。

在备份系统中,管理器不直接控制存储介质,存储介质由相应存储资源代理所在的主机操作系统进行管理,备份系统仅仅利用操作系统提供的存储方式进行最终的存储。

图9.4基于存储网络的备份系统的总体架构

由图9.4可以看出整个系统主要由三个部分构成:

一个是功能界面,即由用户友好的界面提供各种功能,屏蔽内部逻辑流程;第二个是应用逻辑,主要实现备份管理器的调度,备份引擎,用户代理,备份源代理,资源代理以及资源目的代理等功能;第三是存储模式,也就是对逻辑数据和备份对象数据进行存储。

其中逻辑数据是本系统运行过程中产生的数据,它主要存放在备份管理器端的数据库中,体现集中管理的特点;备份对象数据是指备份系统所要备份/恢复的数据,它们放在存储资源端,存放的方式由逻辑数据记录和保存,体现存储介质的特点。

2.软件体系结构

图9.5为网络备份系统的软件系统结构图。

从图中可以看出网络备份系统在逻辑上分为五个子系统,各个子系统是通过TCP/IP网络连接起来的。

五个子系统分别如下:

备份管理器,源备份代理程序,备份目的代理程序,存储资源代理程序,以及备份客户端程序。

网络备份系统的核心是备份管理器,它负责在各个代理程序和客户端程序之间进行交互和通讯,因此针对每个代理程序和客户程序,备份管理器也具有相应的子模块与之对应,进行通讯和处理。

如图9.5所示,备份管理器又包括备份引擎,任务调度模块,审计信息处理模块,用户处理模块,存储资源处理模块,以及数据库的各种接口。

在此基础上,备份管理器通过核心的全局数据把各个子模块联系起来。

备份系统中产生的逻辑数据由备份数据库统一进行存储。

备份管理器在逻辑上提供备份用户的日常管理,如创建、删除、停用/启用、改名、修改密码等;备份策略的定义、分配;系统状态的监控;资源的添加、删除、分配;各种任务的查询、暂停、取消;以及审计信息的管理,包括查看和删除。

备份客户端程序主要完成普通用户的备份/恢复功能,如备份任务的定义和提交;恢复任务的定义和提交;任务状态查询、审计信息的查询和删除。

图9.5备份系统的软件体系结构

备份/恢复引擎主要是具体执行一个备份/恢复任务。

存储资源和用户管理模块主要是为备份工作进行前期准备。

而备份/恢复任务提交主要把用户的备份任务用统一的格式进行归档,交给备份任务管理器,由备份/恢复引擎根据备份任务具体需求完成备份工作。

具体实现时,存储资源代理、恢复源代理和备份目的代理程序集成为一个程序,同时驻留在备份服务器(直接存取存储介质的主机);而备份客户端程序,恢复目的代理,备份源代理集成为一个程序,安装在客户机上。

网络备份系统在设计时没有采用普通的C/S模式,也就是备份服务器和存储介质在物理上同一台主机上的方式。

其采用的方案是实现C/S/S方式,也就是client,managerserver,storage方式,这样真正体现了网络存储的特点,使得备份系统具有更好的可用性,也更利于扩展。

3.业务逻辑

图9.6是网络备份系统的业务逻辑流程图。

它表示网络备份系统的基本业务流程。

备份管理器分别和存储资源代理、备份客户和备份源代理进行交互处理,通过核心的数据库把各个模块联系起来,构成统一的网络备份系统。

图9.6业务逻辑流程

注:

错误!

未找到引用源。

中1,2,3,4,5,6表示备份客户提交备份任务的过程以及备份任务的执行过程;恢复任务的提交和执行与备份相同;

(1),

(2)表示存储资源加入的过程。

备份管理器的核心工作是接受用户的备份请求,在适当的时候创建备份引擎线程,启动备份过程,并将备份过程中的审计信息保存到备份数据库中。

备份过程由备份引擎启动,又分为备份源和备份目的两个部分。

备份源是需要进行备份的客户机,备份目的是要把数据备份到资源节点,它要提供足够的空间存放备份数据。

数据的恢复过程是备份过程的逆过程。

4.备份过程分析

图9.7备份流程

图9.7是一次备份过程的流程图,它简单描述了一次备份过程经过各个模块、子系统的步骤。

当一个备份任务满足条件时,备份管理器的备份任务调度线程就创建备份引擎线程,由此备份引擎线程负责备份任务的整个备份过程;备份引擎首先连接备份目的代理,连接建立后,就将备份任务单发给备份目的代理,备份目的代理根据任务单创建备份目的任务节点,并创建备份目的引擎响应线程;然后,备份引擎连接备份源代理,连接建立后,将同样的备份任务单发给备份源代理,备份源代理根据任务单创建备份源的任务节点,并创建备份源引擎响应线程和备份源的任务处理线程;在备份源与备份目的都接到备份表单后,备份源连接备份目的命令端口;备份源与目的端的连接建立后,就将任务ID发给备份目的代理,备份目的代理根据接收的任务ID创建备份目的任务处理线程,并将此线程同对应的备份目的任务节点联系起来;然后,备份源连接备份目的数据端口,数据连接建立后,备份源代理就循环将备份数据发给备份目的代理,同时将备份的审计信息发给备份引擎,由备份引擎写入数据库中;最后,备份完成后,各个工作线程释放使用的资源,主动退出线程。

9.4.2网络备份系统的软件设计

1.备份服务器的详细设计与实现

备份管理器是整个网络备份系统的核心模块,由以下几个模块组成:

服务器管理模块、备份用户代理模块、核心数据结构维护与智能任务调度模块、备份引擎模块、恢复引擎模块、备份数据库模块。

其中备份服务器智能任务调度、备份恢复引擎和备份服务器管理模块是备份服务器的主要功能模块,以下是这几个模块的详细设计和实现。

1)备份服务器智能任务调度模块

智能任务调度模块负责整个备份服务器程序的正常运转,当一个客户通过客户端程序登录服务器以后,本模块功能将该用户信息记录,加入登录用户队列。

当该用户提交一个备份/恢复任务的时候,智能任务调度模块首先检查提交的任务是否可以进行备份/恢复,如果是立即备份/恢复则调用备份/恢复引擎模块处理程序,否则写入数据库中的备份/恢复任务表单。

图9.8智能任务调度模块内部流程图

下面是定义的正在运行的备份任务队列、恢复任务队列和已登录用户队列的数据结构:

typedeflistBackup_TableLIST;

typedeflistRestore_TableLIST;

typedeflistLogin_CustomerList;

通过在程序中设置一个定时器,定时唤醒任务调度模块,任务调度首先检查数据库的备份/恢复任务预定执行时间是否来到,如果到达预定执行时间,任务调度模块将备份/恢复任务从数据库中取出,加入任务运转队列中,同时修改任务的状态为正在运行。

然后调度备份/恢复引擎模块,开始执行备份/恢复数据工作。

然后任务调度模块遍历运行队列,检查是否有运行中的任务已经执行完成,如果发现有执行完成的任务,将它们从队列中取出,改变它们的状态为已经完成,写入数据库。

2)备份服务器备份/恢复引擎模块

备份引擎模块和恢复引擎模块是两个对称过

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1