虚拟化操作系统的虚拟机的备份与容灾

2021-11-05 08:03李超越
电子技术与软件工程 2021年17期
关键词:差量容灾磁盘

李超越

(云宏信息科技股份有限公司 广东省广州市 510642)

随着云计算行业的在各个行业与领域的深入使用与日益普及,作为云计算应用技术的基石的虚拟化操作系统也同样部署到了各种物理硬件之上。同样随着各种计算机应用程序与云计算的深入结合,虚拟化操作之上的虚拟机承载的业务也将涉及到各行各业,其上的业务规模与复杂性也急剧增大。虚拟化操作系统的安全可用性也就成为了各种应用软件可用的核心问题。

在航空航天、武器装备、医疗设备、道路交通、能源工业、金融等安全攸关的领域,虚拟化操作系统基础上的基础软件失效将导致灾难性的后果。因此,当虚拟化操作系统的一个完整的环境因灾难性事件造成长时间运行环境无法恢复甚至于环境遭受到不可恢复的破坏的时候,为迅速恢复系统的数据和运行环境,需要采用容灾备份与恢复技术,确保应用软件的基层运行环境能够快速从灾难造成的故障与瘫痪状态恢复到正常状态,支撑其支持的业务功能从灾难造成的不正常状态恢复到可接受状态。

1 基于vhd格式的虚拟机备份

从含义上而言,备份是指将用户的数据从源端拷贝复制一份存放到额外的空间中,将源数据保存几份以增强安全性的行为。备份本身并不具有实际的意义,其作用主要是为了在原数据被破坏有可以通过一定的技术手段将备份出来的数据重新复制回来从而恢复正常的业务数据,因为备份必须同时需要与恢复同时存在。容灾指一种应对数据被破坏的场景恢复数据与应用的技术,即在应用与数据所处的环境发生灾难性破坏或者发生自然或认为灾害后数据无法获取,应用短时间无法恢复的一种应对手段。考虑到成本,实现难度等因素,备份恢复往往是容灾方案中的一种重要手段。

2 容灾技术的分类与恢复等级

目前比较被认可的容灾的恢复等级的划分主要指的就是Share78 容灾国际标准,该标准主要通过以下方面将容灾等级做了划分:

(1)备份/恢复的范围;

(2)灾难恢复计划的状态;

(3)应用地点与备份地点之间的距离;

(4)应用地点与备份地点如何相互连接;

(5)数据是怎样在两个地点之间传送的;

(6)允许有多少数据丢失;

(7)怎样保证备份地点数据的更新;

(8)备份地点可以开始备份工作的能力。

从最简单的仅在本地进行磁带备份,到将备份的磁带存储在异地,再到建立应用系统实时切换的异地备份系统,恢复时间也可以从几天到小时级到分钟级、秒级或零数据丢失等将容灾的等级划分七个等级为:

0 级:无异地备份;

1 级:实现异地备份;

2 级:热备份站点备份;

3 级:在线数据恢复;

4 级:定时数据备份;

5 级:实时数据备份;

6 级:零数据丢失。

针对高等级的容灾方案,将同样付出较多的资源的消耗并需要更高的实现难度。针对各种不同的容灾方案,同样有其建设的衡量标准。衡量灾备系统建设的指标有许多:

RTO-恢复及时性

衡量业务恢复正常所需时间

RPO-恢复时间点

衡量业务恢复过程数据丢失的风险

RRO-恢复可靠性

衡量业务恢复的把握性

RIO-恢复完整性

衡量业务恢复之后数据的可用性

ROI-投资回报率

衡量业务连续性系统投资效率

其中最重要的有两个:一个是 RTO(RecoveryTime Object)即指灾难发生后,从系统停机导致业务停顿开始,到IT 系统恢复,业务重新运营,中间所需要的时间;另一个是 RPO(Recovery Point Object)是指一个过去的时间点,当灾难或紧急事件发生时,数据可以恢复到的时间点。

3 vhd文件介绍

虚拟化操作系统管理虚拟磁盘有各种虚拟磁盘的格式,VMware 的VMDK 格式、Virtual PC 的VHD 格式、VirtualBox 的VDI 格式、Parallels Desktop 的hdd 格式,qemu 的qcow2 格式等几种虚拟机的虚拟磁盘文件格式。各种格式都有其自己的固定的管理方式,各种格式都有其特有的容灾的处理方案。本方案主要针对在Xen 虚拟化上对VHD 虚拟磁盘格式进行容灾方案分析。

VHD 即Microsoft Virtual Hard Disk format,qemu 和tapdisk 都能支持VHD 镜像格式,不仅提供基本的虚拟机卷功能,还可提供磁盘快照、磁盘扩容等高级功能。

VHD 格式可以分为动态VHD 与静态VHD 两种格式:静态VHD 与裸磁盘格式一一对应,并在末尾添加一个VHD footer 的方式管理;动态VHD 的格式在blktap 代码中的vhd.h 头文件定义如下:

HD footer 中记录了文件的文件的标识性信息,格式类型与版本信息,记录了数据的起始位置等信息。从图中的Data Block 说明我们可以知道,没有数据块分两个部分,一个Bitmap 与实际真是的数据存储位置,每个数据块的实际大小根据总的磁盘的大小进行计算,默认为2M。其中重要的机构Bitmap 记录了每个sector 的实际使用情况。同时VHD 格式采用树形结构管理各个VHD 文件的父子继承管理,每个叶子节点为与终端应用程序交互的入口点,或为vhd 虚拟磁盘的入口,或为vhd 快照的入口。各个虚拟磁盘的父子关系记录在了dd_hdr 的parent_name 字段当中。VHD 格式文件格式文件主要有三种类型,定义如下:

对于存在HD_TYPE_DIFF 类型的VHD 文件在读写时首先需要打开在VHD 文件树上一条分支上的所有VHD 文件,并访问叶子节点的VHD 文件的footer 读取的dd_hdr 偏移并读取,并经过一系列的寻址,找到实际的数据块。当IO 请求是写入操作时,将不访问母盘,直接写入该叶子VHD 文件的相应位置;若进行读取操作时,如果读取的位置叶子VHD 已经进行了修改,则直接读取该最终内容,如果读取的位置未进行改动,则依次向根节点查找最后的修改的内容,若从未被修改过,则返回全0。

4 基于vhd文件格式的容灾备份方案

基于VHD 的差量的机制,每次写入新的数据将只修改最终叶子VHD 的固定位置,并将该位置的对应的BAT 与bitmap 进行已使用的设置。因此为了获取到两个时间点之间数据发生的变化,只需要在起始时间给原VHD 虚拟磁盘分配一个叶子VHD 虚拟磁盘,其父VHD 磁盘指向原磁盘,并将叶子VHD 虚拟磁盘作为虚拟机的操作磁盘。如此操作之后,虚拟机对磁盘数据的所有变更将只修改叶子VHD 磁盘。到达结束时间后,只需要获取叶子节点BAT 与每个数据块的bitmap 就可以获取到这段时间修改的虚拟磁盘的磁盘块,并通过读取叶子节点这些磁盘块的数据就可以完全读取出这段时间的内容变更。由于为保证父盘的安全性以及叶子VHD 正在被虚拟机使用数据将实时变化,在实际操作过程中,在起始时间与结束时间分别为父VHD 与叶子VHD 创建一个写保护的子VHD,通过对比两个子VHD 来获取差量。

在备份时,首先将获取第一个盘的所有的数据。通过一个打开并读取VHD 文件的程序,并通过网络将数据发送的服务程序读取第一个虚拟磁盘中的数据并保存到备份端的存储介质当中,该数据保存的方式将有备份端的存储方式决定,可以保存成磁盘,保存成文件,或者保存成存储LUN,分布式存储镜像都可以。当到达第二个备份点时,此时可以有两种选择:

(1)仍然选择全量备份的方式将整个虚拟磁盘的数据进行读取并备份到备份存储当中,该方案将每次都在网络上传输这个虚拟磁盘,将大量占用网络带宽,传输量大、时间慢并且占用大量的备份端的存储;

(2)对比两个备份点的差量,将差量的位置信息与实际的差量数据进行传输并存储到备份端。该方案需要额外传输一个差量位置信息,并且将有一部分CPU 的运算工作,但占用网络小、传输数据少,备份相对要快得多。

基于以上的两种方案的优缺点分析,在实际生产中一般采用差量备份的方式。同时,将虚拟化操作系统中的虚拟机Metadate 信息通过网络备份到备份存储中就完成了虚拟化操作系统的虚拟机的备份。

在故障或灾难发生时,可以通过在另外的一套虚拟化操作系统产品环境中部署备份出来的虚拟机的Metadata 信息重新创建虚拟机,并将备份端的虚拟磁盘数据信息或直接挂在到新的虚拟化操作系统上或读取其中的数据灌入到新的虚拟磁盘当中,从而达到了虚拟机应用环境的恢复以及最多仅损失一个备份周期内的应用数据的情况下恢复了业务。

5 结论

通过该虚拟化操作系统的虚拟机的备份与容灾方案,基本能够满足客户业务容灾7 个层次中的第4 层次以上的安全性要求。在应用的配合下将达到第5 层次交易完整性的要求。该方案通过vhd 的差量的功能,根据虚拟机的实际的写入频率,适当的缩短备份的周期,实现在故障与灾难发生时尽可能少的数据量的丢失。

猜你喜欢
差量容灾磁盘
基于差量特征与AdaBoost的家用负荷识别方法研究
修改磁盘属性
关于建筑企业容灾备份系统方案的探讨
磁盘组群组及iSCSI Target设置
基于中兴软交换的电力通信网络容灾系统建设
创建VSAN群集
差量法在化学计算中的应用
实施存储虚拟化及应用容灾保障医院信息系统业务连续性
“差量法”解题浅议