Volume Shadow Copy Service(VSS)如何工作
学习笔记29:Volume Shadow Copy Service(VSS)如何工作
- 增量和差量需要备份软件支持,备份程序需要对被备份的数据有足够了解,备份程序和应用程序协作保证数据的恢复完整一致性,工作量比较大。比如Exchange的数据库,Exchange自己要暴露出API接口,供NTBackup之类的应用程序调用。
- 备份和恢复的时间漫长。每次做全备都需要若干小时。恢复差量和增量的数据的时候,要先恢复全备份再恢复增量、差量的数据。步骤冗长,容易出错。
- 缺乏与硬件的紧密结合。很多存储的硬件都有snapshot的方案,但是这些硬件是做卷级别的镜像,和应用无关,做出来的东西也不能保证在应用级别是完整的。
- Clone (Full Copy/Split Mirror)全拷贝、镜像拷贝。可以通过软件或者硬件的方式做源卷和目标卷的同步。在同步连接切断之前2边的数据是一致的,在同步连接中断之后目标卷的数据和源数据保持独立,并且是只读的。
- Copy-on-Write (Differential Copy)差量拷贝。这种方法也可以用软件或者硬件的方法实现。当有写操作发生在需要被复制的卷时,被写的那个block会先被复制到另一个存放差量数据地方,同时这个操作会被索引和记录下来。使用源卷里数据和差量数据,这样在逻辑上我们就有一个在之前某个时间点的源卷。这种方法的好处是额外需要的存储空间小,缺点是
- 对源卷有额外的读写操作。
- 在做数据恢复的时候源卷的数据必须还在。
- Data Protection Manager(DPM)
- Windows Backup Service(in Windows 2008)
组件 | 描述 |
Volume Shadow Copy Service
|
核心服务,和各个其他组件交互。 |
Requestor
|
提出开始做卷影复制的程序,一般是备份程序。 |
Writer
|
首先他是应用程序的一部分,用以确保在做卷影复制的时候应用层面的数据是完整一致的。数据库级别的应用一般会有自己的Writer,比如Exchange,SQL,AD等。 |
Provider
|
创建和维护卷影复制的组件。可以是操作系统、硬件或者软件自己实现。 |
Source volume
|
含有需要被备份的数据卷。 |
Storage volume
|
为provider提供存放copy-on-write文件的数据卷 |
- 当备份的应用发起备份请求的时候,系统的VSS服务把这个消息通知给各个writer。Writer在收到这个消息之后,开始为备份做准备,以确保硬盘上的数据的一致性。比如Exchange的writer,会把内存的buff写回到硬盘里,确保硬盘上的数据库和log是完整的。
- Writer也提供其他一些信息,比如应用的名字、图标、包含和排除的文件、恢复策略等等。
- Writer和一个或者多个组件相关联。一个组件是一群文件的集合。比如,Exchange的文件集合包括数据库文件和日志文件等等。这些文件集合是一个整体,必须被同时备份和同时恢复。Writer也提供有关如何按组件恢复数据的信息。
- 如果一个应用没有提供writer,那么只有硬盘上的数据被备份,而内存里面的cache等数据会丢失。这样恢复出来的数据类似于机器突然断电的状态,数据有可能会不一致。相对于非VSS的备份方法,VSS的好处是即使文件正在被打开也可以备份。传统的备份方法被打开的文件是无法再次被备份程序读打开的。
- 在这种设计下,维护数据一致性的工作被从备份程序转移到了应用程序,而应用程序的开发人员对应用程序的数据更加了解,他们知道如何编写Writer来优化卷影复制。
- 硬件实现
- 软件实现
- 操作系统实现。Windows 2003自带了一个基于软件的Provider。
- Requestor,一般是备份程序,要求VSS枚举writers和他们的metadata,为卷影复制做准备工作。
- Writer创建一个XML的备份组件的描述,并定义他们如何被恢复。VSS通知应用程序的Writer为卷影复制做准备。
- Writer开始做准备,比如把内存中的内容写到数据库,把日志中的内容写到数据库等等。做完之后通知VSS。
- VSS发起commit。
- VSS把writer和requestor暂停写操作几秒种,以用来创建一个卷影复制。这个时间不能超过60秒。在此期间,VSS把文件系统在内存中的buff写到硬盘以确保硬盘中文件的一致性。
- VSS告诉requestor花最多10秒的时间来创建卷影复制。
- VSS解冻文件系统。当卷影复制创建好之后,VSS释放处于未激活状态的writer,所有在队列中的读写IO操作被完成。
- VSS确认在卷影复制被创建过程中的IO是成功的,如果失败的话意味着卷影复制是不一致的,VSS通知requestor并且删除卷影复制。Requestor可以选择重试或者通知管理员等操作。
- VSS开始复制卷影复制的数据,在复制完成之后把位置信息返回给Requestor。这一步才是耗时最长的备份数据的过程。
1
分享
收藏
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
46篇文章,11W+人气,0粉丝
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
Ctrl+Enter 发布
发布
取消
推荐专栏更多
![](https://s1.51cto.com/images/blog/201811/28/79d1700ce8f618bd9a42ddf02bfd8ddc.jpg)
MySQL全通晓
共18章 | 张甦
¥51.00 402人订阅
![](https://s1.51cto.com/images/blog/201811/28/629650e188ddde78b213e564c2e9ebff.jpg)
高并发架构之路
共15章 | sery
¥51.00 506人订阅
猜你喜欢
![](https://s1.51cto.com/images/blog/201905/05/f92360e227f9d91cdff7ea95120630ef.png)
![](https://static1.51cto.com/edu/blog/mobile/images/left-qr.jpg)
扫一扫,领取大礼包
1
0
老丫头麦子
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
转载于:https://blog.51cto.com/ityatou/277353
Volume Shadow Copy Service(VSS)如何工作相关推荐
- Win7系统开机提示Flash Helper Service 已停止工作解决办法!
Win7系统开机提示Flash Helper Service 已停止工作 1.点击(控制面板) 2.点击(Flash Player(32位)) 3.点击(全部删除) 4.选中(删除所有站点数据和设置) ...
- Android锁屏状态下service不能正常工作的探究
理想情况下例如音乐播放等service在锁屏状态下都是可以正常播放的. 最近在用android5.0做开发,写了蓝牙4.0的服务和socket的网络请求服务,需求是每隔一段时间自动查询服务器数据,如果 ...
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系...
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
- Windows操作系统的各进程的作用
btwdins.exe是为了微软Windows操作系统支持蓝牙技术的程序. cisvc.exe是微软Windows操作系统自带的程序.它用于监测CIDAEMON.exe内存使用状态,防止可用内存过低问 ...
- Oracle闪回恢复区(fast recovery area,FRA)
Oracle闪回恢复区(fast recovery area,FRA) 闪回恢复区(Fast Recovery Area,FRA)是一块可选的磁盘位置,可以用来存储与恢复相关的文件,例如控制文件和联机 ...
- Symantec云备份
Symantec云备份 赛门铁克备份和归档解决方案: 提供了内部.混合或基于云的部署选项,以便与您的业务需求保持一致 提供本机接口,支持将已启用重复数据删除的备份和归档存储到存储提供商,例如 Nirv ...
- linux照片备份软件,Linux、Unix上5个惊艳开源备份软件
Linux和类Unix系统上5个惊艳的开源备份软件:Bacula.Amanda.Backupninja.Backuppc和UrBackup,这些都是既可以使用在Linux上也可以使用在Unix上面,他 ...
- vSphere 故障排错:针对 Virtual Machine 的故障排查
vSphere 故障排错:针对 Virtual Machine 的故障排查 https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650 ...
- Symantec Backup Exec 2010 Agent For Linux安装
主要功能 使用单个解决方案保护虚拟和物理环境. 通 过与 Microsoft® Volume Shadow Copy Service (VSS) 和 VMware 的 vStorage APIs fo ...
- oracle 8i,9i和10g 的区别
Oracle 9i比8i多了哪些新特性? 简要说: 9i更易于管理. 详细说: 并发集群,8i OPS升级为9i RAC,8i结点间用硬盘交换信息,9i结点间采用高速网线的缓存熔合(C ...
最新文章
- Spring Data JPA(官方文档翻译)
- SEO优化中影响网站关键词排名的因素有哪些?
- iOS 5.1.1 设备不能安装AdHoc问题版本号
- JavaSE进阶学习笔记-目录汇总(待完成)
- Spoonwep破解wep加密无线路由密码
- linux 卸载ninja,Linux下数据库管理工具:DbNinja
- python链表定长翻转_python实现单链表翻转
- 在线文本按列截取工具
- ddbs mysql_ddbs简介
- Unity【Face Cap】- 关于人脸捕捉的解决方案(二)
- 收费版ESX 与免费版ESXi的区别
- ipad MOV转mp4
- Ubuntu20.10系统FreeCAD 0.19编译安装
- 家门口的微醺“buff”——酒分之一开启社区酒吧式便利店次元
- JS中常见的字符串拼接处理
- 倾斜摄影三维实景模型为智慧城市提供全流程可视化支撑
- 我叫mt4 服务器维护,我叫MT48月22日停机维护公告 我叫MT4最新维护内容一览-游侠手游...
- java json utf-8_关于java:如何使JSONObject的toString()像UTF-8字符一样将UTF-8字符编码为unicode?...
- android l 论坛,同步更新魔趣源码Android-L编译
- Windows下的指北针(指南针)--OpenGL版 Compass
热门文章
- 详解BetterZip对压缩包注释的一些相关小功能
- fpcx教程:在Final Cut Pro中添加多语言字幕
- 泰拉瑞亚Terraria for Mac(动作冒险游戏)
- TeamViewer会议功能有什么用?
- Docker 安装 Redis 并配置 Docker 方式的 phpRedisAdmin
- iOS11 tableview左滑到底禁用删除
- Windows server 2016 部署AD(Windows 域)
- 双网卡mode6模式 同时工作 冗余互备
- php js 交互(js调用PHP代码执行)
- 小心费力不讨好!Facebook成立“抄袭小组”压制Snap