剖析Windows Vista系统的存储技术( 二 )



图-2 VSS处理流程图
A) 第一步,请求者让VSS枚举所在卷上的写入者应用,并收集元数据(Metadata) 。
B) 第二步,写入者可能通过XML文件来描述其组件(Components),并定义其恢复(Restore)方法;其中,考虑到数据一致性,写入者需要一些相关处理,比如对于数据库应用来说,关闭所有打开的事务、回滚事务日志、以及将缓冲区中的数据写入等操作,直到所有数据准备好之后,通知VSS可以创建映射拷贝了 。
C) 第三步,VSS对于请求的卷,查询是否支持映射拷贝,并由那个提供者提供;因为在请求者管理应用中,会设置卷的映射拷贝属性以及策略等,所以需要进行查询和判断 。
D) 第四步,请求者通知VSS,要求在该卷上创建映射拷贝 。
E) 第五步,VSS锁住写入者应用,暂时不让写入新数据(在某些应用情况下,读操作请求是可以允许的) 。
F) 第六步,VSS让提供者在磁盘上创建当前状态的映射拷贝(创建映射拷贝的速度,和创建的方法以及提供者的实现相关) 。
G) 第七步,创建映射拷贝完毕,VSS解锁写入者应用;然后写入者就可以处理队列中的写请求,接着VSS会查询是否这些写请求在创建映射拷贝期间被保证在队列中,如果是,则说明数据是一致的,否则说明可能数据一致性有问题,并做相应处理 。
四、 VSS使用实例
4、1服务器端设置
目前,在WS 2003 SP1或者某些测试版Vista上,直接有VSS模块 。以下是笔者在一台名为VSS-SERVER的服务器(装WS2003)上,配置G盘的VSS 。先在“我的电脑”->“G盘”->“属性”,选择“Shadow CopIEs” Tab页,将弹出下图所示的对话框:

图-3 VSS服务器端设置
然后选择卷(G盘),按“Enable按钮”,完毕后显示显示效果为图中“1,使能VSS” 注释部分 。此时可以按“Disable按钮”禁止某个卷的VSS功能,也可以按“Settings”设置VSS的策略(Schedule) 。
接着按下面的“Create Now按钮”,就可以生成各个时间点的映射拷贝,本实例创建了三个映射拷贝,显示结果如图中“2,创建映射拷贝”注释部分 。当然,也可以选择“Delete Now按钮”删除所选择的映射拷贝 。
创建映射拷贝完毕,在“我的电脑”->“G盘”->“共享”,将整个G盘进行共享,并保证客户端能够访问服务器 。
4、2客户端配置
为了让客户端能够访问服务器端的VSS功能,也就是Shadow Copies of Shared Folders功能,需要下载ShadowCopyClient.msi安装包 。通过该安装包提供的服务,客户端就可以通过共享,来访问VSS服务器上的映射拷贝,并实现一部分管理操作 。
安装完毕后,在客户端访问VSS-SERVER服务器,就可以看到设置了VSS的共享G盘,然后选择“G盘”->“属性”,选择“Previous Versions”TAB页,就可以查看和管理映射拷贝了,其显示效果如下图所示:

图-4 VSS客户端配置
图中的红框部分,就是在服务器端创建的三个映射拷贝 。Microsoft提供的Shadow Copies of Shared Folders应用,目前包含下面三个功能 。选择“View按钮”,可以查看选定映射拷贝的详细信息;选择“Copy按钮”,则会拷贝选中的映射拷贝;而选择“Restore按钮”,将会用图中红框中选中映射拷贝,在VSS服务器上恢复到当前状态 。
五、 VSS分析和结论
5、1 VSS分析
1) 优点
A) 加快了备份和恢复的速度 。现在的高性能要求,其备份窗口越来越小,更多的是期待7*24全天候服务 。因此比起传统的磁带备份,以及D2D备份,VSS的快照技术在备份和恢复的速度上都有明显的优势;同时减少了管理配置的复杂性,从而为企业客户降低了TCO 。
B) 提供了个别文件的备份和恢复 。用户再也不用害怕因为SHIFTDEL这样的无意删除而导致的痛苦,无需因为文件的更新而采用“另存为”操作,只需简单地要找到该文件的各个前期版本,并进行恢复就OK 。

推荐阅读