一種不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法
【專利摘要】本發(fā)明涉及一種不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法,包括以下步驟:1)獲取要恢復(fù)虛擬機的GUID并隨機生成一個新的虛擬機GUID;2)將VSS備份組件信息里的虛擬機GUID修改為步驟1)生成的新的虛擬機GUID;3)將虛擬機的配置文件里的虛擬機GUID修改為步驟1)生成的新的虛擬機GUID;4)根據(jù)修改后的VSS備份組件信息和虛擬機配置文件信息,調(diào)用VSS接口恢復(fù)注冊新恢復(fù)的虛擬機。與現(xiàn)有技術(shù)相比,本發(fā)明具有降低備份風險、提高用戶的體驗性和使用性等優(yōu)點。
【專利說明】—種不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種虛擬機恢復(fù)技術(shù),尤其是涉及一種不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法。
【背景技術(shù)】
[0002]當前,隨著虛擬化技術(shù)的越來越成熟,越來越多的企業(yè)和組織機構(gòu)都將應(yīng)用部署在虛擬化平臺的虛擬機上,例如微軟公司的hyper-v虛擬化平臺,那么如何保護這些部署在虛擬化平臺上的應(yīng)用數(shù)據(jù)就成了這些企業(yè)和組織機構(gòu)最關(guān)心的問題之一。
[0003]為了迎合這么龐大的虛擬機數(shù)據(jù)備份市場,很多備份軟件廠商都相繼實現(xiàn)了對hyp er-v虛擬化平臺的虛擬機的備份和恢復(fù)功能。但是作為第三方的軟件廠商如何實現(xiàn)hyper-v虛擬機的備份和恢復(fù)功能,便捷可行的辦法就是直接調(diào)用微軟公司專門為hyper-v虛擬機備份和恢復(fù)提供的一套VSS接口。
[0004]這里簡單介紹一下通過VSS (volume shadow copy service)接 口恢復(fù) hyper-v 虛擬機的原理。在備份hyper-v虛擬機的時候,需要將備份時產(chǎn)生的VSS備份組件(VSS是微軟的應(yīng)用程序通用的備份恢復(fù)框架,它是以組件為單位來組織,這里的一個虛擬機就是VSS里的一個組件)的相關(guān)信息記錄起來以便恢復(fù)時能正確的初始化VSS組件。由于這些信息記錄了虛擬機⑶ID (Globally Unique Identifier,全局唯一標識符,通過⑶ID來判斷虛擬機的唯一性)、虛擬機的文件列表以及虛擬機文件組織關(guān)系等。所以恢復(fù)時,要先將之前備份保存的這些VSS備份組件信息讀取出來,對VSS的組件進行初始化,然后VSS組件就知道該怎么樣去組織和恢復(fù)這臺虛擬機。VSS在恢復(fù)時會根據(jù)⑶ID判斷該平臺上是否存在相同GUID的虛擬機,如果存在則對其進行刪除后再恢復(fù),而這個操作是第三方軟件廠商無法左右的。
[0005]由于備份軟件廠商調(diào)用的是微軟公司提供的VSS接口,那么備份軟件廠商基于VSS接口實現(xiàn)的一些功能也自然因VSS接口本身的原因而受到限制。特別是通過VSS接口來實現(xiàn)Hyper-v虛擬機的恢復(fù)。在調(diào)用VSS接口恢復(fù)hyper-v虛擬機時候,有一些操作是VSS接口默認實現(xiàn),哪怕你不需要或不想要那么做。比如說在恢復(fù)之前,VSS接口會判斷當前的虛擬機平臺上是否存在一個與要恢復(fù)的虛擬機的GUID相同的虛擬機,如果存在那么它就會先將虛擬平臺上的這臺虛擬機刪除掉。它不會考慮你這臺虛擬機是什么或者有多么重要,只要它認為這臺虛擬機和將要恢復(fù)的虛擬機是同一臺虛擬機。但是有過vmware虛擬機備份恢復(fù)經(jīng)驗的人就感覺這是一個很嚴重的缺陷。因為vmware虛擬機可以在同一個平臺上恢復(fù)出N臺GUID不同的新虛擬機,而對之前備份的那臺虛擬機不會產(chǎn)生任何影響。由于這點限制給備份軟件廠商帶來很大的不便和被動。比如說在客戶的實施現(xiàn)場,我們就得跟客戶說要求準備兩個hyper-v虛擬化平臺,一個平臺提供備份虛擬機,另一個平臺準備恢復(fù)虛擬機,因為誰也不敢保證在客戶的環(huán)境下一次就能順利驗收hyper-v虛擬機的備份恢復(fù)功能。假如說恢復(fù)失敗那么導(dǎo)致的后果是將客戶的原虛擬機刪除,而備份存儲里的虛擬機又恢復(fù)不出來,有可能會造成客戶的損失。又比如說,客戶想在同一個虛擬平臺上驗證備份的虛擬機是否能正?;謴?fù)使用,但又不想影響到原來的虛擬機;或者客戶想在同一平臺恢復(fù)出幾臺相同的虛擬機作為別的用途,現(xiàn)有的hyper-v虛擬化平臺恢復(fù)方法就不能滿足這些要求。
[0006]基于上述種種情況,本發(fā)明可以完美解決hyper-v虛擬化平臺上刪除原虛擬機恢復(fù)的問題。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種降低備份風險、提高用戶的體驗性和使用性的不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法。
[0008]本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):
[0009]一種不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法,包括以下步驟:
[0010]1)獲取要恢復(fù)虛擬機的⑶ID并隨機生成一個新的虛擬機⑶ID ;
[0011]2)將VSS備份組件信息里的虛擬機⑶ID修改為步驟1)生成的新的虛擬機⑶ID ;
[0012]3)將虛擬機的配置文件里的虛擬機⑶ID修改為步驟1)生成的新的虛擬機⑶ID:
[0013]4)根據(jù)修改后的VSS備份組件信息和虛擬機配置文件信息,調(diào)用VSS接口恢復(fù)注冊新恢復(fù)的虛擬機。
[0014]所述的步驟2)具體為:
[0015]201)從備份介質(zhì)中讀取出VSS備份組件信息;
[0016]202)根據(jù)要恢復(fù)虛擬機的⑶ID查找對應(yīng)于該虛擬機的VSS備份組件信息;
[0017]203)將VSS備份組件信息里要恢復(fù)虛擬機的⑶ID統(tǒng)一修改為新的虛擬機⑶ID。
[0018]所述的步驟3)具體為:
[0019]301)從備份介質(zhì)中讀取出虛擬機的配置文件信息;
[0020]302)逐行遍歷虛擬機配置文件信息,判斷是否存在要恢復(fù)虛擬機的⑶ID,若是,則將其修改成步驟1)生成的新的虛擬機GUID ;
[0021]303)將修改后的虛擬機配置文件恢復(fù)到hyper-v虛擬平臺上。
[0022]與現(xiàn)有技術(shù)相比,本發(fā)明通過自行生成一個新的虛擬機⑶ID,并同時修改VSS備份組件信息里虛擬機的GUID和虛擬機配置文件的信息里的虛擬機GUID,使這兩部分信息里的原來虛擬機的GUID同時修改成新生成的虛擬機GUID的方法,可以實現(xiàn)在恢復(fù)的過程中不會去刪除虛擬機平臺上的原虛擬機,從而達到在同一個hyper-v虛擬化平臺上恢復(fù)多個除了⑶ID不同之外的克隆虛擬機(指的是完全一樣的虛擬機)出來。這樣就可以解決在客戶的實施現(xiàn)場要求客戶準備多個虛擬化平臺的問題,也可以解決客戶的所提出的一些要求。本發(fā)明簡化了軟件驗收流程,降低了軟件驗收出現(xiàn)意外的風險,同時提高了用戶的體驗性和使用性。
[0023]通過本發(fā)明可以達到以下有益效果:
[0024]1、通過本發(fā)明可以在Hyper-v虛擬化平臺上實現(xiàn)不刪除原虛擬機的恢復(fù);
[0025]2、由于恢復(fù)時不刪除原虛擬機,客戶驗收Hyper-v備份和恢復(fù)功能的流程變得更簡單方便,從而降低備份軟件的驗收風險;
[0026]3、由于恢復(fù)時不影響原虛擬機,可以滿足客戶在同一平臺上恢復(fù)出多臺與生產(chǎn)機完全相同的虛擬機進行其他用途,比如說用來做測試等?!緦@綀D】
【附圖說明】
[0027]圖1為本發(fā)明的流程示意圖。
【具體實施方式】
[0028]下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。本實施例以本發(fā)明技術(shù)方案為前提進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。
[0029]在實際應(yīng)用中,執(zhí)行恢復(fù)任務(wù)時,可根據(jù)需要選擇是否進行不刪除原虛擬機的恢復(fù),若不選擇,則通過VSS接口采用一般恢復(fù)方法,直接根據(jù)VSS備份組件信息初始化VSS組件,并執(zhí)行一些恢復(fù)的初始化工作,然后將虛擬機的磁盤文件和配置文件全部恢復(fù)到虛擬平臺上,最后調(diào)用VSS接口執(zhí)行恢復(fù)步驟,注冊新恢復(fù)的虛擬機。
[0030]若選擇不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法,則采用如圖1所示步驟進行:
[0031]步驟S01中,從備份介質(zhì)中讀取出VSS備份組件信息;
[0032]步驟S02中,獲取要恢復(fù)虛擬機A的⑶ID,并隨機生成一個新的虛擬機⑶ID,⑶ID是一個永不重復(fù)的字符串序列,可以通過現(xiàn)成的接口生成⑶ID ;
[0033]虛擬機A 的⑶ID 為 “B34CF217-83C6-4865-BBD1-21DD7A54D089”,新的虛擬機⑶ID 為"C2D061A0-FC98-472a-92AD-A4DC8DC226DC";
[0034]步驟S03中,根據(jù)恢復(fù)虛擬機A的⑶ID找到該虛擬機的VSS備份組件信息,并將組件信息里的GUID改成新生成的虛擬機的GUID ;
[0035]步驟S04中,將修改后的VSS備份組件信息初始化VSS組件,并進行一些恢復(fù)初始化工作;
[0036]步驟S05中,讀取虛擬機的配置文件信息,逐行遍歷虛擬機配置文件信息,判斷是否存在要恢復(fù)虛擬機的GUID,若是,則將其修改成步驟S02中生成的新的虛擬機GUID ;
[0037]步驟S06中,將修改后的虛擬機配置文件和虛擬機磁盤文件恢復(fù)到hyper-v虛擬平臺上;
[0038]步驟S07中,通過VSS接口恢復(fù)注冊新恢復(fù)的虛擬機,調(diào)用VSS接口進行恢復(fù)操作,使新恢復(fù)的虛擬機正確注冊到hyper-v虛擬化平臺上。
【權(quán)利要求】
1.一種不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法,其特征在于,包括以下步驟:1)獲取要恢復(fù)虛擬機的GUID并隨機生成一個新的虛擬機GUID;2)將VSS備份組件信息里的虛擬機⑶ID修改為步驟1)生成的新的虛擬機⑶ID;3)將虛擬機的配置文件里的虛擬機GUID修改為步驟1)生成的新的虛擬機GUID;4)根據(jù)修改后的VSS備份組件信息和虛擬機配置文件信息,調(diào)用VSS接口恢復(fù)注冊新恢復(fù)的虛擬機。
2.根據(jù)權(quán)利要求1所述的一種不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法,其特征在于,所述的步驟2)具體為:201)從備份介質(zhì)中讀取出VSS備份組件信息;202)根據(jù)要恢復(fù)虛擬機的GUID查找對應(yīng)于該虛擬機的VSS備份組件信息;203)將VSS備份組件信息里要恢復(fù)虛擬機的⑶ID統(tǒng)一修改為新的虛擬機⑶ID。
3.根據(jù)權(quán)利要求1所述的一種不刪除原虛擬機的hyper-v虛擬化平臺恢復(fù)方法,其特征在于,所述的步驟3)具體為:301)從備份介質(zhì)中讀取出虛擬機的配置文件信息;302)逐行遍歷虛擬機配置文件信息,判斷是否存在要恢復(fù)虛擬機的⑶ID,若是,則將其修改成步驟1)生成的新的虛擬機GUID ;303)將修改后的虛擬機配置文件恢復(fù)到hyper-v虛擬平臺上。
【文檔編號】G06F9/455GK103678037SQ201310612533
【公開日】2014年3月26日 申請日期:2013年11月26日 優(yōu)先權(quán)日:2013年11月26日
【發(fā)明者】劉榮偉 申請人:上海愛數(shù)軟件有限公司