数据不一致 VSS是如何解决的?
消息来源:baojiabao.com 作者: 发布时间:2024-05-05
VSS(VolumeShadow Service)是微软提供的对应用进行备份恢复的一套框架,主要实现备份、恢复和数据一致性保护,在整体流程中,可分为备份和恢复两个主要流程。
VSS介绍和场景
VSS能够让存储基设备(比如磁盘、阵列)创建高保真的时间点映像副本,就是映射拷贝(Shadow Copy)。它可以在多卷、或者单个卷上创建映射拷贝,同时不会影响到系统性能。VSS通过协调业务应用软件、备份程序,以及存储硬件,从而达到创建高保真映射拷贝的能力。VSS可以应用到以下领域:
A、 快速数据备份和恢复;
B、 针对制定文件的恢复;
C、 磁带备份、测试和数据挖掘方面;
由于Microsoft在OS中集成了VSS技术,它将各个处理功能模块化,并针对存储软硬件厂商提供相应的开发界面;开发商只需要关注自己的模块,根据需求设计相关的应用,从而减少了整体设计的难度。
VSS组件描述
VSS整体框架包含了VSS核心模块、请求者(Requestor)、写入者(Writer),以及提供者(Provider)。各个模块之间的关系如下图所示:
请求者(Requestor)
其主要任务是初始化映射拷贝的创建。由于需求不同,请求者解决的问题各不相同不同,在实际应用中,可能设计不同请求者应用。例如,备份应用处理VSS的备份功能,管理应用处理映射拷贝的创建和使用(像WS2003和Vista本身提供的VSS管理软件就是此类),同时,也可以设计其他功能应用,来处理专门的业务。如Windows NT备份模块、备份软件提供商设计的备份应用,存储软硬件提供商设计的管理应用等。
写入者(Writers)
其主要任务是保证数据的一致性。因为,如果在创建映射拷贝的过程中,应用软件继续往磁盘写入数据,那么将会出现数据非一致性问题,从而影响该时间点映像的完整性。通过在应用写入者模块进行控制处理,来保证数据的一致性,同时也可以达到创建映射拷贝的高效性。
通常,写入者可能是Windows OS里面的各种服务模块,像COM+、DHCP服务、Active Directory服务等,除此之外,数据库也是常见的写入者应用。
提供者(Provider)
其主要任务是创建映射拷贝。提供者是创建时间点影响的界面,它可以是基于存储阵列(硬件模式),或者操作系统(软件模式)。VSS有不同的提供者,最底层是硬件提供者,中间是软件提供者,最上面是系统软件提供者。其中,前面两个提供者是由第三方硬件或者软件厂商提供的。
VSS服务器(VSS Server)
主要任务是协调各个模块的协作运行,并提供创建卷映射拷贝的方法。VSS提供了两种创建映射拷贝的方法:
一种是完全拷贝(Clone/Full Copy/Split Mirror),它会创建当前原始数据(Original Data)的全部拷贝;
另外一种是写时拷贝/差量拷贝(Copy on Write/Differential Copy),它只创建将要被更新的原始数据的拷贝。
因此写拷贝创建映射拷贝速度快,但是恢复数据时需要使用原始数据。
数据卷(Volumes)
数据卷是指需要备份的数据卷,以及为Writer提供Copy-on-Write文件的数据卷。
VSS创建流程
首先由请求者让VSS枚举所在卷上的写入者应用,并收集元数据(Metadata)。
写入者可能通过XML文件来描述其组件,并定义其恢复方法。其中,考虑到数据一致性,写入者需要一些相关处理,比如对于数据库应用来说,关闭所有打开的事务、回滚事务日志、以及将缓冲区中的数据写入下盘等操作,直到所有数据准备好之后,通知VSS可以创建映射拷贝了。
VSS对于请求的卷,查询是否支持映射拷贝,并由那个提供者提供(硬件还是软件);因为在请求者管理应用中,会设置卷的映射拷贝属性以及策略等,所以需要进行查询和判断。
请求者通知VSS,要求在该卷上创建映射拷贝。
VSS锁住写入者应用,暂时不让写入新数据(在某些应用情况下,读操作请求是可以允许的)。
VSS让提供者在磁盘上创建当前状态的映射拷贝(创建映射拷贝的速度,和创建的方法以及提供者的实现相关)。
创建映射拷贝完毕,VSS解锁写入者应用。然后写入者就可以处理队列中的写请求,接着VSS会查询是否这些写请求在创建映射拷贝期间被保证在队列中,如果是,则说明数据是一致的,否则说明可能数据一致性有问题,并做相应处理。
备份Agent需要和Provider的CommitSnapshots方法进行配合保证快照数据是应用一致性的,并等待VSSServer调用阵列操作(远程复制、快照等)实现数据备份。因为应用刷缓存、冻结IO都是由其对应的Writer进行的,所以在整个执行过程中还必须有对应应用的Writer参与刷缓存、冻结IO。
备份Agent对VSSServer提供Freeze和Thaw界面,VSS框架本身是没有Freeze和Thaw对应界面的。备份Agent封装的两个方法主要功能如下:
Freeze: 触发VSS备份流程,然后在Provider的CommitSnapshots方法中挂起(等待刷缓存、冻结IO等操作)。
Thaw: 解除Provider的CommitSnapshots方法的挂起,让备份流程执行完毕。
当VSSServer执行保护组时,VSSServer先调用备份Agent的Freeze界面保证快照数据是应用一致性,然后Agent的Thaw界面执行阵列操作(远程复制、快照等),通知备份完成。
温馨提示:
求知若渴, 虚心若愚
相关文章
- 中兴受美国制裁事件 被罚了20亿美元过程事件始末 中兴被制裁后公司现状
2023-11-02 22:12:46
- B站怎么炸崩了哔哩哔哩服务器今日怎么又炸挂了?技术团队公开早先原因
2023-03-06 19:05:55
- 苹果iPhoneXS/XR手机电池容量续航最强?答案揭晓
2023-02-19 15:09:54
- 华为荣耀两款机型起内讧:荣耀Play官方价格同价同配该如何选?
2023-02-17 23:21:27
- google谷歌原生系统Pixel3 XL/4/5/6 pro手机价格:刘海屏设计顶配版曾卖6900元
2023-02-17 18:58:09
- 科大讯飞同传同声翻译软件造假 浮夸不能只罚酒三杯
2023-02-17 18:46:15
- 华为mate20pro系列手机首发上市日期价格,屏幕和电池参数配置对比
2023-02-17 18:42:49
- 小米MAX4手机上市日期首发价格 骁龙720打造大屏标准
2023-02-17 18:37:22
- 武汉弘芯遣散!结局是总投资1280亿项目烂尾 光刻机抵押换钱
2023-02-16 15:53:18
- 谷歌GoogleDrive网云盘下载改名“GoogleOne” 容量提升价格优惠
2023-02-16 13:34:45
- 巴斯夫将裁员6000人 众化工巨头裁员潮再度引发关注
2023-02-13 16:49:06
- 人手不足 韵达快递客服回应大量包裹派送异常没有收到
2023-02-07 15:25:20
- 资本微念与李子柒销声匿迹谁赢? 微念公司退出子柒文化股东
2023-02-02 09:24:38
- 三星GalaxyS8 S9 S10系统恢复出厂设置一直卡在正在检查更新怎么办
2023-01-24 10:10:02
- 华为Mate50 RS保时捷最新款顶级手机2022多少钱?1.2万元售价外观图片吊打iPhone14
2023-01-06 20:27:09
- 芯片常见的CPU芯片封装方式 QFP和QFN封装的区别?
2022-12-02 17:25:17
- 华为暂缓招聘停止社招了吗?官方回应来了
2022-11-19 11:53:50
- 热血江湖手游:长枪铁甲 刚猛热血 正派枪客全攻略技能介绍大全
2022-11-16 16:59:09
- 东京把玩了尼康微单相机Z7 尼康Z7现在卖多少钱?
2022-10-22 15:21:55
- 苹果iPhone手机灵动岛大热:安卓灵动岛App应用下载安装量超100万次
2022-10-03 22:13:45