首页 > 其他分享 >数据备份之数据保护中的稳定点

数据备份之数据保护中的稳定点

时间:2022-11-30 15:14:21浏览次数:40  
标签:稳定 快照 备份 数据备份 数据保护 应用 一致性 数据 consistent

通常在对数据进行备份时,存在以下三种数据保护的一致性:

1、不一致备份(In-consistent backup),表示备份的数据是正在改变的数据;

2、崩溃一致备份(Crash-consistent backup),表示备份的数据类似系统异常宕机时的状态;

3、应用一致备份(Application-consistent backup),表示备份的数据是应用可用的数据;

In-consistent backup不一致备份

什么是数据保护的一致性?

平时我们用copy命令或者在资源管理器中进行文件拷贝,如果拷贝的文件是正在变化修改的,那么我们拷贝出来的文件就是不一致的状态,可以称之为in-consistent。为什么说是不一致的呢?比如说我们要拷贝一个大的文件,而这个文件在变化,那么我们用copy命令拷贝出来的文件头和文件尾的数据块时间戳不一致,这个文件可能是无法打开的。

Crash-consistent backup崩溃一致性备份

Crash-consistent backup的实现一般是采用磁盘快照的方式来实现,在应用没有停止对文件进行写入时,快照时的数据状态就像系统异常宕机时一样,这时并不是所有的IO都一致地写入到磁盘中,但重启后,文件系统、数据库都有崩溃修复功能,大多数情况下可以将数据恢复到一致状态并正常使用。术语“crash-consistent”就是指服务器崩溃、关闭电源或重启瞬间的恢复点。

所以说假设我们把快照中的数据都备份了,然后再把备份的数据都还原,会遇到一些现象,比如我们备份的数据是系统卷,那么重启系统的时候,会看到系统提示操作系统非正常关机等,如果我们备份的是sql server数据卷,那么sql server数据卷恢复以后可能也会看到sql server的恢复状态。

那备份软件如何能在同一时间点对整个数据集进行快照?以Windows为例,可以通过利用微软的VSS服务(Volume Shadow Copy Service)来实现,当某一个时刻,要对某个卷做一个vss快照,vss会通知该卷上的文件系统,将内存中的数据写入到磁盘中,这个操作称为flush,这样就保证了文件系统数据的一致性。同时,vss还会阻止文件系统的写入数据操作,即正在做快照的这个时候不允许对改卷进行任何写操作,以保证卷的一致性,可以称之为freeze。这整个过程持续的时间很短,通常在几秒之内。vss在这几秒之内迅速产生了一个该卷的快照,即原卷的一个镜像。快照制作结束以后,无论原卷怎么变化,快照的内容不会再发生变化。

当我们从这个快照中再去拷贝文件的时候,这些数据始终是出于一致的状态,称之为consistent,今天去拷贝还是明天去拷贝,都是快照时刻的数据。是怎么做到的呢?vss使用了一种写时复制的机制(cow),来保证数据状态的一致。

但是这种状态有多一致呢?

从vss参与的组件可以知道,只有文件系统本身参与了,一些应用比如SQLServer等并没有参与,所以说假设我们把快照中的数据都备份了,然后再把备份的数据都还原,SQLServer大概率是可以正常启动的,但在运气不好的时候可能是无法启动的。

我们称这种一致状态为crash-consistent状态。

Crash-consistent对于保证被保护数据尽量在同一个时间点上,已经是一种很大的进步了,但是对于最稳妥的数据保护来说这还不够,还需要支持更高级别的一致性,即应用级别的一致性,这就是application-consistent。

Application-consistent backup应用一致性备份

与crash consistent不同,application-consistent备份是在进行底层快照时,先让数据库或应用文件处于不改变的状态,比如对于数据库这个应用,在关闭状态下的数据肯定是应用一致性的。如果业务上允许数据库长时间关闭,直接拷贝这些数据库文件就是一种应用一致性备份;如果业务只允许短时间关库,对这些数据文件快照后立即打开库,然后拷贝快照数据,也是应用一致性备份。这两种场景对于数据库这种应用来说做的都是冷备份。

而现实场景中,数据库往往需要热备份,即在不停止数据库的情况进行备份,那么要保证应用一致性,方式一是通过数据库或应用提供的接口或工具进行备份,方式二是调用数据库静默后进行快照,再备份快照文件。应用一致性的保证,一般都需要应用本身参与,例如备份接口或静默指令。再拿windows举例,vss可以实现上述方式二的应用一致性备份,且很简单,可以通知系统中的那些支持vss writer机制的应用比如sql,exchange等去flush数据并处于类似静默状态,使应用本身在快照时保持自己的一致状态,这样就确保了备份下来的数据一定是能够被应用正常使用的。

Crash-consistent vs Application-consistent backup
image

需要重点提到的就是application consistent与crash consistent在进行恢复时的工作量。对于crash consistent,由于应用数据可能不一致,那就必须先将数据恢复到一致,这个过程在不同数据库产品之间的操作是不同。但application consistent可以保证应用数据一致,因为vss在捕获快照之前,内存中的任务和挂起的I/O都已交到磁盘。在应用程序数据的灾难恢复场景中,与应用程序服务器(尤其是数据库服务器)的crash consistent备份相比,application consistent 备份具备显著的优势。

总结

企业在进行数据备份的时候,如果不深入考虑crash consistent和application consistent备份类型的差异,可能会导致意外的备份结果,甚至是数据损坏。crash consistent backup无法获取内存中正在发生改变的应用数据,而application consistent backup是知道这些临时数据,允许待事务一致性后正确地备份,从而有效实现应用程序数据的一致。

纵观当前备份市场的产品,CDM(Copy Data Management副本数据管理)是具备原生的、天然的application consistent属性。Gartner给出CDM的定义是:它从生产环境通过快照技术获取有应用一致性保证的数据,在非生产存储上生成“黄金副本”(Golden Image),这个“黄金副本”数据格式是原始的磁盘格式,可再虚拟化成多个副本直接挂载给服务器,分别用于备份恢复、容灾或开发测试。

标签:稳定,快照,备份,数据备份,数据保护,应用,一致性,数据,consistent
From: https://www.cnblogs.com/wacxpan/p/16938507.html

相关文章

  • 通州大兴物理机租用供应线路稳定,延迟低
    专家们正在把关于潜在威胁的数据联系起来,以保护一个庞大的网络免受网络犯罪的威胁。这听起来很像一个公开可用的分布式信息分类账。然而,尽管“威胁情报”是一项崇高的追求......
  • 通州大兴物理机托管,线路稳定,延迟低
    它是一个能在其轨道上阻止黑客等类似行为的系统,但目前威胁情报的问题意味着,它没有充分发挥自己的能力,因此不能发挥它应有的效力。“不幸的是,这个行业仍然存在许多问题,”Sc......
  • 丰台顺义物理机托管,线路稳定,延迟低
    初步结论:现在我们在做压力测试时,就有了标准,如果你的服务器一秒能处理115.7个请求,就可以承受500万PV/每天。如果你的服务器一秒能处理23.1个请求,就可以承受100万PV/每天。......
  • 丰台顺义物理机租用供应线路稳定,延迟低
    个别机房有时候会出现大面积风暴式的无故心跳异常,同时网络ping包异常,但上联网络设备ping包正常,这种误报,一般根据具体case具体进行针对性的分析。如根据监控每个机房的上报......
  • 西城朝阳物理机托管,线路稳定,延迟低
    么我们本来可以选择单线路的服务器,但是双线服务器的优势一般在于双IP,并且对于一个城市来说,宽带有电信、联通、移动不同的。就拿深圳这个城市来说,电信、联通、移动用户都有,......
  • 西城朝阳物理机租用供应线路稳定,延迟低
    硬盘的大小要根据网站的数据大小决定,在选择时应该考虑到剩余空间。另外硬盘的I/O读取速度直接决定文件读取的快慢,服务器硬盘的读取速度比其他网站快很多,一般情况下都够用。......
  • 【云原生】无VIP稳定性和可扩展性更强的k8s高可用方案讲解与实战操作
    目录一、概述二、架构三、开始部署1)节点信息2)前期准备(所有节点)1、配置hosts2、配置互信3、时间同步4、关闭防火墙5、禁用SELinux6、关闭swap7、设置bridge-nf-call-iptable......
  • 拓端tecdat|R语言代写周氏检验(Chow test) 检验回归中结构不稳定性的虚拟变量的替代方
    全球化时代快速增长的经济体之一是埃塞俄比亚经济。在低收入国家中,它已成为在国内生产总值(GDP)中实现两位数增长率的少数几个国家之一。然而,关于两位数的增长率存在很多争论,......
  • .NET6之MiniAPI(十六):数据保护
    对于web,安全是一个永久的话题,所以ASP.NETCore数据保护提供了一个简单,易用的加密API,可以用来保护数据,密钥管理和轮换。ASP.NETCore的数据保护是根据本机的一个ke......
  • .NET6之MiniAPI(十六):数据保护
    对于web,安全是一个永久的话题,所以ASP.NETCore数据保护提供了一个简单,易用的加密API,可以用来保护数据,密钥管理和轮换。ASP.NETCore的数据保护是根据本机的一个ke......