请求者
请求者是使用 VSS API (特别是 IVssBackupComponents 接口的任何应用程序,) 请求卷影复制服务的服务来创建和管理一个或多个卷的卷影副本和卷影副本集。
请求者 (的最典型示例,本文档) 中唯一解决的示例是 VSS 感知备份/还原应用程序,该应用程序使用卷影复制的数据作为备份操作的稳定源。
除了启动卷影副本外,备份/恢复请求程序应用程序还与数据生成者通信, (编写器) 来收集有关系统的信息,并指示编写器准备其数据以供备份。
请求者状态
请求者在名为“备份组件文档”的基于 XML 的元数据对象中维护其状态信息。 请求者元数据是必需的,但不足以允许请求者备份和还原文件系统。 其原因如下:
- 在备份操作期间,只有备份中涉及的所有组件的子集(对于备份组件不可选择 ,对于备份上级不可选择,对于已 显式包含在 备份中的备份组件可选择)已将其信息添加到请求者的备份组件文档中。
- 即使对于添加到备份组件文档的那些组件,信息也不完整 - 不包括文件和路径规范。
- 在还原操作期间,可以选择将 隐式包含在 备份中的组件 用于还原 ,因此可以显式包含在还原中。 这将需要使用写入器的编写器元数据文档的存储副本中的信息更新请求者的备份组件文档。
为了允许备份或还原操作的完整规范,VSS API 允许请求者在备份) 期间查询正在运行的编写器的元数据 (,或者在还原) 期间检查存储的编写器元数据 (。 此外,编写器可以在备份或还原操作过程中修改备份组件文档中的组件信息。
使用有关已选择用于备份和还原的组件的信息以及有关组件选择的规则 (有关详细信息,请参阅设置组件组织和使用选择性和逻辑路径) ,请求者可以确定需要备份或还原哪些编写器的文件,以及可在何处找到这些文件。
作为备份的一部分,必须存储请求者和编写者元数据,以便可以在还原中使用。 相反,还原操作需要检索旧的备份组件和编写器元数据文档,以获取有关还原文件的完整说明。
请求者进程间通信
请求者通过请求者 API 中的各种调用生成 COM 事件,从而保持对 VSS 备份和还原操作的控制。 这些调用可以执行以下操作:
- 发出提供程序的请求,例如 IVssBackupComponents::D oSnapshotSet 会导致提供程序创建所选卷的卷影副本。
- 触发编写器返回信息,例如 IVssBackupComponents::GatherWriterMetadata 使请求者能够获取每个编写器的编写器元数据文档。
- 要求编写器准备或处理卷影复制和备份操作的各个阶段,例如 IVssBackupComponents::P repareForBackup 向编写器发出为 I/O 冻结设置的信号。
请求者通过实时或存储的编写器元数据文档以及编写器可以更新的 IVssComponent 接口从编写器接收信息。
备份期间请求者的生命周期
下面是备份请求者生命周期的摘要:
- 实例化和初始化 VSS API 接口。
- 联系编写者并检索其信息。
- 选择要备份的数据。
- 请求提供程序的卷影副本。
- 备份数据。
- 释放接口和卷影副本。
还原期间请求者的生命周期
还原生命周期不需要卷影副本,但仍需要编写器合作:
- 实例化 VSS API 接口。
- 通过加载存储的备份组件文档初始化还原操作的请求程序。
- 检索存储的编写器元数据和备份组件文档。
- 请与编写器联系以初始化合作。
- 检查备份组件文档的编写器更新。
- 还原数据。