卷影拷贝服务(Volume Shadow Copy Service,VSS)是Microsoft在Windows Server 2003中开始引入的服务,它能让用户在没有IT专业人员协助的情况下,更轻松地恢复丢失的文件。此外,VSS还提供了更灵活的备份方案。结合了良好的规 划以及最新的备份和恢复技术,卷影拷贝服务将对灾难恢复计划的增强很有帮助。VSS甚至让小企业也有恢复丢失数据的能力。其实,VSS还为大企业提供比基 本工具更多的恢复选项,并帮助其减少数据恢复任务中IT专业人员的数量。
Snapshot,也就是快照技术,在backup时被广泛采用。很早就被应用到阵列和主机中,主要采用Copy on Write的算法。这些详细的技术细节,可以去snia.org上查找。通常,他们都是基于卷,在block级别进行处理。各种大型的array中都有支 持,主机OS上的卷管理器,如VxVM上就可以做快照。
SNIA对快照(Snapshot)的定义是:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。
快照其实是指向保存在存储 设备中的数据的引用标记或指针,说穿了就是数据在某一时刻的状况,其工作原理核心就是是建立一个指针列表,指示读取数据的地址,提供一个瞬时数据的影像,当数据有改变时,再进行复制。
快照大致分为2种,一种叫做即写即拷(copy-on-write)快照,通常也会叫作指针型快照,VSS即属于这一种,另一种叫做分割镜像快照,常叫做 镜像型快照。指针型快照占用空间小,对系统性能影响较小,但如果没有备份而原数据盘坏了,数据就无法恢复了;而镜像型快照实际就是当时数据的全镜像,会对 系统性能造成一定负荷,但即使原数据损坏也不会有太大影响,不过要占用到相等容量的空间。
指针型快照有两种实现方式,一种是在原数据被修改前,先将原数据复制到特定的快照区域(单独的磁盘分区或是在原文件系统占用的区域),然后再修改快照中的 指针,这样可以不改变原文件系统的指针结构,从而减少磁盘碎片,大多数厂商的快照都是这么做的,包括VSS;还有一种是修改的数据继续写到同文件系统的空 余空间,并修改文件系统原来的指针,而不是修改快照的指针,用这种方式的厂商不多,最好的就是NETAPP WAFL了,这取决于其特殊的文件系统结构以及NVRAM良好配合。
镜像型快照使离线访问数据成为可能,如EMC timefiner、IBM Flashcopy、HDS ShadowImage、VERITAS volume manager snapshot等。但也不能一概而论,好比IBM的FlashCopy可以分为前台和后台copy两种方式,前台copy就是镜像型快照,后台copy 就是指针型快照。
实际应用中,快照可以由存储 设备控制器内的软件来实现,也可以通过在OS上的volume manager等第三方软件或是文件系统本身的技术来实现。
所以,VSS属于Snapshot中的一种类型!
VSS是Windows 下 的快照技术,由Requestor, Write, 和Provider组成;主要由驱动程序Volsnap.sys实现,被加到卷管理驱动和文件系统驱动之间,同时集成了COM技术。因此,它不再是单单在 卷级上的block进行处理,而是和各种系统应用相关联,比如SQL,EXCHANGE,AD等等。从而使得在不关机,也不停止应用的情况下,做快照。 VSS被广泛的应用到Windows的备份处理中,除了windows自带的备份应用,还被Veritas、CA、CommVault等厂家采用。
VSS和盘阵的快照很不同,它进行备份时要求有VSS Requestor发令,VERITAS,CA的备份软件不是什么采用,而是VSS把VERITAS,CA当作Requestor,由备份软件来发令。而盘阵不是。
VSS有个好处,可以针对主机上的NTFS共享文件夹进行备份,这是盘阵快照做不到的,它不是针对主机宕机的,是保护存储内的数据和文件的。
盘阵为什么做不到?那是因为它Export出去的就是lun,是基于卷级的,处理的是Block;处理文件系统的细节,是由OS完成。
VSS里面最大的难度是如何锁住各种应用,进行热备份,保证数据的完整性;因为在OS运行时,KERNEL里面各个模块的关联性很大,算是动一发而牵动全身啊!