CN109032838B - 虚拟机备份恢复数据一致性的自动校验方法 - Google Patents
虚拟机备份恢复数据一致性的自动校验方法 Download PDFInfo
- Publication number
- CN109032838B CN109032838B CN201810689835.0A CN201810689835A CN109032838B CN 109032838 B CN109032838 B CN 109032838B CN 201810689835 A CN201810689835 A CN 201810689835A CN 109032838 B CN109032838 B CN 109032838B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- data
- recovery
- backup
- backed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 140
- 238000011084 recovery Methods 0.000 title claims abstract description 114
- 238000012795 verification Methods 0.000 title claims abstract description 40
- 230000000977 initiatory effect Effects 0.000 claims abstract description 5
- 238000001914 filtration Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 description 6
- 241001134453 Lista Species 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 241000282979 Alces alces Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
Abstract
本发明涉及一种虚拟机备份恢复数据一致性的自动校验方法,具体包括以下步骤:S1.准备要验证的脚本或者用例;S2.编写一致性校验所需的方法,编写比较入口相关方法,将以上自定义方法导入自动化工具;S3.借助备份平台API接口,对CAS平台发起备份和恢复操作,用于验证备份恢复后数据是否一致;S4.借助校验方法及内置库调用CAS平台执行获取、转化、提交磁盘、计算MD5操作。与现有技术相比,本发明适用于H3C CAS云计算管理平台中虚拟机磁盘数据的恢复校验,使得在此环境下备份恢复后数据的一致性校验变得简单,节省了人工和时间成本,可以有效规避人为操作的失误。
Description
技术领域
本发明涉及计算机数据保护领域,尤其是涉及一种基于H3C CAS平台下虚拟机备份恢复数据一致性的自动校验方法。
背景技术
H3C CAS虚拟化软件是H3C公司面向数据中心研发的企业级虚拟化软件,提供强大的虚拟化功能和资源池管理能力。H3C CAS虚拟化软件包含CVK(虚拟化内核系统)、CVM(虚拟化管理平台)和CIC(云业务管理中心)。
CAS中能支持备份的磁盘格式为QCOW2,是一种当前比较主流的虚拟化镜像格式,支持快照操作,其内部会记录一些内部块分配的信息的。
RAW(裸设备)格式是原始镜像,会直接当作一个块设备给虚拟机来使用,不支持快照等相关操作,故而无法进行备份,也无需进行备份恢复的校验。
CAS虚拟机外部快照备份:(1)完全备份:先对虚拟机进行外部快照,镜像变为4级:④disk_snap1→③disk→②disk_base1→①disk_base0,其中,④为新增镜像、新增数据将写入到该文件中;①②③为快照前虚拟机数据文件,①是②的backingfile,②是③的backingfile,备份①②③级镜像,备份完成后,此三级镜像会重新整合,变成两级②disk_base1→①disk_base0,disk_snap1由④变成③,对应的②也就是它的backingfile,虚拟机整体链路恢复到三级链路。(2)增量备份:同上,先执行快照,变成4级链路后仅备份③disk_snap1镜像,备份完成后整合恢复成三级链路。说明:外部快照操作会删除所有的内部快照,包括用户快照。
CAS虚拟机内部快照备份:(1)完全备份:先对虚拟机进行内部快照或亦称快照snap1,镜像级数不变,仍为一级,快照后磁盘将包含新增数据。解析CAS磁盘信息,备份有效数据,备份完成后保留快照snap1。(2)增量备份:执行内部快照snap2,解析snap1、2之前的磁盘变化信息,备份有效数据,备份完成后删除快照snap1、保留snap2。
现有备份厂商并未在产品中提供备份恢复数据一致性的校验,主要原因是校验需要时间,会使备份恢复的整体时间变长。同理,备份厂商在备份CAS虚拟机时,默认情况下也并无有效的措施进行判断备份和恢复时是否数据一致,只能在恢复出现问题时,进行反向推导出缺陷的可能原因(代码问题或是其他问题)。另者,开机状态的虚拟机磁盘数据一直处于动态变化中,备份完成后,快照磁盘会进行合并和删除,实际上最终恢复的磁盘无法与原机快照磁盘直接进行数据一致性的校验。因此,如何行之有效的校验备份厂商对CAS虚拟机备份恢复后的数据是否一致性,成为急需解决的问题,这直接影响着备份系统的数据正确性和可恢复能力。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种解决了备份恢复后虚拟机数据一致性无法得到有效的验证的问题,并结合自动化的方式,对复杂的校验场景提供单一的入口,最大限度的减少了人工的参与,使得备份恢复数据一致性的得到有效、方便、快速的验证的基于H3C CAS平台下虚拟机备份恢复数据一致性的自动校验方法。
本发明的目的可以通过以下技术方案来实现:
一种虚拟机备份恢复数据一致性的自动校验方法,具体包括以下步骤:
S1.准备要验证的脚本或者用例;
S2.参考CAS RESTFul Web Services API编写一致性校验所需的方法,编写比较入口相关方法,将以上自定义方法导入自动化工具;
S3.借助备份平台API接口,对CAS平台发起备份和恢复操作,用于验证备份恢复后数据是否一致;
S4.借助校验方法及内置库调用CAS平台执行获取、转化、提交磁盘、计算MD5操作。
优选地,所述的步骤S2中的一致性校验所需的方法具体包括:
(1)虚拟机关机、之前未备份过且未执行过快照的情况下的一致性校验方法;
(2)仅内部快照方式备份、虚拟机关机且执行过内部快照的情况下的一致性校验方法;
(3)仅内部快照方式备份、虚拟机开机的情况下的一致性校验方法;
(4)外部快照方式备份、虚拟机关机、三级链路且未执行过用户快照的情况下的一致性校验方法;
(5)外部快照方式备份、虚拟机开机且未执行过用户快照的情况下的一致性校验方法;
(6)先外部后内部快照的混合快照方式、虚拟机关机的情况下的一致性校验方法;
(7)先外部后内部快照的混合快照方式备份、虚拟机开机的情况下的一致性校验方法。
优选地,所述的虚拟机关机、之前未备份过且未执行过快照的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,然后计算出各自磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
优选地,所述的仅内部快照方式备份、虚拟机关机且执行过内部快照的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,然后将各自磁盘转化为RAW格式,然后计算出各自RAW格式磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
优选地,所述的仅内部快照方式备份、虚拟机开机的情况下的一致性校验方法具体为:先关闭要备份虚拟机,再获取要备份虚拟机和恢复虚拟机各自所有的磁盘,然后将各自磁盘转化为RAW格式,然后计算出各自RAW格式磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
优选地,所述的外部快照方式备份、虚拟机关机、三级链路且未执行过用户快照的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,再过滤出各自所有磁盘的三级链路,然后逐个提交链路变化数据至一级镜像,然后计算出各自一级镜像的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
优选地,所述的外部快照方式备份、虚拟机开机且未执行过用户快照的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,再过滤出各自所有磁盘的链路,然后提交二级镜像数据至一级镜像,然后计算出各自一级镜像的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
优选地,所述的先外部后内部快照的混合快照方式、虚拟机关机的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,再过滤出各自所有磁盘的三级链路,然后合并各自过滤出的三级链路数据并各自转换为RAW格式,然后计算出各自RAW格式磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
优选地,所述的先外部后内部快照的混合快照方式备份、虚拟机开机的情况下的一致性校验方法具体为:先关闭要备份虚拟机,再获取要备份虚拟机和恢复虚拟机各自所有的磁盘,再过滤出各自所有磁盘的三级链路,然后合并各自过滤出的三级链路数据并各自转换为RAW格式,然后计算出各自RAW格式磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
优选地,所述的编写比较入口相关方法,其目的在于明确使用何种比较方式。
与现有技术相比,本发明提供的CAS平台虚拟机磁盘数据恢复一致性校验方法,适用于H3C CAS云计算管理平台中虚拟机磁盘数据的恢复校验,使得在此环境下备份恢复后数据的一致性校验变得简单,节省了人工和时间成本,减少了人工干预,可以有效规避人为操作的失误。
附图说明
图1为本发明基于H3C CAS平台下虚拟机备份恢复数据一致性的自动校验方法的自动化测试架构图。
图2为本发明在虚拟机关机、之前未备份过且未执行过快照的情况下的一致性校验方法的具体流程示意图。
图3为本发明在仅内部快照方式备份、虚拟机关机且执行过内部快照的情况下的一致性校验方法的具体流程示意图。
图4为本发明在仅内部快照方式备份、虚拟机开机的情况下的一致性校验方法的具体流程示意图。
图5为本发明在外部快照方式备份、虚拟机关机、三级链路且未执行过用户快照的情况下的一致性校验方法的具体流程示意图。
图6为本发明在外部快照方式备份、虚拟机开机且未执行过用户快照的情况下的一致性校验方法的具体流程示意图。
图7为本发明在先外部后内部快照的混合快照方式、虚拟机关机的情况下的一致性校验方法的具体流程示意图。
图8为本发明在先外部后内部快照的混合快照方式备份、虚拟机开机的情况下的一致性校验方法的具体流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本说明书提出了一种基于H3C CAS平台下虚拟机备份恢复数据一致性的自动校验方法,其思路原理如下:
当前备份厂商支持备份的磁盘类型为QCOW2,CAS虚拟磁盘数据恢复一致性校验,就是校验原虚拟机与恢复后虚拟机QCOW2磁盘中数据是否一致。因为CAS分为内部快照、外部快照,且存在内外部快照均备份过的场景,加上虚拟机备份过程中的开、关机状态,故校验虚拟磁盘的场景可划分为6种:a)仅使用内部快照备份、本次备份期间虚拟机关机;b)仅使用内部快照备份、虚拟机开机;c)仅使用外部快照备份、本次备份期间虚拟机关机;d)仅使用外部快照备份、本次备份期间虚拟机开机;e)内外部快照均备份过、本次备份期间虚拟机关机;f)内外部快照均备份过、虚拟机开机。关机状态下备份恢复过程中无数据变化,校验较为方便;开机状态下备份恢复过程中存在数据变化,需要对原虚拟机,选择性进行链路合并或者借助快照回滚,实现虚拟机恢复到备份时的状态。
如图1所示为本发明一种基于H3C CAS平台下虚拟机备份恢复数据一致性的自动校验方法的具体流程步骤和自动化测试架构图,其中,根据图1可知,本发明具体操作步骤包括:
S1.准备要验证的脚本或者用例;
S2.参考CAS RESTFul Web Services API编写一致性校验所需的方法,编写比较入口相关方法,将以上自定义方法导入自动化工具;
S3.借助备份平台API接口,对CAS平台发起备份和恢复操作,用于验证备份恢复后数据是否一致;
S4.借助校验方法及内置库调用CAS平台执行获取、转化、提交磁盘、计算MD5操作。
根据图1可知,使用者只需向脚本或用例传入要校验的CAS虚拟机名称(原机和恢复机器),执行自动化工具,程序内部完成校验工作(选择合适的校验方法、决定备份恢复任务发起时间、自动执行校验方法),即可方便的完成不同状态下虚拟机备份恢复后数据一致性的校验。
如图2所示为本发明在虚拟机关机、之前未备份过且未执行过快照的情况下的一致性校验方法的具体流程示意图,其具体实现如下:
若虚拟机A仅使用内部快照且处于关机状态(内部快照不会出现多级链路的情况)。①当原虚拟机不存在快照的场景下,备份前直接记录原虚拟机A的各个虚拟磁盘MD5值,与恢复后虚拟机A’的各个虚拟磁盘进行MD5值比较;
(1)要备份虚拟机记为A,处于关机状态且备份恢复过程中无数据变化,虚拟机链路为最简单的模式(单链路且无快照)。虚拟机A备份前,通过CAS接口获取A的所有磁盘:①查询所有主机(/cas/casrs/host/)→②在列表中过滤出备份虚拟机所在主机的ID号→③通过主机ID、查询CAS系统中主机下所有虚拟机列表(/cas/casrs/vm/vmList?hostId={hostId})→④在列表中过滤出需要备份虚拟机的ID号→⑤通过虚拟机ID、查询虚拟机所有镜像文件的路径(/cas/casrs/vm/{id}/backfilepath),依次计算出磁盘的MD5值,并加入list列表LA;
(2)恢复虚拟机记为A’,恢复完成后虚拟机保持关机状态,同上方法接口获取A’的所有磁盘,依次计算相应磁盘的MD5值,并加入list列表L A’;
(3)依次比较两个list列表LA和LA’记录的虚拟磁盘MD5值信息:若比较结果完全一致,则表明的恢复虚拟机磁盘数据与备份时虚拟机磁盘数据一致,反之,则表明的两者数据不一致。
如图3所示为本发明在仅内部快照方式备份、虚拟机关机且执行过内部快照的情况下的一致性校验方法的具体流程示意图,其具体实现如下:
当原虚拟机存在快照的场景下,备份前/后,先将原虚拟机A的各个磁盘先转化为不受快照影响的RAW磁盘,然后记录相应的MD5值,再与恢复后虚拟机A’磁盘的RAW格式进行MD5值比较;
(1)要备份虚拟机记为A,处于关机状态且备份恢复过程中无数据变化,虚拟机之前执行过内部快照(内部快照备份或者用户快照)。本步骤在虚拟机A备份前或备份完成均可。通过CAS接口、python及qemu-img将磁盘转化成RAW格式新盘:①获取A的所有磁盘(同2.1中方法调用)→②通过qemu-img convert–O raw命令依次将磁盘转化成RAW格式(目的:排除内部快照的影响),计算出RAW磁盘的MD5值,并写入list列表LA;
(2)恢复虚拟机记为A’,恢复完成后虚拟机保持关机状态,同上方法转换虚拟机A’的所有磁盘为RAW格式,依次计算相应磁盘的MD5值,并加入list列表L A’;
(3)依次比较两个list列表LA和LA’记录的虚拟磁盘MD5值信息:若比较结果完全一致,则表明的恢复虚拟机磁盘数据与备份时虚拟机磁盘数据一致,反之,则表明的两者数据不一致。
如图4所示为本发明在仅内部快照方式备份、虚拟机开机的情况下的一致性校验方法的具体流程示意图,其具体实现如下:
若虚拟机A仅使用内部快照且处于开机状态,因数据处于变化状态,不能使用备份前状态比较,需要使用创建快照当时状态。然而备份完成后必然存在快照,故而仅存在一种情况。备份完成后,先关闭原虚拟机A,恢复快照至备份时的状态,将该状态的磁盘转换为RAW格式新盘,再与恢复后虚拟机A’磁盘的RAW格式进行MD5值比较;
(1)要备份虚拟机记为A,处于开机状态。虚拟机A备份完成后,通过CAS接口、python及qemu-img将磁盘转化成RAW格式新盘:①关闭虚拟机A→②恢复备份时状态的快照→③获取A的所有磁盘(同2.1中方法调用)→④通过qemu-img convert–O raw命令依次将磁盘转化成RAW格式(目的:排除内部快照的影响),计算出RAW磁盘的MD5值,并写入list列表LA;
(2)恢复虚拟机记为A’,恢复完成后虚拟机保持关机状态,同上方法转换虚拟机A’的所有磁盘为RAW格式,依次计算相应磁盘的MD5值,并加入list列表L A’;
(3)依次比较两个list列表LA和LA’记录的虚拟磁盘MD5值信息:若比较结果完全一致,则表明的恢复虚拟机磁盘数据与备份时虚拟机磁盘数据一致,反之,则表明的两者数据不一致。
如图5所示为本发明在外部快照方式备份、虚拟机关机、三级链路且未执行过用户快照的情况下的一致性校验方法的具体流程示意图,其具体实现如下:
因受限于外部快照原理,执行外部快照会删除用户快照,故此处不用区分是否存在用户快照,对于原虚拟机磁盘链路为三级链路的场景,快照前或备份完成后,先逐个提交链路变化数据至一级镜像,记录一级镜像的MD5值,然后与恢复后虚拟机A’的磁盘进行MD5值比较,
(1)要备份虚拟机记为A,处于关机状态且备份恢复过程中无数据变化,虚拟机链路为三级链路(之前执行过外部快照或相应的备份)。本步骤在虚拟机A备份前或备份完成均可。通过CAS接口、python及qemu-img将每块磁盘多链路转化成单链路①获取获取A的所有磁盘(同2.1中方法调用)→②过滤出同一块磁盘的所有链路→③通过qemu-img commit先提交第三级镜像disk变化数据至第二级disk_base1镜像、再提交第二级disk_base1镜像至第一级disk_base0镜像,记录所有一级镜像diskn_base0的MD5值,并写入list列表LA;
(2)恢复虚拟机记为A’,恢复完成后虚拟机保持关机状态,同上方法获取A’的所有磁盘,依次计算相应的MD5值,并加入list列表L A’;
(3)依次比较两个list列表LA和LA’记录的虚拟磁盘MD5值信息:若比较结果完全一致,则表明的恢复虚拟机磁盘数据与备份时虚拟机磁盘数据一致,反之,则表明的两者数据不一致。
如图6所示为本发明在外部快照方式备份、虚拟机开机且未执行过用户快照的情况下的一致性校验方法的具体流程示意图,其具体实现如下:
因数据处于变化状态,不能使用备份前状态比较,需要使用创建快照当时状态。然而备份完成后必然变为三级链路,同样受限外部快照原理,不需区分是否存在用户快照,故仅需考虑一种场景。备份完成后,提交原虚拟机二级base1镜像变化数据至一级base0镜像(第三级保存的数据为备份时状态到最新的变化数据,不能提交比较),记录base0镜像磁盘的MD5值,然后与恢复后虚拟机A’的同类型磁盘进行MD5值比较;
(1)要备份虚拟机记为A,处于开机状态。备份完成后,通过CAS接口、python及qemu-img将每块磁盘一二级链路转化成单链路的RAW格式:①获取A的所有磁盘(同2.1中方法调用)→②过滤出同一块磁盘的所有链路→③通过qemu-img commit提交第二级disk_base1镜像至第一级disk_base0镜像,记录所有一级镜像diskn_base0的MD5值,并写入list列表LA;
(2)恢复虚拟机记为A’,恢复完成后虚拟机保持关机状态,同上方法获取A’的所有磁盘,依次计算相应的MD5值,并加入list列表L A’;
(3)依次比较两个list列表LA和LA’记录的虚拟磁盘MD5值信息:若比较结果完全一致,则表明的恢复虚拟机磁盘数据与备份时虚拟机磁盘数据一致,反之,则表明的两者数据不一致。
如图7所示为本发明在先外部后内部快照的混合快照方式、虚拟机关机的情况下的一致性校验方法的具体流程示意图,其具体实现如下:
若使用混合快照且处于关机状态,根据先后顺序分为两种场景:①先内部快照→然后外部快照,执行外部快照时同样也会删除之前的内部快照,首次外部快照的具体方法同仅内部快照方式备份、虚拟机关机且执行过内部快照的情况下的一致性校验方法,非首次具体方法同外部快照方式备份、虚拟机关机、三级链路且未执行过用户快照的情况下的一致性校验方法;②先外部快照→然后内部快照,首次使用内部快照的具体方法同外部快照方式备份、虚拟机关机、三级链路且未执行过用户快照的情况下的一致性校验方法,非首次:由于此时磁盘是多链路且存在内部快照,故需要先合并三级链路数据,再转为RAW格式并记录其MD5值,然后与恢复后虚拟机A’的RAW磁盘进行MD5值比较;
(1)要备份虚拟机记为A,处于关机状态且备份恢复过程中无数据变化,虚拟机链路为三级链路且存在内部快照。本步骤在虚拟机A备份前或备份完成均可。通过CAS接口、python及qemu-img将多链路合并后转为RAW格式:①获取A的所有磁盘(同2.1中方法调用)→②过滤出同一块磁盘的所有链路→③通过qemu-img convert–O raw+disk将第一、二、三级镜像数据合并并转换成RAW格式,计算出RAW磁盘的MD5值,并写入list列表LA;
(2)恢复虚拟机记为A’,恢复完成后虚拟机保持关机状态,同上方法转换虚拟机A’的所有磁盘为RAW格式,依次计算相应磁盘的MD5值,并加入list列表L A’;
(3)依次比较两个list列表LA和LA’记录的虚拟磁盘MD5值信息:若比较结果完全一致,则表明的恢复虚拟机磁盘数据与备份时虚拟机磁盘数据一致,反之,则表明的两者数据不一致。
如图8所示为本发明在先外部后内部快照的混合快照方式备份、虚拟机开机的情况下的一致性校验方法的具体流程示意图,其具体实现如下:
分为两种情形:①先内部快照→然后外部快照,执行外部快照时同样也会删除之前的内部快照,具体方法同外部快照方式备份、虚拟机开机且未执行过用户快照的情况下的一致性校验方法;②先外部快照→然后内部快照,如前所述,开机场景需要在备份完成后,再记录原机MD5值。内部快照备份完成后关机,恢复快照至备份时状态,此时磁盘是多链路且存在内部快照,故需要先合并三级链路数据,再转为RAW格式并记录其MD5值,然后与恢复后虚拟机A’的RAW磁盘进行MD5值比较;
(1)要备份虚拟机记为A,处于开机状态。备份完成后,使用Python语言,通过CAS接口、python及qemu-img将多链路合并后转为RAW格式:①关闭虚拟机A→②恢复备份时状态的快照→③获取A的所有磁盘并转换成RAW格式(同2.6中方法调用),计算出RAW磁盘的MD5值,并写入list列表LA;
(2)恢复虚拟机记为A’,恢复完成后虚拟机保持关机状态,同上方法转换虚拟机A’的所有磁盘为RAW格式,依次计算相应磁盘的MD5值,并加入list列表L A’;
(3)依次比较两个list列表LA和LA’记录的虚拟磁盘MD5值信息:若比较结果完全一致,则表明的恢复虚拟机磁盘数据与备份时虚拟机磁盘数据一致,反之,则表明的两者数据不一致。
本发明的具体实施方式采用Robot Framework自动化框架(简称RF)+Python实现,因此比较对象所在的计算机上需要有RF及Python的运行环境。具体实现步骤如下:
步骤(1):对于Windows环境,需要安装Python以及第三方Python库paramiko;
步骤(2):在该Windows环境中部署RF自动化测试工具;
步骤(3):使用Python语言,参考CAS RESTFul Web Services API编写一个程序CompareCASDisk.py实现如下功能:首先,检查原虚拟机的一些基本情况:①获取原机内部快照GetInternalSnapshot(id),②获取虚拟机所有镜像文件路径GetAllImg(id)(用于确认是否存在多链路),③获取原机开/关机状态GetVMStatus(id),④获取备份软件本次使用的是哪种备份模式GetUsingSnapshotWay。根据①②可确认虚拟机之前有没有执行过快照或者执行过哪种快照,结合①②③④可决定如何获得原虚拟机要进行MD5计算的磁盘GetDisksForMD5_orignal,结合①②③可判断出原机MD5计算操作的执行时间RunTimeCompare、结合①②④可决定如何获得恢复虚拟机要进行MD5计算的磁盘GetDisksForMD5_recovery;其次,实现第五部分的具体方法2.1~2.7中用的方法,如:关闭虚拟机ShutdownVM(id)、恢复快照SnapshotResume(vm_id,sp_name)、合并成RAW磁盘ConvertToRaw(disk,raw_name)、提交至母盘CommitToBase(disk)等,以适应不同场景下磁盘数据一致性的比较;
步骤(4):运行RF工具,加载Python实现的CompareCASDisk.py文件,编写相应的自动化用例,在自动化用例中准备好备份恢复执行步骤,传入要备份虚拟机A的名称及远程登录到CAS后台和Web界面的登陆信息;
步骤(5):通过RunTimeCompare判断原虚拟机计算MD5时间是在备份前还是备份后(如:指定备份前/后均可计算MD5的情况时设置在备份完成后运行,即只有无任何快照且关机备份的情况下需要在备份前计算,其余均在备份完成后计算),根据结果决定执行备份任务及计算MD5值的顺序。此处以大多数情况举例,即先备份后计算;
步骤(6):调用备份软件进行备份至备份结束;
步骤(7):调用GetDisksForMD5_orignal获得原虚拟机要进行MD5计算的磁盘列表,然后通过paramiko.SSHClient()登录到CAS后台,执行md5sum获取相应磁盘的MD5值信息,并添加至列表listA。GetDisksForMD5_orignal函数主要内容:是提交磁盘数据还是转换磁盘、是整合所有数据还是部分数据、是否需要关闭原机、是否需要恢复快照等;
步骤(8);步骤(7)执行时可同步发起恢复任务;
步骤(9):恢复结束后,调用GetDisksForMD5_recovery获得恢复虚拟机要进行MD5计算的磁盘列表,然后通过paramiko.SSHClient()登录到CAS后台,执行md5sum获取相应磁盘的MD5值信息,并添加至列表listA’。GetDisksForMD5_recovery函数主要内容:是否需要转换为RAW格式磁盘、转换后的磁盘等;
步骤(10):将获取到的备份ListA和恢复ListA’中MD5值,依次使用FR自带的关键字should match来比较。若用例运行通过,则表明备份前后CAS虚拟机磁盘数据一致;若用例运行失败,则表明的两者数据不一致。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种虚拟机备份恢复数据一致性的自动校验方法,其特征在于,具体包括以下步骤:
S1.准备要验证的脚本或者用例;
S2.编写一致性校验所需的方法,编写比较入口相关方法,将编写的方法导入自动化工具;
S3.借助备份平台API接口,对CAS平台发起备份和恢复操作,用于验证备份恢复后数据是否一致;
S4.借助校验方法及内置库调用CAS平台执行获取、转化、提交磁盘、计算MD5操作;
所述的步骤S2中的一致性校验所需的方法具体包括:
(1)虚拟机关机、之前未备份过且未执行过快照的情况下的一致性校验方法;
(2)仅内部快照方式备份、虚拟机关机且执行过内部快照的情况下的一致性校验方法;
(3)仅内部快照方式备份、虚拟机开机的情况下的一致性校验方法;
(4)外部快照方式备份、虚拟机关机、三级链路且未执行过用户快照的情况下的一致性校验方法;
(5)外部快照方式备份、虚拟机开机且未执行过用户快照的情况下的一致性校验方法;
(6)先外部后内部快照的混合快照方式、虚拟机关机的情况下的一致性校验方法;
(7)先外部后内部快照的混合快照方式备份、虚拟机开机的情况下的一致性校验方法;
所述的先外部后内部快照的混合快照方式、虚拟机关机的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,再过滤出各自所有磁盘的三级链路,然后合并各自过滤出的三级链路数据并各自转换为RAW格式,然后计算出各自RAW格式磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
2.根据权利要求1所述的自动校验方法,其特征在于,所述的虚拟机关机、之前未备份过且未执行过快照的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,然后计算出各自磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
3.根据权利要求1所述的自动校验方法,其特征在于,所述的仅内部快照方式备份、虚拟机关机且执行过内部快照的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,然后将各自磁盘转化为RAW格式,然后计算出各自RAW格式磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
4.根据权利要求1所述的自动校验方法,其特征在于,所述的仅内部快照方式备份、虚拟机开机的情况下的一致性校验方法具体为:先关闭要备份虚拟机,再获取要备份虚拟机和恢复虚拟机各自所有的磁盘,然后将各自磁盘转化为RAW格式,然后计算出各自RAW格式磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
5.根据权利要求1所述的自动校验方法,其特征在于,所述的外部快照方式备份、虚拟机关机、三级链路且未执行过用户快照的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,再过滤出各自所有磁盘的三级链路,然后逐个提交链路变化数据至一级镜像,然后计算出各自一级镜像的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
6.根据权利要求1所述的自动校验方法,其特征在于,所述的外部快照方式备份、虚拟机开机且未执行过用户快照的情况下的一致性校验方法具体为:先获取要备份虚拟机和恢复虚拟机各自所有的磁盘,再过滤出各自所有磁盘的链路,然后提交二级镜像数据至一级镜像,然后计算出各自一级镜像的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
7.根据权利要求1所述的自动校验方法,其特征在于,所述的先外部后内部快照的混合快照方式备份、虚拟机开机的情况下的一致性校验方法具体为:先关闭要备份虚拟机,再获取要备份虚拟机和恢复虚拟机各自所有的磁盘,再过滤出各自所有磁盘的三级链路,然后合并各自过滤出的三级链路数据并各自转换为RAW格式,然后计算出各自RAW格式磁盘的MD5值并加入各自列表,依次比较各自列表中虚拟磁盘MD5值的信息,若结果一致,则表明恢复虚拟机与要备份虚拟机数据一致,反之则表明恢复虚拟机与要备份虚拟机数据不一致。
8.根据权利要求1所述的自动校验方法,其特征在于,所述的编写比较入口相关方法,其目的在于明确使用何种比较方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810689835.0A CN109032838B (zh) | 2018-06-28 | 2018-06-28 | 虚拟机备份恢复数据一致性的自动校验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810689835.0A CN109032838B (zh) | 2018-06-28 | 2018-06-28 | 虚拟机备份恢复数据一致性的自动校验方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109032838A CN109032838A (zh) | 2018-12-18 |
CN109032838B true CN109032838B (zh) | 2022-07-15 |
Family
ID=65520790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810689835.0A Active CN109032838B (zh) | 2018-06-28 | 2018-06-28 | 虚拟机备份恢复数据一致性的自动校验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032838B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109773A (zh) * | 2019-04-11 | 2019-08-09 | 苏州浪潮智能科技有限公司 | 一种虚拟机磁盘一致性的检测方法及系统 |
CN110597662B (zh) * | 2019-09-11 | 2022-08-30 | 深圳市科力锐科技有限公司 | 备份数据自动验证方法、装置、用户设备及存储介质 |
CN110879742B (zh) * | 2019-10-15 | 2023-08-11 | 平安科技(深圳)有限公司 | 虚拟机异步创建内部快照方法、装置及存储介质 |
CN111221795A (zh) * | 2019-10-31 | 2020-06-02 | 北京浪潮数据技术有限公司 | 一种虚拟化磁盘数据校验方法、装置和介质 |
CN111338759A (zh) * | 2020-02-26 | 2020-06-26 | 平安科技(深圳)有限公司 | 虚拟磁盘校验码生成方法、装置、设备及存储介质 |
CN114138557B (zh) * | 2021-11-26 | 2022-05-27 | 北京大道云行科技有限公司 | 一种存储快照回滚数据一致性测试方法与装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635638A (zh) * | 2008-07-25 | 2010-01-27 | 中兴通讯股份有限公司 | 一种容灾系统及其容灾方法 |
CN103729264A (zh) * | 2013-12-23 | 2014-04-16 | 国云科技股份有限公司 | 一种Windows虚拟机系统盘备份还原方法 |
CN106919477A (zh) * | 2017-03-03 | 2017-07-04 | 上海爱数信息技术股份有限公司 | 一种虚拟磁盘的解析方法及系统 |
CN106951345A (zh) * | 2017-03-28 | 2017-07-14 | 上海爱数信息技术股份有限公司 | 一种虚拟机磁盘数据的一致性测试方法及装置 |
CN107818029A (zh) * | 2017-11-07 | 2018-03-20 | 上海爱数信息技术股份有限公司 | 一种云硬盘数据恢复一致性的自动化测试方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153614A1 (en) * | 2003-02-05 | 2004-08-05 | Haim Bitner | Tape storage emulation for open systems environments |
US8307177B2 (en) * | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US9075735B2 (en) * | 2012-06-21 | 2015-07-07 | Breakingpoint Systems, Inc. | Systems and methods for efficient memory access |
US10346095B2 (en) * | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
US9514002B2 (en) * | 2013-09-13 | 2016-12-06 | Vmware, Inc. | Incremental backups using retired snapshots |
US9747178B2 (en) * | 2015-08-26 | 2017-08-29 | Netapp, Inc. | Configuration inconsistency identification between storage virtual machines |
-
2018
- 2018-06-28 CN CN201810689835.0A patent/CN109032838B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635638A (zh) * | 2008-07-25 | 2010-01-27 | 中兴通讯股份有限公司 | 一种容灾系统及其容灾方法 |
CN103729264A (zh) * | 2013-12-23 | 2014-04-16 | 国云科技股份有限公司 | 一种Windows虚拟机系统盘备份还原方法 |
CN106919477A (zh) * | 2017-03-03 | 2017-07-04 | 上海爱数信息技术股份有限公司 | 一种虚拟磁盘的解析方法及系统 |
CN106951345A (zh) * | 2017-03-28 | 2017-07-14 | 上海爱数信息技术股份有限公司 | 一种虚拟机磁盘数据的一致性测试方法及装置 |
CN107818029A (zh) * | 2017-11-07 | 2018-03-20 | 上海爱数信息技术股份有限公司 | 一种云硬盘数据恢复一致性的自动化测试方法 |
Non-Patent Citations (2)
Title |
---|
Efficient Checkpointing of Live Virtual Machines;Bernhard Egger;《IEEE Transactions on Computers》;20160120;第3041-3054页 * |
一种基于遗传算法的虚拟机镜像自适应备份策略;许继伟等;《计算机学报》;20151016;第351-363页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109032838A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032838B (zh) | 虚拟机备份恢复数据一致性的自动校验方法 | |
CN106951345B (zh) | 一种虚拟机磁盘数据的一致性测试方法及装置 | |
US7386752B1 (en) | Using asset dependencies to identify the recovery set and optionally automate and/or optimize the recovery | |
US7908521B2 (en) | Process reflection | |
JP5970617B2 (ja) | 開発支援システム | |
JP6788178B2 (ja) | 設定支援プログラム、設定支援方法及び設定支援装置 | |
CN102637144B (zh) | 一种系统故障的处理方法和装置 | |
US9256454B2 (en) | Determining optimal methods for creating virtual machines | |
CN106201502B (zh) | 一种跨主机应用程序部署方法及装置 | |
CN111580929A (zh) | 一种基于虚拟机保护数据的有效性验证系统及方法 | |
KR20060049879A (ko) | 최적화된 복원 계획을 생성하는 방법 | |
KR101949115B1 (ko) | 디바이스 드라이버 검출 에러들의 자가 진단 및 자동 진단 데이터 수집 | |
CN107818029B (zh) | 一种云硬盘数据恢复一致性的自动化测试方法 | |
CN107577597B (zh) | 安装包自动化测试方法、装置、设备和存储介质 | |
EP3690653A1 (en) | Bios recovery and update | |
US11500854B2 (en) | Selective data synchronization to troubleshoot production environment failures | |
CN110209525B (zh) | 操作系统还原方法及装置 | |
CN104699615A (zh) | 一种系统故障的处理方法和装置 | |
CN108241543B (zh) | 业务操作断点执行的方法、业务服务器及系统 | |
JP2007226287A (ja) | システム環境再現方法およびシステム環境修正方法 | |
US20210173750A1 (en) | Methods to automatically correct and improve system recovery and replication processes | |
CN110045971B (zh) | 系统升级恢复方法及装置 | |
CN107544868B (zh) | 数据恢复方法和装置 | |
CN104035795A (zh) | 一种控制ring0级程序执行的方法及装置 | |
CN109032955B (zh) | 一种ui自动化测试方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Automatic verification method for data consistency in virtual machine backup and recovery Effective date of registration: 20231115 Granted publication date: 20220715 Pledgee: Bank of Shanghai Limited by Share Ltd. Pudong branch Pledgor: SHANGHAI EISOO INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2023310000743 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |