一种不删除原虚拟机的hyper-v虚拟化平台恢复方法

文档序号:6520864阅读:767来源:国知局
一种不删除原虚拟机的hyper-v虚拟化平台恢复方法
【专利摘要】本发明涉及一种不删除原虚拟机的hyper-v虚拟化平台恢复方法,包括以下步骤:1)获取要恢复虚拟机的GUID并随机生成一个新的虚拟机GUID;2)将VSS备份组件信息里的虚拟机GUID修改为步骤1)生成的新的虚拟机GUID;3)将虚拟机的配置文件里的虚拟机GUID修改为步骤1)生成的新的虚拟机GUID;4)根据修改后的VSS备份组件信息和虚拟机配置文件信息,调用VSS接口恢复注册新恢复的虚拟机。与现有技术相比,本发明具有降低备份风险、提高用户的体验性和使用性等优点。
【专利说明】—种不删除原虚拟机的hyper-v虚拟化平台恢复方法
【技术领域】
[0001]本发明涉及一种虚拟机恢复技术,尤其是涉及一种不删除原虚拟机的hyper-v虚拟化平台恢复方法。
【背景技术】
[0002]当前,随着虚拟化技术的越来越成熟,越来越多的企业和组织机构都将应用部署在虚拟化平台的虚拟机上,例如微软公司的hyper-v虚拟化平台,那么如何保护这些部署在虚拟化平台上的应用数据就成了这些企业和组织机构最关心的问题之一。
[0003]为了迎合这么庞大的虚拟机数据备份市场,很多备份软件厂商都相继实现了对hyp er-v虚拟化平台的虚拟机的备份和恢复功能。但是作为第三方的软件厂商如何实现hyper-v虚拟机的备份和恢复功能,便捷可行的办法就是直接调用微软公司专门为hyper-v虚拟机备份和恢复提供的一套VSS接口。
[0004]这里简单介绍一下通过VSS (volume shadow copy service)接 口恢复 hyper-v 虚拟机的原理。在备份hyper-v虚拟机的时候,需要将备份时产生的VSS备份组件(VSS是微软的应用程序通用的备份恢复框架,它是以组件为单位来组织,这里的一个虚拟机就是VSS里的一个组件)的相关信息记录起来以便恢复时能正确的初始化VSS组件。由于这些信息记录了虚拟机⑶ID (Globally Unique Identifier,全局唯一标识符,通过⑶ID来判断虚拟机的唯一性)、虚拟机的文件列表以及虚拟机文件组织关系等。所以恢复时,要先将之前备份保存的这些VSS备份组件信息读取出来,对VSS的组件进行初始化,然后VSS组件就知道该怎么样去组织和恢复这台虚拟机。VSS在恢复时会根据⑶ID判断该平台上是否存在相同GUID的虚拟机,如果存在则对其进行删除后再恢复,而这个操作是第三方软件厂商无法左右的。
[0005]由于备份软件厂商调用的是微软公司提供的VSS接口,那么备份软件厂商基于VSS接口实现的一些功能也自然因VSS接口本身的原因而受到限制。特别是通过VSS接口来实现Hyper-v虚拟机的恢复。在调用VSS接口恢复hyper-v虚拟机时候,有一些操作是VSS接口默认实现,哪怕你不需要或不想要那么做。比如说在恢复之前,VSS接口会判断当前的虚拟机平台上是否存在一个与要恢复的虚拟机的GUID相同的虚拟机,如果存在那么它就会先将虚拟平台上的这台虚拟机删除掉。它不会考虑你这台虚拟机是什么或者有多么重要,只要它认为这台虚拟机和将要恢复的虚拟机是同一台虚拟机。但是有过vmware虚拟机备份恢复经验的人就感觉这是一个很严重的缺陷。因为vmware虚拟机可以在同一个平台上恢复出N台GUID不同的新虚拟机,而对之前备份的那台虚拟机不会产生任何影响。由于这点限制给备份软件厂商带来很大的不便和被动。比如说在客户的实施现场,我们就得跟客户说要求准备两个hyper-v虚拟化平台,一个平台提供备份虚拟机,另一个平台准备恢复虚拟机,因为谁也不敢保证在客户的环境下一次就能顺利验收hyper-v虚拟机的备份恢复功能。假如说恢复失败那么导致的后果是将客户的原虚拟机删除,而备份存储里的虚拟机又恢复不出来,有可能会造成客户的损失。又比如说,客户想在同一个虚拟平台上验证备份的虚拟机是否能正常恢复使用,但又不想影响到原来的虚拟机;或者客户想在同一平台恢复出几台相同的虚拟机作为别的用途,现有的hyper-v虚拟化平台恢复方法就不能满足这些要求。
[0006]基于上述种种情况,本发明可以完美解决hyper-v虚拟化平台上删除原虚拟机恢复的问题。

【发明内容】

[0007]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种降低备份风险、提高用户的体验性和使用性的不删除原虚拟机的hyper-v虚拟化平台恢复方法。
[0008]本发明的目的可以通过以下技术方案来实现:
[0009]一种不删除原虚拟机的hyper-v虚拟化平台恢复方法,包括以下步骤:
[0010]1)获取要恢复虚拟机的⑶ID并随机生成一个新的虚拟机⑶ID ;
[0011]2)将VSS备份组件信息里的虚拟机⑶ID修改为步骤1)生成的新的虚拟机⑶ID ;
[0012]3)将虚拟机的配置文件里的虚拟机⑶ID修改为步骤1)生成的新的虚拟机⑶ID:
[0013]4)根据修改后的VSS备份组件信息和虚拟机配置文件信息,调用VSS接口恢复注册新恢复的虚拟机。
[0014]所述的步骤2)具体为:
[0015]201)从备份介质中读取出VSS备份组件信息;
[0016]202)根据要恢复虚拟机的⑶ID查找对应于该虚拟机的VSS备份组件信息;
[0017]203)将VSS备份组件信息里要恢复虚拟机的⑶ID统一修改为新的虚拟机⑶ID。
[0018]所述的步骤3)具体为:
[0019]301)从备份介质中读取出虚拟机的配置文件信息;
[0020]302)逐行遍历虚拟机配置文件信息,判断是否存在要恢复虚拟机的⑶ID,若是,则将其修改成步骤1)生成的新的虚拟机GUID ;
[0021]303)将修改后的虚拟机配置文件恢复到hyper-v虚拟平台上。
[0022]与现有技术相比,本发明通过自行生成一个新的虚拟机⑶ID,并同时修改VSS备份组件信息里虚拟机的GUID和虚拟机配置文件的信息里的虚拟机GUID,使这两部分信息里的原来虚拟机的GUID同时修改成新生成的虚拟机GUID的方法,可以实现在恢复的过程中不会去删除虚拟机平台上的原虚拟机,从而达到在同一个hyper-v虚拟化平台上恢复多个除了⑶ID不同之外的克隆虚拟机(指的是完全一样的虚拟机)出来。这样就可以解决在客户的实施现场要求客户准备多个虚拟化平台的问题,也可以解决客户的所提出的一些要求。本发明简化了软件验收流程,降低了软件验收出现意外的风险,同时提高了用户的体验性和使用性。
[0023]通过本发明可以达到以下有益效果:
[0024]1、通过本发明可以在Hyper-v虚拟化平台上实现不删除原虚拟机的恢复;
[0025]2、由于恢复时不删除原虚拟机,客户验收Hyper-v备份和恢复功能的流程变得更简单方便,从而降低备份软件的验收风险;
[0026]3、由于恢复时不影响原虚拟机,可以满足客户在同一平台上恢复出多台与生产机完全相同的虚拟机进行其他用途,比如说用来做测试等。【专利附图】

【附图说明】
[0027]图1为本发明的流程示意图。
【具体实施方式】
[0028]下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0029]在实际应用中,执行恢复任务时,可根据需要选择是否进行不删除原虚拟机的恢复,若不选择,则通过VSS接口采用一般恢复方法,直接根据VSS备份组件信息初始化VSS组件,并执行一些恢复的初始化工作,然后将虚拟机的磁盘文件和配置文件全部恢复到虚拟平台上,最后调用VSS接口执行恢复步骤,注册新恢复的虚拟机。
[0030]若选择不删除原虚拟机的hyper-v虚拟化平台恢复方法,则采用如图1所示步骤进行:
[0031]步骤S01中,从备份介质中读取出VSS备份组件信息;
[0032]步骤S02中,获取要恢复虚拟机A的⑶ID,并随机生成一个新的虚拟机⑶ID,⑶ID是一个永不重复的字符串序列,可以通过现成的接口生成⑶ID ;
[0033]虚拟机A 的⑶ID 为 “B34CF217-83C6-4865-BBD1-21DD7A54D089”,新的虚拟机⑶ID 为"C2D061A0-FC98-472a-92AD-A4DC8DC226DC";
[0034]步骤S03中,根据恢复虚拟机A的⑶ID找到该虚拟机的VSS备份组件信息,并将组件信息里的GUID改成新生成的虚拟机的GUID ;
[0035]步骤S04中,将修改后的VSS备份组件信息初始化VSS组件,并进行一些恢复初始化工作;
[0036]步骤S05中,读取虚拟机的配置文件信息,逐行遍历虚拟机配置文件信息,判断是否存在要恢复虚拟机的GUID,若是,则将其修改成步骤S02中生成的新的虚拟机GUID ;
[0037]步骤S06中,将修改后的虚拟机配置文件和虚拟机磁盘文件恢复到hyper-v虚拟平台上;
[0038]步骤S07中,通过VSS接口恢复注册新恢复的虚拟机,调用VSS接口进行恢复操作,使新恢复的虚拟机正确注册到hyper-v虚拟化平台上。
【权利要求】
1.一种不删除原虚拟机的hyper-v虚拟化平台恢复方法,其特征在于,包括以下步骤:1)获取要恢复虚拟机的GUID并随机生成一个新的虚拟机GUID;2)将VSS备份组件信息里的虚拟机⑶ID修改为步骤1)生成的新的虚拟机⑶ID;3)将虚拟机的配置文件里的虚拟机GUID修改为步骤1)生成的新的虚拟机GUID;4)根据修改后的VSS备份组件信息和虚拟机配置文件信息,调用VSS接口恢复注册新恢复的虚拟机。
2.根据权利要求1所述的一种不删除原虚拟机的hyper-v虚拟化平台恢复方法,其特征在于,所述的步骤2)具体为:201)从备份介质中读取出VSS备份组件信息;202)根据要恢复虚拟机的GUID查找对应于该虚拟机的VSS备份组件信息;203)将VSS备份组件信息里要恢复虚拟机的⑶ID统一修改为新的虚拟机⑶ID。
3.根据权利要求1所述的一种不删除原虚拟机的hyper-v虚拟化平台恢复方法,其特征在于,所述的步骤3)具体为:301)从备份介质中读取出虚拟机的配置文件信息;302)逐行遍历虚拟机配置文件信息,判断是否存在要恢复虚拟机的⑶ID,若是,则将其修改成步骤1)生成的新的虚拟机GUID ;303)将修改后的虚拟机配置文件恢复到hyper-v虚拟平台上。
【文档编号】G06F9/455GK103678037SQ201310612533
【公开日】2014年3月26日 申请日期:2013年11月26日 优先权日:2013年11月26日
【发明者】刘荣伟 申请人:上海爱数软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1