欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是:首页  > 科技知识

剖析Windows系统中的VSS存储技术

科普小知识2022-02-11 23:53:53
...

剖析Windows系统中的VSS存储技术

VSS (Volume Shadow copy Service, 卷映射拷贝服务),最初是在Windows Server 2003 SP1中引入的存储技术。它通过在卷管理模块上加入快照功能,在此基础上就可以创建基于时间点(Point-In-Time)的映像(Image),从而实现数据的快速备份和恢复,用户也无需害怕因无意删除数据而造成的困扰,这就是VSS的关键所在。由于VSS所表现的优良特性,因此在Microsfot最新的Vista操作系统中,也加入了该功能。 一、 VSS概述 VSS能够让存储基础设备(比如磁盘、阵列)创建高保真的时间点映像,就是映射拷贝(Shadow Copy)。它可以在多卷、或者单个卷上创建映射拷贝,同时不会影响到系统性能。VSS通过协调业务应用软件、备份程序,以及存储硬件,从而达到创建高保真映射拷贝的能力。它可以应用到以下领域: A、 快速数据备份和恢复; B、 针对制定文件的恢复; C、 磁带备份、测试,以及数据挖掘方面; 由于Microsoft在OS中集成了VSS技术,它将各个处理功能模块化,并针对存储软硬件厂商提供相应的开发接口;开发商只需要关注自己的模块,根据需求设计相关的应用,从而减少了整体设计的难度。就笔者了解,不少软硬件存储公司就采用VSS技术来设计NAS,并以此为基础构建数据保护服务器。 二、 VSS技术原理 VSS整体框架包含了VSS核心模块、请求者(Requestor)、写入者(Writer),以及提供者(Provider)。各个模块之间的关系如下图所示:

剖析Windows系统中的VSS存储技术
其中,各个模块的具体功能如下: 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),它只创建将要被更新的原始数据的拷贝。因此写拷贝创建映射拷贝速度快,但是恢复数据时需要使用原始数据。 三、 VSS处理流程 VSS处理映射拷贝,需要协调各个模块来完成,从而保证创建出高保真的拷贝,进而实现数据的一致性,其具体步骤如下图所示:
剖析Windows系统中的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页,将弹出下图所示的对话框:

剖析Windows系统中的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页,就可以查看和管理映射拷贝了,其显示效果如下图所示:
剖析Windows系统中的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) 易于实施到各种应用中。比如,对于不可避免的备份操作,完全可以只将映射拷贝的数据备份到磁带介质中,从而减少备份的数据量;而对于开发设计人员来说,同一产品在设计阶段会有不同的版本,因此完全可以采用制作不同版本的映射拷贝来完成。 D) 容易快速开发特定存储产品。由于在OS中集成的VSS,同时功能模块化;对于开发商来说,就可以根据行业需求,专注于该模块的开发,只要该模块通过了测试和认证,很快就可以和其他模块整合起来,将产品推向市场。 2) 缺点 A) 设置VSS容量和配置VSS策略,考虑到具体的环境和应用,需要一定的经验才能达到较好的效果。 B) 目前Microsoft提供的缺省的管理应用,在创建映射拷贝时,只有时间点信息,却不能对映射拷贝加入足够的注释信息,不易于区分各个映射拷贝之间的差别。 C) VSS其本质是基于“卷”的快照技术,如果将其应用到数据保护领域,和CDP (Continuous Data Protection,连续数据保护)所描述的那种基于文件的保护相比,其粒度大,因为“卷”是基于“块”,而“文件”可以基于“字节”。 5、2 结论 笔者有幸在Microsoft最新发布的试用版Vista上测试了VSS功能,其工作一切正常,并且和WSS 2003没有差别。据了解,由于Microsoft提供了一整套的解决方案,因此很多软硬件存储厂商都在加入到Microsfot设计的VSS中,并且部分厂商OEM带VSS的操作系统来设计特定应用的NAS服务器,并有不错的市场效果。尽管如此,和开源的Linux和Solaris 10 (它们也都支持和VSS类似的“卷”快照技术)相比,那就是“仁者见仁,智者见智”了。