提供程序
提供程序 管理正在运行的卷,并按需创建卷的卷影副本。
为了响应请求方的请求,提供程序生成 COM 事件以向即将发生的卷影副本的应用程序发出信号,然后创建和维护该副本,直到不再需要该副本。
当卷影副本存在时,提供程序会创建一个环境,其中实际上有两个独立的卷副本已复制卷:一个正在运行的磁盘按正常方式使用和更新,另一个副本是磁盘固定且稳定的备份。
虽然默认提供商作为Windows的一部分提供,但其他供应商可以免费提供自己的实现,这些实现针对自己的存储硬件和软件产品/服务进行优化。
从最终用户或备份/还原应用程序开发人员的角度来看,所有提供程序都将具有相同的界面, (请参阅 “选择提供程序 ”) 。
所有提供程序必须能够执行以下操作:
- 截获文件系统与基础大容量存储系统之间的 I/O 请求。
- 捕获和检索卷在卷影复制时的状态,维护磁盘上文件的“时间点”视图,且未反映其状态的部分 I/O 操作。
- 使用此“时间点”视图,) 包含卷影复制数据的虚拟卷,将 (最少地公开到启用了 VSS 的应用程序。
提供程序可以是三种类型之一,具体取决于完成此操作的方式:
系统提供程序
一个卷影复制提供程序(系统提供程序)作为Windows操作系统安装的默认部分提供。 目前,系统提供程序是软件提供程序的特定实例。 但是,这可能会在未来发生变化。
为了维护卷影副本中包含的卷的“时间点”视图,系统提供程序使用复制时写入技术。 自卷影复制创建开始以来,磁盘上已修改 (称为“差异”) 的扇区的副本存储在卷影复制存储区域中。
因此,系统提供程序可以公开实时卷,该卷可以正常写入和读取,并将“差异”应用于实时卷的数据,以有效地公开卷副本的冻结数据。
对于系统提供程序,卷影副本存储区域必须位于 NTFS 卷上。 要进行卷影复制的卷不需要是 NTFS 卷,但系统上必须至少装载一个 NTFS 卷。
软件提供程序
软件卷影复制提供程序在文件系统和卷管理器软件之间的软件层中截获和处理 I/O 请求。 这些提供程序作为用户模式 DLL 组件和至少一个内核模式设备驱动程序实现,通常 (但不一定) 存储筛选器驱动程序。 创建这些卷影副本的工作是在软件中完成的。
软件卷影复制提供程序必须通过访问一组可用于在卷影复制之前准确重新创建卷状态的文件来维护卷的“时间点”视图。 例如,系统提供程序的复制写入技术。
但是,VSS 对软件提供商用来创建和维护卷影副本的技术没有限制,第三方供应商可以自由实施其软件提供程序,因为他们认为合适。
此外,VSS 还支持软件卷影复制提供程序的大部分功能,例如定义时间点、数据同步和刷新、为备份应用程序提供通用接口以及卷影副本的管理。
根据定义,软件提供程序将适用于比硬件提供程序更广泛的存储平台,并且应该能够使用基本磁盘或逻辑卷同样良好。 这种通用性牺牲了在硬件中实现卷影副本可能提供的性能,并且不使用任何特定于供应商的卷捕获或文件镜像功能。
硬件提供程序
硬件卷影复制提供程序通过与硬件存储适配器或控制器结合使用来截获来自硬件级别的文件系统的 I/O 请求。 创建卷影副本的工作由操作系统外部的主机适配器、存储设备或 RAID 控制器执行。
这些提供程序作为与将公开卷影复制数据的硬件通信的用户模式 DLL 组件实现:因此,硬件卷影复制提供程序可能需要调用或创建其他内核模式组件。
硬件提供程序 (LUN) 向整个磁盘或逻辑单元的 VSS 卷影副本公开。 请求者仍处理卷的卷影副本;VSS 在内部处理所有卷到磁盘映射。 驻留在动态磁盘上的卷的硬件提供程序创建的卷影副本具有特定要求:无法将其导入到同一系统中。 必须在第二个系统上创建可传输和导入它们。
虽然硬件卷影复制提供程序使用定义时间点的 VSS 功能,允许数据同步、管理卷影副本,并提供与备份应用程序的通用接口,但 VSS 不会指定硬件提供程序生成和维护卷影副本的基础机制。