Volume Shadow Copy Service 基本原理
分类:windows| 发布时间:2018-08-22 20:16:00
什么是 Volume Shadow Copy Service
Volume Shadow Copy Service 是微软从 Windows XP 开始提供的用于创建一致性的时间点副本(也就是快照)的服务框架。
在 Windows 平台上,Volume Shadow Copy Service 出来之前并没有创建卷快照的标准方法。
Volume Shadow Copy Service 可以生成用于 商业软件,文件系统服务,备份应用,快速还原方案和硬件存储的一致性快照。
Volume Shadow Copy Service 的使用场景
- 创建打开的文件和应用的一致性备份
- 创建共享目录的快照
- 通过硬件 provider 创建可移动的快照
- 快速恢复
Volume Shadow Copy Service 如何工作
Volume Shadow Copy Service 架构
Volume Shadow Copy Servic 由以下组件构成:
- Requestor 请求卷影快照的应用,比如说备份程序。
- Writer 在快照生成过程中将应用的持久数据保存到卷中的模块,这个模块属于相关应用的一个组成部分。一个典型的例子是 SQL Server 数据库的 Writer。
- Provider 用于创建和维护快照的模块。比如由操作系统提供的 system provider 或者硬件厂商提供的 hardware provider。
如何生成快照
总的来说,Requestor,Writer 和 Provider 通过 Volume Shadow Copy Service 协同起来完成快照生成的整个流程。
如下图所示:
- Requestor 向 Volume Shadow Copy Service 列举 writers,获取 Writer 的元数据,并且准备快照的生成。
- Writer 生成 XML 描述的 backup components 给 Volume Shadow Copy Service,并且定义恢复方法。Volume Shadow Copy Service 通知应用指定的 Writer 准备生成快照需要的数据。
- Writer 以恰当的方式准备数据,比如完成所有打开的事务,回滚事务日志,刷新缓存。当这一切准备好后,通知 Volume shadow Copy Service。
- Volume Shadow Copy Service 进入快照的“Commit”阶段。
- Volume Shadow Copy Service 通知 writers 停止数据的操作,并且冻结所有的 I/O 写请求(I/O 读请求依然允许)以便创建快照,这个过程会持续数秒。在这个过程中 Volume Shadow Copy Service 会刷新文件系统的缓存并且冻结文件系统。以确保文件系统的元数据已经写入,并且数据按序写入。
- Volume Shadow Copy Service 通知 provider 创建快照(最多 10 秒)
- Volume Shadow Copy Service 解冻文件系统。当快照生成后,Volume Shadow Copy Service 会将 writers 从非活动状态阶段释放出来并且完成所有排队的 I/O 写请求。
- Volume Shadow Copy Service 轮询 writers 已确保快照生成过程中保持的 I/O 写请求成功完成。
- 如果 writers 的 I/O 写请求没有成功完成(这意味着快照中的数据不是一致的)。快照会被删除并且 Requestor 会收到通知。
- Requestor 可以选择稍后重试这个过程(从第一步重新开始)或者选择管理员稍后再试。
- 如果快照成功创建,Volume Shadow Copy Service 会将快照的相关信息返回给 Requestor。
参考