Hyper‑v虚拟机的恢复方法、系统与流程

文档序号:12469840阅读:2093来源:国知局
Hyper‑v虚拟机的恢复方法、系统与流程

本发明涉及Hyper-v虚拟机领域,特别是涉及Hyper-v虚拟机的恢复方法、系统。



背景技术:

作为“智慧的信息技术”的重要组成部分,虚拟化与云计算已成为当今信息产业领域最受瞩目的新兴概念。越来越多的企业开始认识到实现虚拟化环境的优势并将应用部署在虚拟化平台的虚拟机上,微软公司的Hyper-v虚拟化技术的应用也越来越广泛。如何保护这些部署在虚拟化平台上的应用数据就成了企业最关心问题之一。

为了迎合庞大的虚拟机数据备份市场,很多备份软件厂商都相继实现了对Hyper-v虚拟化平台的虚拟机的备份和恢复功能。技术原理上,对于第三方的软件厂商来说,便捷可行的方法就是通过直接调用微软公司专门为Hyper-v虚拟机备份恢复提供的VSS接口,来实现Hyper-v的备份恢复功能。其具体原理为:在备份Hyper-v虚拟机时,需要将备份时产生的VSS备份组件的相关信息保存,在恢复该Hyper-v虚拟机时,读取备份保存的这些VSS备份组件信息,对VSS的组件进行初始化,然后VSS组件就会通过这些信息来自动组织和恢复这台虚拟机。

然而,由于备份软件厂商调用的是微软公司提供的VSS接口,所以通过VSS接口来实现Hyper-v虚拟机的恢复也自然因VSS接口本身的原因而受到限制。例如,在恢复之前,VSS的接口会判断当前的虚拟机平台上是否存在一个与要恢复的虚拟机的GUID(Globally Unique Identifier,全局唯一标识符)相同的虚拟机,如果存在就会先将虚拟平台上的这台虚拟机删除掉,并不会考虑这台虚拟机是什么或者是否重要就直接删除。但是,对于大部分有Hyper-v虚拟机备份恢复需求的客户来说,这个缺陷是及其严重且无法接受的。

客户在很多场景下想要保留原虚拟机,并单独恢复出来之前某一备份状态下的虚拟机,即实现新虚拟机与原虚拟机同时存在并可独立作为完整虚拟机来使用。按照目前VSS接口的技术实现,只能通过两个虚拟化平台来实现这个需求,即将虚拟机恢复到另一个虚拟化平台上。这会大大提高用户的硬件和时间成本,大多数的客户都表示无法接受,并提出希望备份厂商提供一种独立于原虚拟机的且通过新建虚拟机的方式来恢复虚拟机的方案。

另一方面,直接调用VSS接口恢复出来的虚拟机会整合备份快照并保留用户快照。由于Hyper-v虚拟机和虚拟机快照均具有全局唯一性,当第三方备份厂商贸然在同一虚拟化平台通过某些方式恢复出独立于原虚拟机的新建虚拟机,会彻底打乱虚拟机的结构,导致诸如虚拟机备份快照无法整合、丢失,原虚拟机和新建虚拟机使用用户快照等无法预计的严重错误,不仅导致新虚拟机不能恢复,还会使得原虚拟机崩溃,给用户带来无法评估的损失。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供Hyper-v虚拟机的恢复方法、系统,用于迎合上述市场需求,解决现有技术中存在的上述问题。

为实现上述目的及其他相关目的,本发明提供Hyper-v虚拟机的恢复方法,所述Hyper-v虚拟机预存有VSS备份组件信息,包括:所述Hyper-v虚拟机的GUID及快照文件,所述方法包括:新建GUID步骤,包括:获取所述Hyper-v虚拟机的第一GUID,并随机生成所述Hyper-v虚拟机的第二GUID;获取所述VSS备份组件信息中所有的快照文件,并分别为各所述快照文件随机生成第三GUID;替换GUID步骤,包括:将所述第一GUID替换为所述第二GUID;查找各所述快照文件的GUID,并将其一一对应替换为各所述第三GUID;虚拟机恢复步骤,包括:用替换过GUID的VSS备份组件信息初始化所述Hyper-v虚拟机的VSS组件,以供初始化后的VSS组件自动组织和恢复出新的Hyper-v虚拟机,并通过调用VSS接口予以注册。

于本发明一实施例中,所述VSS备份组件信息还包括备份时保存的:配置文件信息、快照文件名称、快照文件的内容、及磁盘文件数据;所述初始化后的VSS组件自动组织和恢复出新的Hyper-v虚拟机,包括:读取所述配置文件信息、快照文件名称、快照文件的内容,且将其中原有的GUID对应替换为新建的GUID并恢复;读取所述磁盘文件数据并恢复。

于本发明一实施例中,所述VSS备份组件信息包括:虚拟机文件组织关系;所述获取所述VSS备份组件信息中所有的快照文件,包括:获取所述虚拟机文件组织关系,并从中筛选出所有的备份快照文件。

于本发明一实施例中,所述VSS备份组件信息包括:虚拟机备份文件列表;所述获取所述VSS备份组件信息中所有的快照文件,包括:获取所述虚拟机备份文件列表,并从中筛选出所有的用户快照文件。

于本发明一实施例中,在所述新建GUID步骤之前还包括:虚拟机恢复模式选择步骤,所述恢复模式还包括:通过VSS接口恢复所述Hyper-v虚拟机。

为实现上述目的及其他相关目的,本发明提供Hyper-v虚拟机的恢复系统,所述Hyper-v虚拟机预存有VSS备份组件信息,包括:所述Hyper-v虚拟机的GUID及快照文件,所述系统包括:新建GUID模块,用于:获取所述Hyper-v虚拟机的第一GUID,并随机生成所述Hyper-v虚拟机的第二GUID;获取所述VSS备份组件信息中所有的快照文件,并分别为各所述快照文件随机生成第三GUID;替换GUID模块,用于:将所述第一GUID替换为所述第二GUID;查找各所述快照文件的GUID,并将其一一对应替换为各所述第三GUID;虚拟机恢复模块,用于:用替换过GUID的VSS备份组件信息初始化所述Hyper-v虚拟机的VSS组件,以供初始化后的VSS组件自动组织和恢复出新的Hyper-v虚拟机,并通过调用VSS接口予以注册。

于本发明一实施例中,所述VSS备份组件信息还包括备份时保存的:配置文件信息、快照文件名称、快照文件的内容、及磁盘文件数据;所述初始化后的VSS组件自动组织和恢复出新的Hyper-v虚拟机,包括:读取所述配置文件信息、快照文件名称、快照文件的内容,且将其中原有的GUID对应替换为新建的GUID并恢复;读取所述磁盘文件数据并恢复。

于本发明一实施例中,所述VSS备份组件信息包括:虚拟机文件组织关系;所述获取所述VSS备份组件信息中所有的快照文件,包括:获取所述虚拟机文件组织关系,并从中筛选出所有的备份快照文件。

于本发明一实施例中,所述VSS备份组件信息包括:虚拟机备份文件列表;所述获取所述VSS备份组件信息中所有的快照文件,包括:获取所述虚拟机备份文件列表,并从中筛选出所有的用户快照文件。

于本发明一实施例中,所述系统还包括:虚拟机恢复模式选择模块,用于判断是否进入新建虚拟机恢复模式;若否,则进入通过VSS接口恢复所述Hyper-v虚拟机的模式。

如上所述,本发明的Hyper-v虚拟机的恢复方法、系统,具有以下有益效果:

1)可以在Hyper-v虚拟化平台上通过新建虚拟机来恢复Hyper-v虚拟机,并能使其在整合了备份快照同时保留用户快照;

2)可独立于原虚拟机进行新虚拟机恢复,满足客户在同一虚拟化平台上恢复多台不同备份状态的虚拟机的需求;

3)新虚拟机在保留了原用户快照的情况下,客户可在新虚拟机中通过恢复快照来恢复到之前执行快照时的状态,在同时整合了备份快照的情况下,会大大降低对虚拟机性能的影响;

4)使得在客户现场演示Hyper-v备份恢复的流程更加简洁、方便,降低验收风险,提高软件的用户体验及成品知名度。

附图说明

图1显示为本发明一实施例的Hyper-v虚拟机的恢复方法流程图。

图2显示为本发明另一实施例的Hyper-v虚拟机的恢复方法流程图。

图3显示为本发明一实施例的Hyper-v虚拟机的恢复系统模块图。

元件标号说明

300 Hyper-v虚拟机的恢复系统

301 新建GUID模块

302 替换GUID模块

303 虚拟机恢复模块

S101~S103 步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

本发明涉及微软公司推出的Hyper-v虚拟平台上的独立于原虚拟机,且可拥有原虚拟机用户快照并整合备份快照的新建虚拟机的恢复方法。常规的情况下对Hyper-v虚拟机的备份和恢复都是通过调用微软提供的VSS(volume shadow copy service)的接口来实现,导致无法保留原虚拟机,并且,贸然恢复出独立于原虚拟机的新建虚拟机,会彻底打乱虚拟机的结构,导致新虚拟机不能恢复原虚拟机崩溃,造成无法评估的损失。

请参阅图1和图2,为解决该类问题,本发明提出的Hyper-v虚拟机的恢复方法,基于VSS接口新建虚拟机,并自动整合备份快照、同时保留用户快照实现虚拟机的恢复。需要说明的是,该Hyper-v虚拟机为预先进行过备份的虚拟机,也即存储有备份时产生的VSS备份组件信息。VSS备份组件信息是一些以XML(Extensible Markup Language)格式组织起来的字符串,它记录了备份虚拟机的GUID和所有的文件信息,例如:虚拟机的备份文件列表、虚拟机的文件组织关系、备份时保存的:配置文件信息、快照文件名称、快照文件的内容、磁盘文件数据等等。所述方法主要包括:

步骤S101、新建GUID:读取备份时保存的VSS组件信息,记录原虚拟机GUID,并随机生成一个新的GUID。解析并记录VSS备份组件信息中记录的文件组织关系,即虚拟机文件真实名称与其在VSS组件中的别名的一一对应关系,从中筛选出所有的备份快照文件,并生成同等数量的新的GUID;解析并记录VSS备份组件信息中所有已备份的文件列表,从中筛选出所有的用户快照文件,并生成同等数量的新的GUID。

步骤S102、替换GUID:遍历查找VSS备份组件信息中所有以上记录的GUID,并分别对应替换为新生成的GUID。

步骤S103、虚拟机恢复:用修改过的VSS备份组件信息来初始化所述Hyper-v虚拟机的原VSS组件,从而恢复出新的Hyper-v虚拟机,并通过调用VSS接口恢复注册该新的Hyper-v虚拟机。其中,恢复出新的Hyper-v虚拟机包括:读取备份时保存的配置文件信息,遍历查找所有以上记录的GUID,对应替换为新生成的GUID并恢复;轮流读取备份时保存的快照文件名称,将原快照文件名称中的GUID对应替换为新生成的GUID并恢复;轮流读取备份时保存的快照文件的内容,遍历查找所有以上记录的GUID,对应替换为新生成的GUID并恢复;轮流读取备份时保存的磁盘文件数据,并恢复。

需要说明的是,此时,因虚拟机VSS组件、配置文件均已修改具有唯一标识,所以在恢复时,若再次检索虚拟化平台,就无法找到具有相同GUID的虚拟机,同时因备份快照文件、用户快照文件也已修改具有唯一标示且在配置文件及快照文件中的各快照相应关系已修改为符合Hyper-v识别的逻辑,因此恢复注册过程中将自动整合备份快照,同时保留用户快照。

以下将通过一个具体的实例说明上述方法的实现过程:

1、执行虚拟机恢复任务,选择恢复虚拟机VM-01,执行新建虚拟机恢复,记录虚拟机VM-01的GUID“51D7EFB0-19F0-46F6-AD3D-CBE0DE4A15BA”,并生成新的GUID“176DA0D8-8782-4edc-AD19-510FADD11F71”。

2、解析到文件组织信息中,

{C:\VM\111\Snapshots\6BA217BF-A4CD-4275-9F81-81287830142C.xml}与{C:\VM\111\Snapshots\51D7EFB0-19F0-46F6-AD3D-CBE0DE4A15BA-BackupSnapshot.xml},{C:\VM\111\Virtual Hard Disks\111_CBFA671B-BA2F-42BE-B40C-7F81C407BB3C.avhdx}与{C:\VM\111\Virtual Hard Disks\111_C9FA81C8-1A41-437C-91FE-8BC9CFAC7966-ChildVhd.avhd}为一一对应的关系。

3、解析文件组织关系,筛选得出备份快照文件为{6BA217BF-A4CD-4275-9F81-81287830142C.xml},记录备份快照文件GUID为“6BA217BF-A4CD-4275-9F81-81287830142C”,生成新的GUID为“04D9E0C2-238A-42ed-BBBB-920F117DB255”。若有多个备份快照,则一一记录并生成新的GUID。

4、解析已备份文件列表,筛选得出用户快照文件为{F25474BC-8DCA-4698-A6B6-C1DC28D54CA7.xml},记录用户快照文件GUID为“F25474BC-8DCA-4698-A6B6-C1DC28D54CA7”,生成新的GUID为“E79ABFD4-5337-44ac-925A-2D6AF31596A4”。若有多个用户快照,则一一记录并生成新的GUID。

5、遍历检索VSS备份组件信息中出现的如上记录的GUID,并一一替换为新生成的GUID。

6、遍历配置文件、备份快照文件、用户快照文件的名称及内容,检索如上记录的GUID,并一一替换为新生成的GUID。

7、轮流恢复虚拟机磁盘文件数据。

8、调用VSS接口,注册新恢复出的虚拟机。

如图2所示,在另一实施例中,除了上述新建虚拟机的恢复方式,还包括通过VSS接口恢复所述Hyper-v虚拟机,用户可以在执行恢复任务时进行选择。通过VSS接口恢复所述Hyper-v虚拟机的方式,包括:通过VSS备份组件信息初始化原VSS组件,读取备份时保存的配置文件并恢复,读取备份时保存的磁盘文件并恢复,读取备份时保存的快照文件并恢复,从而恢复出新的虚拟机并注册。

请参阅图3,与方法实施例原理相似的是,本发明提供一种Hyper-v虚拟机的恢复系统300,包括:新建GUID模块301、替换GUID模块302、虚拟机恢复模块303。由于前述方法实施例中的技术特征可以应用于本系统实施例,因而不再重复赘述。

新建GUID模块301用于:获取所述Hyper-v虚拟机的第一GUID,并随机生成所述Hyper-v虚拟机的第二GUID;获取所述VSS备份组件信息中所有的快照文件,并分别为各所述快照文件随机生成第三GUID。在一实施例中,所述VSS备份组件信息包括:虚拟机文件组织关系;所述获取所述VSS备份组件信息中所有的快照文件,包括:获取所述虚拟机文件组织关系,并从中筛选出所有的备份快照文件。在另一实施例中,所述VSS备份组件信息包括:虚拟机备份文件列表;所述获取所述VSS备份组件信息中所有的快照文件,包括:获取所述虚拟机备份文件列表,并从中筛选出所有的用户快照文件。

替换GUID模块302用于:将所述第一GUID替换为所述第二GUID;查找各所述快照文件的GUID,并将其一一对应替换为各所述第三GUID。

虚拟机恢复模块303用于:用替换过GUID的VSS备份组件信息初始化所述Hyper-v虚拟机的VSS组件,以供初始化后的VSS组件自动组织和恢复出新的Hyper-v虚拟机,并通过调用VSS接口予以注册。在一实施例中,所述VSS备份组件信息还包括备份时保存的:配置文件信息、快照文件名称、快照文件的内容、及磁盘文件数据;所述初始化后的VSS组件自动组织和恢复出新的Hyper-v虚拟机,包括:读取所述配置文件信息、快照文件名称、快照文件的内容,且将其中原有的GUID对应替换为新建的GUID并恢复;读取所述磁盘文件数据并恢复。

在另一实施例中,所述系统300还包括:虚拟机恢复模式选择模块,用于判断是否进入新建虚拟机恢复模式;若否,则进入通过VSS接口恢复所述Hyper-v虚拟机的模式,包括:通过VSS备份组件信息初始化原VSS组件,读取备份时保存的配置文件并恢复,读取备份时保存的磁盘文件并恢复,读取备份时保存的快照文件并恢复,从而恢复出新的虚拟机并注册。

综上所述,本发明的Hyper-v虚拟机的恢复方法、系统,通过解析、记录原虚拟机GUID、原虚拟机各个用户快照的GUID、原虚拟机各个备份快照的GUID,然后生成相同数量的新的GUID,并分别来替换VSS备份组件中虚拟机、用户快照、备份快照的GUID,同时修改配置文件、快照文件名称、文件信息内保存的GUID,使其相关联系符合Hyper-v能正常识别的逻辑,从而达到在同一个Hyper-v虚拟化平台上可以恢复出若干个数据状态相同或不同的新虚拟机,有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1