A) 请求者(Requestor),其主要任务是初始化映射拷贝的创建;由于需要不一样,解决的问题各不相同不同,因此可能设计不同请求者应用。例如,备份应用处理VSS的备份功能,管理应用处理映射拷贝的创建及使用(像WS2003和Vista本身提供的VSS管理软件就是此类),同时可以设计其他功能应用,来处理专门的业务。对于请求者的应用,包括Windows NT备份模块、备份软件提供商设计的备份应用,以及存储软硬件提供商设计的管理应用。
B) 写入者(Writer),其主要任务是保证数据的一致性;因为,如果在创建映射拷贝的过程中,应用软件继续往磁盘写入数据,那么将会出现数据非一致性问题,从而影响该时间点映像的完整性。通过在应用写入者模块进行控制处理,来保证数据的一致性,同时也可以达到创建映射拷贝的高效性。通常,写入者可能是Windows OS里面的各种服务模块,像COM+、DHCP服务、Active Directory服务等,除此之外,数据库也是常见的写入者应用。
C) 提供者(Provider),其主要任务是创建映射拷贝;提供者是创建时间点影响的接口,它可以是基于存储阵列(硬件模式),或者操作系统(软件模式)。VSS有不同的提供者,其层次关系为:最底层是硬件提供者,中间是软件提供者,最上面是系统软件提供者。其中前面两个提供者,是为第三方硬件或者软件厂商提供的。
D) 卷映射拷贝服务(VSS)核心模块,其主要任务是协调各个模块的协作运行,并提供创建卷映射拷贝的方法;VSS提供了两种创建映射拷贝的方法:一种是完全拷贝(Clone/Full Copy/Split Mirror),它会创建当前原始数据(Original Data)的全部拷贝;而另外一种就是写时才拷贝(Copy on Write/Differential Copy),它只创建将要被更新的原始数据的拷贝。因此写拷贝创建映射拷贝速度快,但是恢复数据时需要使用原始数据。
B) 第二步,写入者可能通过XML文件来描述其组件(Components),并定义其恢复(Restore)方法;其中,考虑到数据一致性,写入者需要一些相关处理,比如对于数据库应用来说,关闭所有打开的事务、回滚事务日志、以及将缓冲区中的数据写入等操作,直到所有数据准备好之后,通知VSS可以创建映射拷贝了。
C) 第三步,VSS对于请求的卷,查询是否支持映射拷贝,并由那个提供者提供;因为在请求者管理应用中,会设置卷的映射拷贝属性以及策略等,所以需要进行查询和判断。
图中的红框部分,就是在服务器端创建的三个映射拷贝。Microsoft提供的Shadow Copies of Shared Folders应用,目前包含下面三个功能。选择“View按钮”,可以查看选定映射拷贝的详细信息;选择“Copy按钮”,则会拷贝选中的映射拷贝;而选择“Restore按钮”,将会用图中红框中选中映射拷贝,在VSS服务器上恢复到当前状态。
五、 VSS分析和结论
5、1 VSS分析
1) 优点
A) 加快了备份和恢复的速度。现在的高性能要求,其备份窗口越来越小,更多的是期待7*24全天候服务。因此比起传统的磁带备份,以及D2D备份,VSS的快照技术在备份和恢复的速度上都有明显的优势;同时减少了管理配置的复杂性,从而为企业客户降低了TCO。
B) 提供了个别文件的备份和恢复。用户再也不用害怕因为SHIFT + DEL这样的无意删除而导致的痛苦,无需因为文件的更新而采用“另存为”操作,只需简单地要找到该文件的各个前期版本,并进行恢复就OK。
C) 易于实施到各种应用中。比如,对于不可避免的备份操作,完全可以只将映射拷贝的数据备份到磁带介质中,从而减少备份的数据量;而对于开发设计人员来说,同一产品在设计阶段会有不同的版本,因此完全可以采用制作不同版本的映射拷贝来完成。