本文中内容是参考以下内容整理而成
:
1.学习笔记29:Volume Shadow Copy Service(VSS)如何工作 — Windows Live
4.VSS(卷影拷贝服务)与snapshot优缺点及区别 – TL的专栏 – CSDN博客
5.Volume Shadow Copy Service (Windows)
8.How Volume Shadow Copy Service Works: Data Recovery
1 卷影复制服务(VSS)概念
VSS卷影拷贝服务其实不是一项新技术了,在2003年前后发布的Windows 2003和Windows XP SP1都提供了对VSS的支持。最近几年微软的一线产品对VSS支持的越来越多,包括Exchange,SQL,AD,DPM等等。在Windows 2008中甚至系统的自带的备份工具也换成了VSS版本的1。
卷影拷贝服务(Volume Shadow Copy Service,VSS)是Microsoft在Windows Server 2003中开始引入的服务,它能让用户在没有IT专业人员协助的情况下,更轻松地恢复丢失的文件。此外,VSS还提供了更灵活的备份方案。结合了良好的规划以及最新的备份和恢复技术,卷影拷贝服务将对灾难恢复计划的增强很有帮助。VSS甚至让小企业也有恢复丢失数据的能力。其实,VSS还为大企业提供比基本工具更多的恢复选项,并帮助其减少数据恢复任务中IT专业人员的数量2,4。
VSS 是一套COM API,它部署了这样的架构,让卷备份能够被执行同时系统上的应用程序继续写入卷。请求者、书写器和提供程序它们在VSS架构中通讯来创建和恢复卷影副本。一个卷的影子副本及时地复制了加载在卷上处于正常状态的所有的数据3。
2 VSS解决的问题
VSS被广泛的应用到Windows的备份处理中,除了windows自带的备份应用,还被Veritas、CA、CommVault等厂家采用4。
你可以通过使用VSS,在特定卷上建立数据拷贝时间点;并在将来的某一时刻把数据恢复到任何一个你曾创建的时间点的状态。这两个功能可以帮助客户的计算机恢复意外删除的文件,这样的工作即使一般员工也能轻松完成,并且不需要创建高效备份策略的能力2。
对于IT技术支持人员来说,最常见的请求一般是恢复人为原因造成的数据丢失。用户不经意地存储了有错误信息的文件,不小心删除文件,或是其他的数据意外,都是经常发生的2。
当用户需要重新找回数据的时候,经常需要请技术支持人员拔出备份磁带,进行人工恢复,这个工作相当浪费时间2。
VSS让管理员能够在服务器上发布共享文件夹,在一定的时间间隔内做时间点的备份(在指定时间内最多可以存在65份拷贝)。这让最终用户能够安全地处理文件并随时恢复到早前的版本,而不需要IT部门的干涉2。
3 VSS工作原理
VSS是Windows 下的快照技术,由Requestor, Writer, 和Provider组成,同时集成了COM技术。因此,它不再是单单在卷级上的block进行处理,而是和各种系统应用相关联,比如SQL,EXCHANGE,AD等等。从而使得在不关机,也不停止应用的情况下,做备份4。
完整的VSS解决方案包含以下基础部件6:
VSS 服务 Windows 操作系统的一部分,用于确保其他组件能够正确地通信和协作。
VSS 请求者 请求实际创建卷影复制的软件(或者如导入或者删除它们等其它高级别的操作)。通常是备份程序。诸如Windows Server Backup 工具和System Center Data Protection Manager等都是VSS请求者。非微软的VSS请求者包含几乎所有运行在Windows上的备份软件。
VSS Writer 该组件保证要备份的数据集的一致性。一般作为商业应用程序的一部分提供,如SQL Server® or Exchange Server。多种面向Windows组件的VSS Writer,如注册表,已经内嵌到Windows系统当中。非微软的VSS Writers被包含在需要在备份时保证数据一致性的许多Windows应用当中。
VSS provider 该组件用于创建和管理卷影复制。可以通过软件或硬件方式实现。Windows操作系统集成了一个基于写时拷贝(copy-on-write)技术的VSS Provider。如果使用存储区域网络(SAN),且有相应的硬件Provider,最好是将相应的Provider安装一下,这样可以减轻主机创建和维护卷影复制的负担。
下图是展示了VSS服务如何协调Requester,Writer,Provider来创佳卷影复制的,以及一些微软所提供的基于VSS的解决方案。
图一 VSS 架构及相关解决方案
3.1 创建卷影复制的流程
下图是展示了卷影复制创建的流程。
图二 卷影复制创建流程
要创建一个卷影复制需要,requester,writer,provider要执行一下步骤:
1. Requester请求VSS(卷影复制服务)枚举writers,收集writers的信息,为创建卷影复制做准备工作。
2. 每个Writer创建一个关于组件和需要备份的数据存储的XML描述并将其发送给VSS。VSS将writer的描述提供给requester,再由requester选择要备份的组件。
3. VSS通知所有writer准备创建卷影复制所需要的数据。
4. 每个writer根据情况准备数据,例如完成所有打开的事务,回滚事务日志,刷新缓存。当准备好卷影复制的数据,writer通知VSS。
5. VSS让writers暂时冻结程序的I/O写请求(I/O读请求仍然可用)几秒钟,以用来创建卷影复制。冻结时间不能超过60秒。VSS刷新文件系统的缓存,然后冻结文件系统,用来保证记录的系统元数据的正确性以及将被卷影复制的数据的写入顺序的一致性。
6. VSS通知requester在10秒内创建卷影复制。在这期间,文件系统I/O写请求仍然处于冻结状态。
7. VSS解冻文件系统的I/O写请求。
8. VSS通知writers解冻应用程序的I/O写请求。这时应用程序重又可以向进行卷影复制的磁盘写入数据。
备注 |
如果writers处于冻结状态的时间超过60秒或者providers没有在10秒内完成卷影复制的提交,创建卷影复制的操作会被中止。 |
9. Requestor可以选择重试或者通知管理员稍后重试等操作。
10. VSS在卷影复制成功创建之后把卷影复制的位置信息返回给Requestor。某些情况下,卷影复制可被临时设置成可读写的状态,以便VSS或者其它应用在完成创建卷影复制以前修改其中的内容。待修改完成后,卷影复制被设为只读状态。这个阶段被称之为“自动恢复”(Auto-Recovery),这步是用于取消任何在卷影复制创建之前未完成的进行在要做卷影复制卷上的文件系统或应用程序事务。
备注 |
以上步骤是按照Windows Server 2008的帮助文档翻译而成,个人感觉不及Windows Server 2003中描述的清楚,但本着与时俱进的思想,还是选择了对08版本中的进行了直译,对于03的翻译,可以参考1中所述。J |
4 VSS注意事项
这一服务唯一的缺点是你需要为每一个卷影留出更多的磁盘空间,因为你必须在某处存储这些拷贝。不过,因为VSS使用指针数据,这些拷贝占用的空间要比你想象的小得多,你可以有效地存储这些拷贝。
你还可以将复制与备份工具和VSS配合使用,来将拷贝移动到另一个VSS——其他站点的可用服务器。因此,如果原始服务器在灾难中崩溃了,你的最终用户还是可以访问他们的数据。由于VSS在一定时间间隔内做一次快照,并且在母文件使用时并不锁定它们,因此开放文件锁定并不会影响到复制与备份工具。
除了复制开放文件以外,你还可以在最终用户处理文件的时候备份VSS快照。这一功能通过消除备份窗口、开放文件锁定和其他的障碍,显著地提高了备份能力。
你或许还将遭遇CPU利用问题(在运行备份代理的时候)和LAN利用问题(在跨越网络进行数据备份的时候),不过这并不妨碍最终用户使用文件。
备份VSS快照产生干净的数据镜像以及恢复时间点拷贝的能力。你既可以恢复整个快照,也可以取你所需,或者你还可以使用VSS备份工具来恢复单独的文件和文件夹。
因为你基于时间点来备份文件拷贝,所以可以很轻松的使用复制工具即时地将VSS快照移动到另一台灾难恢复站点中的服务器上,并在那里进行备份,创建脱站的缺省备份。需要将备份保存在脱站位置的公司会发现实施灾难恢复(DR)系统变得相当简单,而且备份系统能平滑地协同工作。
来源URL:http://blog.csdn.net/ziliaobeifun/article/details/6171529