卷影副本和卷影副本集
卷影副本是卷的快照,该卷在一个明确定义的瞬间复制该卷上保存的所有数据。 VSS 通过永久性 GUID 标识每个卷影副本。
卷影副本集是同时拍摄的各种卷的卷影副本的集合。 VSS 通过永久性 GUID 标识每个卷影副本集。
特定硬件或软件供应商如何选择实现卷影副本完全由其决定。 创建卷影副本后,系统实际上可以使用卷影复制卷的两个映像:可以常规访问的原始卷:和复制的数据,可通过 VSS API 访问。
这允许同时进行两组活动:
- 系统上的普通应用程序可以使用原始卷快速继续或恢复,从而更新磁盘上的数据。
- 使用 VSS 请求程序 API 访问卷影复制卷的应用程序可以执行备份或类似操作。
不需要为每个文件、目录或卷以相同的方式实现卷影副本。 卷影复制机制的不同实现 (提供程序) 可能使用不同的方法来创建卷影副本。 但是,对于使用 VSS API 的所有应用程序,所有卷影副本应显示相同。
有关默认 Windows 提供程序实现的信息,请参阅 系统提供程序。
默认卷影复制状态
即使文件系统在创建卷影副本之前会刷新所有 I/O 缓冲区,但这无法确保正确处理不完整的 I/O。
因此,假设系统没有启用 VSS 的应用程序,则卷影副本中的数据据说处于 崩溃一致状态。 处于崩溃一致性状态的卷影副本包含的磁盘映像与灾难性系统关闭后存在的映像相同。 所有打开的文件仍将存在于卷上,但不能保证它们没有不完整的 I/O 操作或数据损坏。
虽然故障一致性状态无法完全处理与定义稳定备份集相关的所有问题 (请参阅 常见卷备份问题) ,但它比传统备份操作必须使用的备份集具有几个优势:
- 卷影副本中包含的卷(即使处于崩溃一致性状态)仍包含所有文件。 在没有卷影副本的情况下创建的备份集不会包含备份时打开的所有文件。 备份操作时保持打开状态的文件将从备份中排除。
- 卷的卷影副本是在一个瞬间创建的,而不是通过遍历活动文件系统来创建的,这通常需要更多时间。
系统上不识别 VSS 的应用程序(字处理器、编辑器等)可能会使其文件保持崩溃一致状态。 但是,VSS 感知应用程序 (编写器) 可以协调其操作,以便其文件在卷影副本中的状态定义良好且一致。
卷影复制冻结和解冻
每个 VSS 卷影复制操作的创建都用 冻结 和 解冻 事件括起来,编写者使用这些事件在卷影复制之前将其文件置于稳定状态。
将冻结和解冻事件作为 VSS 模型的一部分意味着:
- 处理 Freeze 事件意味着开发编写器的用户必须在备份周期中具有明确划分的点,以确保停止对磁盘的所有写入操作,并且文件处于定义完善的备份状态。
- 处理 Thaw 事件为编写器提供了一种机制,使写入者能够恢复对磁盘的写入,并清理与卷影副本关联的任何临时文件或其他临时状态信息。
- 冻结和解冻事件之间的默认窗口短 (通常为 60 秒) ;因此,可以最大程度地减少编写器提供的任何服务的实际中断。
- 处理其他事件 (,例如 PrepareForSnapshot,分别) 冻结和解冻事件之前和之后,提供了必要的灵活性,使编写者能够完成复杂的操作以支持卷影副本。