0.2 运维利器 行云管家之磁盘快照原理应用及实现

磁盘快照原理与应用

谈磁盘快照,我们接触较多的可能是瞬时备份的功能,但快照技术还在"实现快速恢复"和"应用测试"领域发挥着极大的作用。只要应用于在线系统,那么快照就成为一个不可或缺的功能。

谈到备份,我们都知道要备份的是数据。那什么是数据呢?

术语

I/O --Input/Output,即输入/输出,通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。

RPO--recovery point objectives恢复点目标,RPO是实时地复制您业务信息中的每一个数据恢复事务,短时间的RPO能够更少地丢失数据。

RTO——recovery time objectives恢复时间目标,
RTO是您能够更加快速恢复数据存储和使得机器正常运行的时间。

DBA--数据库管理员(Database administrator)

什么是数据

0.2 运维利器 行云管家之磁盘快照原理应用及实现_第1张图片
image

题图by: Internet

信息的重要性,不言而喻,如果是失去了物质,仅仅是客观的消逝。但是如果失去了信息,那么一切都将消逝。所以我们需要想出一切办法来使这些信息得以保存。要把一种逻辑刺激保存下来,所需的只不过是一种描述信息的信息,这种信息就是数据。

数据包含了信息,读入数据,就产生可感知的具体信息。也就是读入一种信息,产生另一种信息。数据是可以保存在一种物质上的,这种物质信息对计算机的刺激就产生了具体信息,而这些信息继而再对人脑产生刺激,就产生人类可感知的信息,最终决定了人类的行为。也就是数据影响人类的行为。

纵观人类的发展,可以看出数据是整个人类发展的重要决定因素,数据信息的得以保存让我们犹如站在巨人的肩膀之上,继而创造更多有价值的信息。如果数据无法得以保存,被破坏,篡改,将会影响人类的发展。

数据如此重要,人们想尽一切方法来保护这些数据,将信息放在另外一种信息上,比如把数据放在磁盘上。数据放在磁盘上,需要有一定的组织,组织数据这个任务由文件系统来担当。

快照的原理

基于文件系统的快照CoFW(Copy on First Write)

文件系统的快照需要克服的难题?

必须快速(几秒甚至1秒完成)并且不暂停 IO(暂停 IO 会影响上层应用)。

解决方案:

文件系统(以ext2)为例,文件系统包括超级块,组描述符,块位图,inode位图,inode节点块,数据块,其中前五个数据项都是为了管理数据而产生的(既元数据),这里占用的数据量很小,实际的文件数据存储在数据块里。

在某一时刻,如果记录了文件系统的元数据,就有了当前文件系统的映射图,文件系统只根据映射图来对应物理卷上的实际数据,所以只要有了映射图,我们就可以按图索骥,找到并拥有实际的数据。

但是,如果我们只是把此刻的映射图复制出来,我们也只得到了一个图纸而已,因为实际数据在物理卷上,而不是在图纸上。所以我们必须保证物理卷上的数据不被 IO 写入,而同时又不能影响应用。要保证当前快照的完整性,之后对当前数据的IO需被定位到其它空闲的地方,并修改文件映射关系。

基于物理卷的快照RoFW(Redirect on First Write)

基于物理卷的快照相当于给物理卷增加一个“卷扇区映射管理系统”,我们知道卷扇区应当是由文件系统来组织管理的,但是为了减轻文件系统负担,我们将在底层卷这个层次实现快照,卷扇区都是LBA来编号的,实现快照的时候,程序首先保留一张初始的LBA表,每当有新的写入请求的时候,程序将这些请求的数据,写入另一个地方(一般是一个新的卷,专为快照保留),并做记录:

如A的10000号已写入了数据内容,并且做了快照,快照后对A的10000号的写请求会被定为到新卷B的100号,这时A卷中就会记录如下映射数据。

原始LBA: 卷A的10000号,映射到LBA:卷B的100号。

文件系统对感知不到这一重定向过程,FS在它的映射图中还是记录卷A的10000号LBA,而不是B的100号。

以上做快照的方式称为Redirect on First Write(RoFW),快照生成之后对卷A的每一次读写请求,都需要查询映射表,增加了处理时间,降低了一些性能。由于RoFW方式查表的时间开销太大,故产生了另外一种copy on First write的方式。其工作原理如下:

快照生成之后,如果上层有针对原卷某个或者某些从做快照后从来没有更新过的LBA块进行写请求,则在更新这些LBA扇区之前,先将原来扇区的内容拷贝出来,放入一个空闲卷,然后将新数据写入原卷,即旧数据先占着位置,等新数据来了,旧数据再让位,一旦原卷某个LBA在快照之后被更新过了,则以后针对这个LBA的写,则可以直接覆盖,不需要提前拷贝。

COFW 与 ROFW 的对比

1:在两种方式下,快照后对从来没有修改过的扇区写IO,都需要占用额外的空间。

2:如果快照数据被100%覆写,则快照需要与原卷相同的存储容量,但通常只有部分被覆盖,新卷的容量一般设为原卷容量的30%(经验值,需要根据具体业务场景来判断具体值)。

3:COFW,初次覆写需要一次读,两次写;而ROFW只需要一次写。故后者在IO延迟上有优势。但在读和非初次覆写的情况下,ROFW需要遍历映射表或建立映射项,而COFW则不需要。另外ROFW方式在删除快照时开销很大。

磁盘快照的作用

快速瞬时完整备份
在不产生备份窗口的情况下,可以创建一致性的磁盘快照,每个磁盘快照都可以认为是一次对数据的全备份,从而实现常规备份软件无法实现的分钟级别的RPO(恢复点目标)。

快速回滚某一时间点的备份数据
用户可以依据DBA的定制,定时自动创建或通过制定策略的方式创建快照,通过磁盘差异进行回退,快速回滚到指定的时间点。通过这种回滚在极短的时间内即可完成,大大的提高了业务系统RTO(恢复时间目标)的水平。

快速构建完全一致的应用测试环境和系统环境
用户可以使用快照产生的虚拟硬盘数据对新的应用或者新的操作系统版本进行测试,这样可以避免对生产数据造成损害,也不会影响到目前正在运行的应用。

比如我们有一台Nginx Web Server,快照可以为Nginx生成多个副本,这些副本相互独立且保持了与快照Nginx相同的属性,我们可以使用快照信息构建无数台完全一致的Nginx Web Server,这样即保护了源Nginx数据又赋予了快照Nginx数据新的用途。

比如我们可以更快的复制多台完全一致的 Nginx应用于测试和支撑 Web 请求,至此可以看出快照副本数据有被重新定义数据用途。

行云管家的数据备份

1、选择主机 --> 磁盘快照


0.2 运维利器 行云管家之磁盘快照原理应用及实现_第2张图片
image

2、查看快照


0.2 运维利器 行云管家之磁盘快照原理应用及实现_第3张图片
image

可以看到行云管家对快照功能做的优化,我们能够非常清楚的看到当前快照的数量和快照详细信息,可以手动执行快照和通过创建快照策略来自动触发操作。备份的时间建议大家选择在业务低谷的时候,每个公司的业务场景不同,可以根据自身业务场景来选择备份时间,一般可选择凌晨3点-4点。

本文使用的行云管家版本: V4.1(日期:2018-03-22)

对云主机进行快照备份

手动触发快照备份

0.2 运维利器 行云管家之磁盘快照原理应用及实现_第4张图片
image

设置策略,自动触发快照备份

根据策略设置自动触发快照可以用来做每天的全量备份。

备份的时间建议大家选择在业务低谷的时候,每个公司的业务场景不同,可以根据自身业务场景和顾客访问时间段数据来选择备份时间。一般可选择凌晨3点-4点的业务低谷来做自动快照备份。

1、创建快照策略


0.2 运维利器 行云管家之磁盘快照原理应用及实现_第5张图片
image

2、点击添加主机


0.2 运维利器 行云管家之磁盘快照原理应用及实现_第6张图片
image

3、选择将要执行此快照策略的主机


0.2 运维利器 行云管家之磁盘快照原理应用及实现_第7张图片
image

4、手动立即创建快照


0.2 运维利器 行云管家之磁盘快照原理应用及实现_第8张图片
image

创建自定义镜像

通过自定义镜像,可实现批量部署云主机或运行环境备份的目的。

1、选择镜像管理,填写创建镜像所需相关信息

0.2 运维利器 行云管家之磁盘快照原理应用及实现_第9张图片
image

2、选择系统盘快照和数据盘快照,最后合成一块完整的镜像盘。

0.2 运维利器 行云管家之磁盘快照原理应用及实现_第10张图片
image

3、点击下一步,即可生成新的镜像。

0.2 运维利器 行云管家之磁盘快照原理应用及实现_第11张图片
image

如何恢复数据?时光机一键搞定!

这个功能非常重要,当我们遇到勒索病毒敲诈/误操作/系统故障导致服务不可用时,可使用时光机恢复至服务器正常的状态。

选择目标磁盘 --> 选择回滚日期 --> 一键恢复

选择日期很巧妙,只需要点击时间即可跳转到所在时间的快照备份。

1、点击磁盘快照,选择将要操作的主机

0.2 运维利器 行云管家之磁盘快照原理应用及实现_第12张图片
image

2、主机磁盘信息与快照信息

0.2 运维利器 行云管家之磁盘快照原理应用及实现_第13张图片
image

3、选择相应日期与快照,点击回滚即可

0.2 运维利器 行云管家之磁盘快照原理应用及实现_第14张图片
image

参考

点击了解更多:行云管家视频课程

点击了解更多:《行云管家产品文档》

《大话存储2:存储系统架构与底层原理极限剖析》

如果大家想对存储应用和实现原理进一步的探索,可以看看这本《大话存储2:存储系统架构与底层原理极限剖析》全书893页,在存储知识领域的理解和应用,无论是在深度还是在广度,都有很深的挖掘。囊括时下云技术以及持续数据保护技术。还涉及到很多非常底层的架构,相信从中你也会受益匪浅。

最后,请问你学会使用行云管家的数据备份功能了吗?如果有什么问题,可以在文末留言讨论。

你可能感兴趣的:(0.2 运维利器 行云管家之磁盘快照原理应用及实现)