数据备份,数据保护中的稳定点(in-consistent, crash-consistent, application-consistent)

29 篇文章 0 订阅
19 篇文章 1 订阅

什么是数据保护的稳定点?

比如平时我们用copy命令或者在资源管理器中进行文件拷贝,如果拷贝的文件是正在变化修改的,那么我们拷贝出来的文件就是一个不稳定的状态,可以称之为in-consistent。为什么说是不稳定的呢?比如说我们要拷贝一个目录下的所有文件,假设这些文件都在被改变,那么我们用copy命令拷贝出来的这些文件的时间戳会是不一样的,copy命令只管拷贝。

那么怎样才能做到一个稳定点呢?

在Window上,微软提供了一种VSS机制,关于vss的细节可以参考vss的官方文档或者百度一下。vss的基本原理就是在某一个时刻,比如此时你要对某个卷做一个vss快照,vss会通知该卷上的文件系统,讲内存中的数据写入到磁盘中,可以称之为flush,这样就保证了文件系统的数据的一致性。同时,vss还会阻止文件系统的写入数据操作,即正在做快照的这个时候不允许对改卷进行任何写操作,以保证卷的稳定性,可以称之为freeze。这整个过程持续的时间很短,通常在几秒之内。vss在这几秒之内迅速产生了一个该卷的快照,即原卷的一个镜像。快照制作结束以后,无论原卷怎么变化,快照的内容是不会再发生变化的了。

当我们从这个快照中再去拷贝文件的时候,这些数据始终是出于一致的状态,consistent,今天去拷贝还是明天去拷贝,都是那些数据,是怎么做到的呢?vss使用了一种写时复制的机制(cow),可以参考相关文档获取详细信息。

但是这种状态有多稳定呢?

从vss参与的组件可以知道,只有文件系统本身参与了,一些应用比如sql等并没有参与,所以说假设我们把快照中的数据都备份了,然后再把备份的数据都还原,会遇到一些现象,比如我们备份的数据是系统卷,那么重启系统的时候,会看到系统提示操作系统非正常关机等,如果我们备份的是sql server数据卷,那么sql server数据卷恢复以后可能也会看到sql server的恢复状态。

所以我们称这种稳定状态为crash-consistent状态。

crash-consistent状态已经是一种巨大的进步了,利用vss可以做到,在Linux上,lvm卷后来也支持了快照功能,也可以做到crash-consistent。

但是这还不够,vss还可以支持另外一种级别的稳定点,应用级别的稳定点,在做vss快照的时候,vss有一种机制,可以通知系统中的那些支持vss writer机制的应用比如sql,exchange等去flush数据,使应用本身在快照中保持自己的稳定状态,这就是application-consistent。

Windows上可以使用vss能够做到application-consistent,Linux上就比较难了,Linux上并没有vss完全一样的机制,而且目前也只有lvm支持快照功能,所以Linux上的application-consistent还有一段路要走。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simple-Soft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值