一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法
【專利摘要】本發(fā)明涉及一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,包括以下步驟:1)虛擬機(jī)整機(jī)備份,使用服務(wù)器虛擬化平臺(tái)的API對(duì)需備份的虛擬機(jī)進(jìn)行快照,使虛擬機(jī)在某一個(gè)時(shí)間點(diǎn)產(chǎn)生一個(gè)完全可用的拷貝鏡像;2)組織和分析已備份的虛擬機(jī)鏡像文件,備份服務(wù)器根據(jù)不同粒度方式對(duì)虛擬機(jī)進(jìn)行恢復(fù),其中粒度方式分為:整機(jī)、硬盤、文件、應(yīng)用、分區(qū)。與現(xiàn)有技術(shù)相比,本發(fā)明在一次性備份的后能夠滿足各種粒度的恢復(fù),從而達(dá)到高效、精確的恢復(fù)有效數(shù)據(jù),減少不同程度的數(shù)據(jù)破壞、丟失或故障所造成的損失,減少有效數(shù)據(jù)的恢復(fù)時(shí)間。
【專利說明】一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬機(jī)數(shù)據(jù)保護(hù)和災(zāi)難恢復(fù)技術(shù),尤其是涉及一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法。
【背景技術(shù)】
[0002]服務(wù)器虛擬化是指將服務(wù)器物理資源抽象成邏輯資源,讓一臺(tái)服務(wù)器變成幾臺(tái)甚至上百臺(tái)相互隔離的虛擬服務(wù)器(虛擬機(jī)),我們不再受限于物理上的界限,而是讓CPU、內(nèi)存、磁盤、I/o等硬件變成可以動(dòng)態(tài)管理的“資源池”,從而提高資源的利用率,簡(jiǎn)化系統(tǒng)管理,實(shí)現(xiàn)服務(wù)器整合,讓IT對(duì)業(yè)務(wù)的變化更具適應(yīng)力。
[0003]服務(wù)器虛擬化技術(shù)將每個(gè)虛擬機(jī)與服務(wù)器硬件及其他虛擬機(jī)相隔離,確保在某個(gè)虛擬機(jī)崩潰時(shí)不會(huì)影響其他虛擬機(jī),使每個(gè)虛擬機(jī)可以裝上自己的管理程序,成為獨(dú)立的服務(wù)器,供客戶管理和使用。雖然虛擬機(jī)相互之間不會(huì)泄露數(shù)據(jù),而且應(yīng)用程序只能通過配置的網(wǎng)絡(luò)連接進(jìn)行通信,但是不是所有的管理程序都是完美無缺,沒有安全漏洞的,而這些安全漏洞和缺陷則有可能成為電腦黑客的攻擊服務(wù)器的著手點(diǎn)。他們通過這些安全漏洞和缺陷會(huì)順利地進(jìn)入服務(wù)器,進(jìn)行一些非法操作。更重要的是來自客戶本身的操作失誤導(dǎo)致的服務(wù)器上的數(shù)據(jù)丟失,而這種數(shù)據(jù)丟失將可能給應(yīng)用帶來無法挽回的損失。
[0004]服務(wù)器根據(jù)遭受到的數(shù)據(jù)破壞、丟失或者故障的不同程度,為了快速高效的恢復(fù)服務(wù)器狀態(tài),采用的主要保護(hù)技術(shù)是根據(jù)不同的粒度結(jié)構(gòu)進(jìn)行保護(hù),主要有:整機(jī)、硬盤、分區(qū)、應(yīng)用、文件等多種粒度,為了滿足這些不同粒度的備份通常需要采用多種備份方式。
[0005]在虛擬化文件備份場(chǎng)景下,如果某一虛擬機(jī)只進(jìn)行文件方式的備份,當(dāng)操作系統(tǒng)上的應(yīng)用改變了文件內(nèi)容,用戶操作以及病毒破壞導(dǎo)致了重要的數(shù)據(jù)丟失或破壞,系統(tǒng)遭到病毒入侵,C盤感染了病毒,D盤被格式化,E盤部分文件被篡改了導(dǎo)致無法打開等更種更樣的情況時(shí),而該服務(wù)器需要將整個(gè)系統(tǒng)和數(shù)據(jù)都恢復(fù)到備份時(shí)的狀態(tài),此時(shí)采用文件恢復(fù)方式使整個(gè)過程花費(fèi)了相當(dāng)長的時(shí)間,無法滿足用戶的RT0(Recovery Time Objective恢復(fù)時(shí)間目標(biāo))。
[0006]面對(duì)虛擬機(jī)操作系統(tǒng)遭受破壞和虛擬機(jī)的設(shè)備連接故障等嚴(yán)重的問題,服務(wù)器虛擬化廠商VMware的整機(jī)保護(hù)技術(shù)使用了 ESX Server代理服務(wù)器技術(shù),不需要在備份機(jī)上安裝代理即可恢復(fù)出整個(gè)虛擬機(jī)。雖然整機(jī)保護(hù)技術(shù)解決了嚴(yán)重的虛擬機(jī)破壞問題,但是,對(duì)于可預(yù)知的錯(cuò)誤操作導(dǎo)致的數(shù)據(jù)丟失,通過整機(jī)保護(hù)的恢復(fù)方式卻是一種效率非常低的做法,舉個(gè)例子,假如虛擬機(jī)VMl已經(jīng)進(jìn)行了整機(jī)備份,過了一段時(shí)間,VMl上的A文件誤刪除了,此時(shí)需要恢復(fù)A,使用整機(jī)保護(hù)恢復(fù)的過程是:從備份副本中恢復(fù)出VMl整機(jī)副本,從VMl整機(jī)副本中取出A文件,復(fù)制到VMl上。
[0007]為了滿足上述場(chǎng)景,服務(wù)器虛擬化技術(shù)下的虛擬機(jī)多種粒度的保護(hù),需要有一種高效的保護(hù)技術(shù)在一次性備份后滿足各種粒度的恢復(fù),從而達(dá)到高效、精確地恢復(fù)有效數(shù)據(jù),減少不同程度的數(shù)據(jù)破壞、丟失或故障所造成的損失。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,在一次性備份的后能夠滿足各種粒度的恢復(fù),從而達(dá)到高效、精確的恢復(fù)有效數(shù)據(jù),減少不同程度的數(shù)據(jù)破壞、丟失或故障所造成的損失,減少有效數(shù)據(jù)的恢復(fù)時(shí)間。
[0009]本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):
[0010]一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,其特征在于,包括以下步驟:
[0011]I)虛擬機(jī)整機(jī)備份,使用服務(wù)器虛擬化平臺(tái)的API對(duì)需備份的虛擬機(jī)進(jìn)行快照,使虛擬機(jī)在某一個(gè)時(shí)間點(diǎn)產(chǎn)生一個(gè)完全可用的拷貝鏡像;
[0012]2)組織和分析已備份的虛擬機(jī)鏡像文件,備份服務(wù)器根據(jù)不同粒度方式對(duì)虛擬機(jī)進(jìn)行恢復(fù),其中粒度方式分為:
[0013]整機(jī):包含虛擬機(jī)的硬件配置信息、硬盤存儲(chǔ)位置、系統(tǒng)狀態(tài)和硬盤數(shù)據(jù);
[0014]硬盤:包含虛擬機(jī)所配置硬盤數(shù)量、主從配置信息和硬盤數(shù)據(jù);
[0015]文件:包含虛擬機(jī)文件系統(tǒng)上的所有文件和目錄;
[0016]應(yīng)用:包含安裝在虛擬機(jī)文件系統(tǒng)上的應(yīng)用程序信息;
[0017]分區(qū):包含虛擬機(jī)文件系統(tǒng)下的分區(qū)大小、分區(qū)位置、扇區(qū)、塊的分區(qū)信息,以及分區(qū)上的存儲(chǔ)數(shù)據(jù)。
[0018]所述的步驟I)中的虛擬機(jī)整機(jī)備份具體步驟如下:
[0019](101)備份服務(wù)器指定選定要備份的虛擬機(jī)并建立備份任務(wù);
[0020](102)對(duì)虛擬機(jī)做快照,檢測(cè)當(dāng)前虛擬機(jī)是否處于關(guān)機(jī)狀態(tài),如果處于關(guān)機(jī)狀態(tài),則直接向虛擬服務(wù)器發(fā)出為該虛擬機(jī)做快照的命令;若虛擬機(jī)處于開機(jī)狀態(tài),則發(fā)出應(yīng)用靜默操作,期間使用虛擬機(jī)文件系統(tǒng)內(nèi)部的應(yīng)用快照組件完成數(shù)據(jù)從內(nèi)存刷到磁盤的操作,完成靜默操作以后,再為該虛擬機(jī)做磁盤快照;
[0021](103)讀取虛擬機(jī)鏡像文件,虛擬機(jī)完成快照操作以后將會(huì)產(chǎn)生磁盤快照鏡像文件,備份服務(wù)器通過對(duì)該鏡像文件進(jìn)行讀取完成備份和對(duì)該虛擬機(jī)的配置信息文件進(jìn)行讀取完成備份;
[0022](104)傳輸備份數(shù)據(jù)到備份服務(wù)器,并在備份服務(wù)器上完成數(shù)據(jù)的組織和存儲(chǔ);
[0023](105)建立備份的元數(shù)據(jù)管理,將組織后的備份數(shù)據(jù)進(jìn)行有效的元數(shù)據(jù)管理,建立索引和存儲(chǔ)分配操作;
[0024](106)虛擬機(jī)備份數(shù)據(jù)讀取完成和元數(shù)據(jù)組織完成,整個(gè)虛擬機(jī)完成備份過程。
[0025]所述的步驟2)中的備份服務(wù)器根據(jù)不同粒度方式對(duì)虛擬機(jī)進(jìn)行恢復(fù)具體步驟如下:
[0026](201)開始恢復(fù),備份服務(wù)器選擇整機(jī)級(jí)、硬盤級(jí)、文件級(jí)、應(yīng)用級(jí)和分區(qū)級(jí)的其中一種方式進(jìn)行恢復(fù),若選擇整機(jī)級(jí),進(jìn)行步驟(202),若選擇硬盤級(jí),執(zhí)行步驟(203),若選擇文件級(jí)和分區(qū)級(jí),執(zhí)行步驟(204),若選擇應(yīng)用級(jí),執(zhí)行步驟(205);
[0027](202)進(jìn)行整機(jī)恢復(fù),步驟(201)中備份服務(wù)器選擇整機(jī)級(jí)恢復(fù)方式并指定要恢復(fù)的備份虛擬機(jī)建立恢復(fù)任務(wù),
[0028](203)進(jìn)行硬盤恢復(fù),步驟(201)中備份服務(wù)器選擇硬盤級(jí)恢復(fù)方式,硬盤在VMWare虛擬機(jī)中的表現(xiàn)形式為VMDK文件,指定要恢復(fù)的虛擬機(jī)VMDK文件并建立恢復(fù)任務(wù);
[0029](204)進(jìn)行文件、目錄、分區(qū)恢復(fù),步驟(201)中備份服務(wù)器選擇文件級(jí)恢復(fù)方式并指定要恢復(fù)的文件、目錄或分區(qū)建立恢復(fù)任務(wù);
[0030](205)進(jìn)行應(yīng)用級(jí)恢復(fù),步驟(201)中備份服務(wù)器選擇應(yīng)用級(jí)恢復(fù)方式并指定要恢復(fù)的應(yīng)用數(shù)據(jù)建立恢復(fù)任務(wù)。
[0031]所述的整機(jī)恢復(fù)具體步驟如下:
[0032]al)讀取備份服務(wù)器元數(shù)據(jù),選定要恢復(fù)的備份虛擬機(jī)需要通過備份服務(wù)器對(duì)應(yīng)記錄的元數(shù)據(jù)信息來獲取,獲取的信息包括虛擬機(jī)元數(shù)據(jù)文件和配置信息,所述虛擬機(jī)元數(shù)據(jù)文件包括11種元數(shù)據(jù)文件中的vmx、vmxf和nvram配置文件,所述配置信息包括虛擬機(jī)大小、存儲(chǔ)位置以及系統(tǒng)狀態(tài)信息;
[0033]bl)創(chuàng)建虛擬機(jī),讀取的虛擬機(jī)元數(shù)據(jù)文件和配置信息,用于創(chuàng)建虛擬機(jī)配置信息和備份時(shí)一樣的虛擬機(jī),并指定存放該虛擬機(jī)的存儲(chǔ)位置,創(chuàng)建虛擬機(jī)時(shí)采用覆蓋的方式進(jìn)行,其過程為重寫已有虛擬機(jī)配置和虛擬機(jī)數(shù)據(jù)的方式;
[0034]Cl)讀取備份服務(wù)器數(shù)據(jù),指定虛擬機(jī)的存儲(chǔ)位置是虛擬機(jī)硬盤數(shù)據(jù)寫入位置,通過步驟bl)創(chuàng)建相應(yīng)的VMDK硬盤文件,并從備份服務(wù)器上讀取硬盤數(shù)據(jù)寫入到該虛擬機(jī)的VMDK硬盤文件中,其寫入采用VMWARE的VDDK方式以扇區(qū)大小和扇區(qū)位置進(jìn)行;
[0035]dl)完成整機(jī)恢復(fù),VMDK硬盤數(shù)據(jù)寫入完成以后,需要根據(jù)步驟al)中所述的系統(tǒng)狀態(tài)信息完成虛擬機(jī)的狀態(tài)恢復(fù)。
[0036]所述的硬盤恢復(fù)具體為:
[0037]a2)讀取備份服務(wù)器元數(shù)據(jù),該元數(shù)據(jù)中包括11種元數(shù)據(jù)文件中的VMDK硬盤文件;
[0038]b2)創(chuàng)建VMDK硬盤文件,指定要恢復(fù)的虛擬機(jī)VMDK硬盤文件恢復(fù)路徑,根據(jù)元數(shù)據(jù)信息獲取到硬盤文件大小,并在恢復(fù)路徑上創(chuàng)建指定大小的VMDK硬盤文件或者使用已存在的VMDK硬盤文件;
[0039]c2)讀取備份服務(wù)器數(shù)據(jù),其VMDK恢復(fù)路徑使用步驟b2)所述的恢復(fù)路徑;
[0040]d2)修改虛擬機(jī)硬盤配置信息,VMDK硬盤文件完成以后,通過修改虛擬機(jī)硬盤配置信息,將步驟c2)中恢復(fù)完成的VMDK文件路徑指定到相應(yīng)的虛擬機(jī)上,則該虛擬機(jī)啟動(dòng)以后將附加上該VMDK所記錄的磁盤數(shù)據(jù)并正常進(jìn)行讀取。
[0041]所述的文件、目錄、分區(qū)恢復(fù)具體步驟如下:
[0042]a3)代理客戶端,文件恢復(fù)需要指定要恢復(fù)到哪個(gè)PC客戶端上,其PC客戶端需要安裝代理客戶端程序從而完成備份服務(wù)器傳輸過來的數(shù)據(jù)接收和文件寫入;
[0043]b3)讀取備份服務(wù)器元數(shù)據(jù),該元數(shù)據(jù)信息包括11種數(shù)據(jù)文件中的VMX虛擬機(jī)配置文件,該VMX虛擬機(jī)配置文件包含VMDK硬盤數(shù)據(jù)的層級(jí)關(guān)系信息,通過VDDK讀取父級(jí)VMDK將一塊硬盤數(shù)據(jù)以扇區(qū)的方式完整取出數(shù)據(jù);
[0044]c3)解析虛擬機(jī)鏡像文件系統(tǒng),扇區(qū)數(shù)據(jù)是虛擬機(jī)鏡像的硬盤數(shù)據(jù),其包含硬盤分區(qū)結(jié)構(gòu)和文件系統(tǒng)分區(qū)結(jié)構(gòu),其過程包括讀取DPT、硬盤分區(qū)引導(dǎo)信息MBR或者GPT的組織結(jié)構(gòu)來引導(dǎo)找到文件系統(tǒng)分區(qū),通過分區(qū)找到文件系統(tǒng)格式,包括NTFS或EXT3 ;
[0045]d3)讀取指定文件,NTFS文件系統(tǒng)分區(qū)包括該文件系統(tǒng)下的分區(qū)信息、文件屬性和數(shù)據(jù),NTFS以MFT文件來記錄分區(qū)各個(gè)File Record的信息,通過RunList來找到數(shù)據(jù),RunList中保存了多個(gè)Run,通過讀取Run獲取到偏移取出數(shù)據(jù);
[0046]e3)完成目錄和分區(qū)的恢復(fù),步驟d3)所述的File Record包括文件、目錄和分區(qū)屬性,其基本文件屬性信息中記錄著該File Record是文件或是目錄或者分區(qū),在NTFS文件系統(tǒng)中的通過目錄的File Record記錄的FileReference屬性找到該目錄下的子目錄和文件,通過步驟d3)將目錄下的子目錄和文件循環(huán)讀取可以完成對(duì)該目錄所有數(shù)據(jù)的恢復(fù)。
[0047]所述的應(yīng)用級(jí)恢復(fù)具體過程如下:
[0048]a4)代理客戶端,恢復(fù)需要指定要恢復(fù)到哪個(gè)PC客戶端上,其PC客戶端需要安裝代理客戶端程序從而完成備份服務(wù)器傳輸過來的數(shù)據(jù)接收和文件寫入;
[0049]b4)對(duì)應(yīng)用信息文件的解析;
[0050]c4)讀取應(yīng)用的數(shù)據(jù)文件和配置信息文件,應(yīng)用信息文件包含SQL Server的數(shù)據(jù)庫實(shí)例名稱和實(shí)例中包含的數(shù)據(jù)庫名稱以及數(shù)據(jù)庫文件位置;
[0051]d4)完成應(yīng)用數(shù)據(jù)的恢復(fù)。
[0052]與現(xiàn)有技術(shù)相比,本發(fā)明具有使用了快照技術(shù)對(duì)虛擬機(jī)進(jìn)行整機(jī)備份保證了應(yīng)用數(shù)據(jù)的一致性,通過對(duì)虛擬機(jī)整機(jī)文件進(jìn)行管理和解析的方式實(shí)現(xiàn)了虛擬機(jī)備份后可以滿足整機(jī)級(jí)、硬盤級(jí)、分區(qū)級(jí)、應(yīng)用級(jí)和文件級(jí)等多種粒度恢復(fù)方法,簡(jiǎn)化了虛擬機(jī)遭受破壞時(shí)恢復(fù)流程,提高了數(shù)據(jù)恢復(fù)的精確性和效率。
【專利附圖】
【附圖說明】
[0053]圖1為虛擬機(jī)鏡像級(jí)備份多種粒度恢復(fù)結(jié)構(gòu)示意圖
[0054]圖2為虛擬機(jī)鏡像級(jí)備份流程圖;
[0055]圖3為虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)流程圖。c
【具體實(shí)施方式】
[0056]下面結(jié)合本發(fā)明中的附圖,對(duì)發(fā)明中使用的具體技術(shù)和步驟進(jìn)行實(shí)例描述,以進(jìn)行更加詳細(xì)完整的說明。所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的其他所有實(shí)施例,都屬于本發(fā)明的保護(hù)范圍。
[0057]本發(fā)明旨在對(duì)服務(wù)器虛擬化技術(shù)下的虛擬機(jī)多種粒度的保護(hù),提出一種高效的保護(hù)技術(shù)在一次性備份的后能夠滿足各種粒度的恢復(fù),主要包括以下步驟:
[0058]1.虛擬機(jī)整機(jī)備份,如圖2所示,VMWare虛擬服務(wù)器平臺(tái)上的虛擬機(jī)通過應(yīng)用系統(tǒng)業(yè)務(wù)架構(gòu)、文件系統(tǒng)架構(gòu)和虛擬硬件架構(gòu)來構(gòu)成;VMware虛擬機(jī)組織一臺(tái)虛擬機(jī)元數(shù)據(jù)包括11種元數(shù)據(jù)文件:.vmx(配置文件)、.vmxf (附件的配置文件)、.vmdk(磁盤文件)、.flat.vmdk(預(yù)先分配的二進(jìn)制格式的磁盤文件)、.vswp (交換文件)、.nvram(保存虛擬機(jī)的B1S信息)、.vmss (suspend文件,虛擬機(jī)掛起時(shí)會(huì)產(chǎn)生)、.log(日志文件)、.vmsd(存放快照的元數(shù)據(jù)和其他信息)、.vmsn (快照數(shù)據(jù)文件)和.delta, vmdk (快照文件即redo-log文件),其中.vmx中配置文件中記錄了主磁盤文件.vmdk,通過VMWare開放API的VDDK來讀取主磁盤文件時(shí),VMWare將為該操作找到主磁盤文件的附屬磁盤文件,此時(shí)VDDK讀取vmdk所得到的塊數(shù)據(jù)就相當(dāng)于讀取一塊硬盤的塊數(shù)據(jù)。
[0059]某臺(tái)虛擬機(jī)的備份過程如圖3所示,包括以下幾個(gè)步驟:
[0060](I)備份服務(wù)器指定選定要備份的虛擬機(jī)并建立備份任務(wù),通過VDDK連接和登錄虛擬服務(wù)器平臺(tái) ESXi Server (VM Host 或 VCenter)。
[0061](2)虛擬機(jī)做快照,檢測(cè)當(dāng)前虛擬機(jī)是否處于關(guān)機(jī)狀態(tài),如果處于關(guān)機(jī)狀態(tài),則直接向虛擬服務(wù)器發(fā)出為該虛擬機(jī)做快照的命令;若虛擬機(jī)處于開機(jī)狀態(tài),為了保證應(yīng)用數(shù)據(jù)一致性,則發(fā)出應(yīng)用靜默操作,期間會(huì)使用虛擬機(jī)文件系統(tǒng)內(nèi)部的應(yīng)用快照組件完成數(shù)據(jù)從內(nèi)存刷到磁盤的操作,如NTFS文件系統(tǒng)會(huì)通過調(diào)用VSS來保證應(yīng)用數(shù)據(jù)的一致性,虛擬機(jī)完成靜默操作以后,再為該虛擬機(jī)做磁盤快照。
[0062](3)讀取虛擬機(jī)鏡像文件,虛擬機(jī)完成快照操作以后將會(huì)產(chǎn)生磁盤快照鏡像文件,新寫入的數(shù)據(jù)不會(huì)被包含在該鏡像文件中,備份服務(wù)器通過對(duì)該鏡像文件進(jìn)行讀取完成備份和對(duì)該虛擬機(jī)的配置信息文件進(jìn)行讀取完成備份。
[0063](4)傳輸備份數(shù)據(jù)到備份服務(wù)器,通過TCP/IP連接或FC_SAN方式將備份的數(shù)據(jù)讀取到備份服務(wù)器上,并在備份服務(wù)器上完成數(shù)據(jù)的組織和存儲(chǔ)。
[0064](5)建立備份的元數(shù)據(jù)管理,將組織后的備份數(shù)據(jù)進(jìn)行有效的元數(shù)據(jù)管理,建立索引和存儲(chǔ)分配等操作。
[0065](6)虛擬機(jī)備份數(shù)據(jù)讀取完成和元數(shù)據(jù)組織完成,整個(gè)虛擬機(jī)完成備份過程。
[0066]2.通過步驟I中一次備份完成后的虛擬機(jī)整機(jī),其恢復(fù)可以采用如圖3所示的整機(jī)級(jí)、硬盤級(jí)、文件級(jí)、分區(qū)和應(yīng)用級(jí)多種粒度方式進(jìn)行恢復(fù),其具體恢復(fù)步驟如下:
[0067](I)開始恢復(fù),備份服務(wù)器選擇整機(jī)級(jí)、硬盤級(jí)、文件級(jí)、分區(qū)級(jí)和應(yīng)用級(jí)的其中一種方式進(jìn)行恢復(fù);
[0068](2)整機(jī)恢復(fù),步驟(I)中備份服務(wù)器選擇整機(jī)級(jí)恢復(fù)方式并指定要恢復(fù)的備份虛擬機(jī)建立恢復(fù)任務(wù),通過VDDK連接和登錄虛擬服務(wù)器平臺(tái)ESXi SerVer (VM Host或VCemer);
[0069]a)讀取備份服務(wù)器元數(shù)據(jù),步驟2)所述的選定要恢復(fù)的備份虛擬機(jī)需要通過備份服務(wù)器對(duì)應(yīng)記錄的元數(shù)據(jù)信息來獲取,獲取的信息包括虛擬機(jī)元數(shù)據(jù)文件和配置信息,其信息包括11種元數(shù)據(jù)文件中的vmx、vmxf和nvram配置文件,配置信息包括虛擬機(jī)大小和存儲(chǔ)位置以及系統(tǒng)狀態(tài)信息;
[0070]b)創(chuàng)建虛擬機(jī),步驟a)所述讀取的虛擬機(jī)元數(shù)據(jù)和配置信息,用于創(chuàng)建虛擬機(jī)配置信息和備份時(shí)一樣的虛擬機(jī),并指定存放該虛擬機(jī)的存儲(chǔ)位置,創(chuàng)建虛擬機(jī)時(shí)可以采用覆蓋的方式進(jìn)行,其過程相當(dāng)于重寫已有虛擬機(jī)配置和虛擬機(jī)數(shù)據(jù)的方式;
[0071]c)讀取備份服務(wù)器數(shù)據(jù),步驟b)所述指定虛擬機(jī)的存儲(chǔ)位置是虛擬機(jī)硬盤數(shù)據(jù)寫入位置,通過步驟b)創(chuàng)建相應(yīng)的VMDK硬盤文件,并從備份服務(wù)器上讀取硬盤數(shù)據(jù)寫入到該虛擬機(jī)的VMDK硬盤文件中,其寫入采用VMWARE的VDDK方式以扇區(qū)大小和扇區(qū)位置進(jìn)行;
[0072]d)完成整機(jī)恢復(fù),步驟c)所述的VMDK硬盤數(shù)據(jù)寫入完成以后,需要根據(jù)a)中所述的系統(tǒng)狀態(tài)信息完成虛擬機(jī)的狀態(tài)恢復(fù)。
[0073](3)硬盤恢復(fù),步驟⑴中備份服務(wù)器選擇硬盤級(jí)恢復(fù)方式,硬盤在VMWare虛擬機(jī)中的表現(xiàn)形式為VMDK文件,指定要恢復(fù)的虛擬機(jī)VMDK文件并建立恢復(fù)任務(wù),通過VDDK連接和登錄虛擬服務(wù)器平臺(tái)ESXi (VM Host或VCenter);
[0074]e)執(zhí)行步驟a),步驟a)所述的元數(shù)據(jù)信息包括11種元數(shù)據(jù)文件中的VMDK硬盤文件;
[0075]f)創(chuàng)建VMDK硬盤文件,步驟(3)指定要恢復(fù)的虛擬機(jī)VMDK硬盤文件恢復(fù)路徑,根據(jù)步驟a)所述的元數(shù)據(jù)信息可以獲取到硬盤文件大小,并在恢復(fù)路徑上創(chuàng)建指定大小的VMDK硬盤文件或者使用已存在的VMDK硬盤文件;
[0076]g)執(zhí)行步驟C,其VMDK恢復(fù)路徑使用步驟f)所述的恢復(fù)路徑;
[0077]h)修改虛擬機(jī)硬盤配置信息,VMDK硬盤文件完成以后,通過修改虛擬機(jī)硬盤配置信息,將步驟g)中恢復(fù)完成的VMDK文件路徑指定到相應(yīng)的虛擬機(jī)上,則該虛擬機(jī)啟動(dòng)以后將附加上該VMDK所記錄的磁盤數(shù)據(jù)并正常進(jìn)行讀取;
[0078]i)完成硬盤恢復(fù)。
[0079](4)文件、目錄、分區(qū)恢復(fù),步驟(I)中備份服務(wù)器選擇文件級(jí)恢復(fù)方式并指定要恢復(fù)的文件、目錄或分區(qū)建立恢復(fù)任務(wù);
[0080]j)代理客戶端,步驟(4)所述的文件恢復(fù)需要指定要恢復(fù)到哪個(gè)PC客戶端上,其PC客戶端需要安裝代理客戶端程序從而完成備份服務(wù)器傳輸過來的數(shù)據(jù)接收和文件寫入。
[0081]k)執(zhí)行步驟a),步驟a)所述的元數(shù)據(jù)信息包括11種數(shù)據(jù)文件中的VMX虛擬機(jī)配置文件,VMX文件包含VMDK硬盤數(shù)據(jù)的層級(jí)關(guān)系信息,通過VDDK讀取父級(jí)VMDK可以將一塊硬盤數(shù)據(jù)以扇區(qū)的方式完整取出數(shù)據(jù);
[0082]I)解析虛擬機(jī)鏡像文件系統(tǒng),步驟k)所述的扇區(qū)數(shù)據(jù)是虛擬機(jī)鏡像的硬盤數(shù)據(jù),其包含硬盤分區(qū)結(jié)構(gòu)和文件系統(tǒng)分區(qū)結(jié)構(gòu),其過程包括讀取DPT(Disk Partit1nTable,硬盤分區(qū)表)、硬盤分區(qū)引導(dǎo)信息MBR(Master Boot Record,主引導(dǎo)記錄)或者GPT(Globally Unique Identifier Partit1n Table Format,全局唯一標(biāo)識(shí)分區(qū)表)的組織結(jié)構(gòu)來引導(dǎo)找到文件系統(tǒng)分區(qū),通過分區(qū)找到文件系統(tǒng)格式比如NTFS或EXT3 ;
[0083]m)讀取指定文件,步驟I)所述找到的NTFS文件系統(tǒng)分區(qū),包括該文件系統(tǒng)下的分區(qū)信息、文件屬性和數(shù)據(jù),NTFS以MFT(Master File Table,主文件表)文件來記錄分區(qū)各個(gè)File Record (文件記錄)的信息,分區(qū)中的所有文件都由至少一個(gè)文件記錄來描述,MFT位于分區(qū)起始位置,對(duì)于使用多個(gè)文件記錄的文件,其第一個(gè)文件記錄叫基本文件記錄,其余的叫做擴(kuò)展文件記錄。每個(gè)File Record都包含基本文件屬性信息和擴(kuò)展文件屬性信息,基本文件屬性中記錄著文件是隱藏、壓縮、加密等屬性。在File Record中有一個(gè)$DATA屬性即儲(chǔ)存數(shù)據(jù)的屬性,該屬性根據(jù)數(shù)據(jù)量大小一般又分為常駐屬性和非常駐屬性,通常的理解是常駐屬性是指數(shù)據(jù)存放在FiIe Record中,非常駐屬性是指數(shù)據(jù)存放在File Record外部,而對(duì)于帶壓縮屬性的數(shù)據(jù)其$DATA屬性都是為非常駐屬性,需要通過RunList (運(yùn)行流記錄或運(yùn)行流列表)來找到數(shù)據(jù),RunList中保存了多個(gè)Run (運(yùn)行流),通過讀取Run獲取到偏移取出數(shù)據(jù)。
[0084]η)完成目錄和分區(qū)的恢復(fù),步驟m)所述的File Record包括文件、目錄和分區(qū)屬性,其基本文件屬性信息中記錄著該File Record是文件或是目錄或者分區(qū),在NTFS文件系統(tǒng)中的通過目錄的File Record記錄的FileReference屬性可以找到該目錄下的子目錄和文件,通過步驟m)將目錄下的子目錄和文件循環(huán)讀取可以完成對(duì)該目錄所有數(shù)據(jù)的恢復(fù)。
[0085](5)應(yīng)用級(jí)恢復(fù),步驟(I)中備份服務(wù)器選擇應(yīng)用級(jí)恢復(fù)方式并指定要恢復(fù)的應(yīng)用數(shù)據(jù)建立恢復(fù)任務(wù);
[0086]ο)代理客戶端,步驟(5)所述的恢復(fù)需要指定要恢復(fù)到哪個(gè)PC客戶端上,其PC客戶端需要安裝代理客戶端程序從而完成備份服務(wù)器傳輸過來的數(shù)據(jù)接收和文件寫入。
[0087]P)執(zhí)行步驟k)、I)、m)完成應(yīng)用信息文件的解析,以SQL Server業(yè)務(wù)系統(tǒng)為例,SQL Server應(yīng)用信息文件存儲(chǔ)在系統(tǒng)分區(qū)路徑為X:\Windows\System32\config\S0FTWARE文件中;
[0088]q)讀取應(yīng)用的數(shù)據(jù)文件和配置信息文件,步驟P)所述的應(yīng)用信息文件包含SQLServer的數(shù)據(jù)庫實(shí)例名稱和實(shí)例中包含的數(shù)據(jù)庫名稱以及數(shù)據(jù)庫文件位置,根據(jù)步驟m)、η)的描述,備份服務(wù)器可以讀取到數(shù)據(jù)庫文件的數(shù)據(jù)和配置文件的數(shù)據(jù);
[0089]r)完成應(yīng)用數(shù)據(jù)的恢復(fù),步驟q)所述文件數(shù)據(jù),在虛擬機(jī)備份時(shí)通過開機(jī)靜默應(yīng)用的處理保證了數(shù)據(jù)恢復(fù)后的一致性問題,所以當(dāng)文件數(shù)據(jù)傳輸?shù)酱砜蛻舳瞬⑼瓿苫謴?fù)操作后,可以保證數(shù)據(jù)是正確和可用性。
[0090]3.綜合步驟I虛擬機(jī)備份操作和步驟2虛擬機(jī)多種粒度恢復(fù)操作,虛擬機(jī)整機(jī)備份可以滿足整機(jī)級(jí)、硬盤級(jí)、分區(qū)級(jí)、應(yīng)用級(jí)和文件級(jí)等多種粒度的恢復(fù)方式,簡(jiǎn)化了虛擬機(jī)遭受破壞時(shí)恢復(fù)流程,提高了數(shù)據(jù)恢復(fù)的精確性和效率。
【權(quán)利要求】
1.一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,其特征在于,包括以下步驟: 1)虛擬機(jī)整機(jī)備份,使用服務(wù)器虛擬化平臺(tái)的API對(duì)需備份的虛擬機(jī)進(jìn)行快照,使虛擬機(jī)在某一個(gè)時(shí)間點(diǎn)產(chǎn)生一個(gè)完全可用的拷貝鏡像; 2)組織和分析已備份的虛擬機(jī)鏡像文件,備份服務(wù)器根據(jù)不同粒度方式對(duì)虛擬機(jī)進(jìn)行恢復(fù),其中粒度方式分為: 整機(jī):包含虛擬機(jī)的硬件配置信息、硬盤存儲(chǔ)位置、系統(tǒng)狀態(tài)和硬盤數(shù)據(jù); 硬盤:包含虛擬機(jī)所配置硬盤數(shù)量、主從配置信息和硬盤數(shù)據(jù); 文件:包含虛擬機(jī)文件系統(tǒng)上的所有文件和目錄; 應(yīng)用:包含安裝在虛擬機(jī)文件系統(tǒng)上的應(yīng)用程序信息; 分區(qū):包含虛擬機(jī)文件系統(tǒng)下的分區(qū)大小、分區(qū)位置、扇區(qū)、塊的分區(qū)信息,以及分區(qū)上的存儲(chǔ)數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,其特征在于,所述的步驟I)中的虛擬機(jī)整機(jī)備份具體步驟如下: (101)備份服務(wù)器指定選定要備份的虛擬機(jī)并建立備份任務(wù); (102)對(duì)虛擬機(jī)做快照,檢測(cè)當(dāng)前虛擬機(jī)是否處于關(guān)機(jī)狀態(tài),如果處于關(guān)機(jī)狀態(tài),則直接向虛擬服務(wù)器發(fā)出為該虛擬機(jī)做快照的命令;若虛擬機(jī)處于開機(jī)狀態(tài),則發(fā)出應(yīng)用靜默操作,期間使用虛擬機(jī)文件系統(tǒng)內(nèi)部的應(yīng)用快照組件完成數(shù)據(jù)從內(nèi)存刷到磁盤的操作,完成靜默操作以后,再為該虛擬機(jī)做磁盤快照; (103)讀取虛擬機(jī)鏡像文件,虛擬機(jī)完成快照操作以后將會(huì)產(chǎn)生磁盤快照鏡像文件,備份服務(wù)器通過對(duì)該鏡像文件進(jìn)行讀取完成備份和對(duì)該虛擬機(jī)的配置信息文件進(jìn)行讀取完成備份; (104)傳輸備份數(shù)據(jù)到備份服務(wù)器,并在備份服務(wù)器上完成數(shù)據(jù)的組織和存儲(chǔ); (105)建立備份的元數(shù)據(jù)管理,將組織后的備份數(shù)據(jù)進(jìn)行有效的元數(shù)據(jù)管理,建立索引和存儲(chǔ)分配操作; (106)虛擬機(jī)備份數(shù)據(jù)讀取完成和元數(shù)據(jù)組織完成,整個(gè)虛擬機(jī)完成備份過程。
3.根據(jù)權(quán)利要求2所述的一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,其特征在于,所述的步驟2)中的備份服務(wù)器根據(jù)不同粒度方式對(duì)虛擬機(jī)進(jìn)行恢復(fù)具體步驟如下: (201)開始恢復(fù),備份服務(wù)器選擇整機(jī)級(jí)、硬盤級(jí)、文件級(jí)、應(yīng)用級(jí)和分區(qū)級(jí)的其中一種方式進(jìn)行恢復(fù),若選擇整機(jī)級(jí),進(jìn)行步驟(202),若選擇硬盤級(jí),執(zhí)行步驟(203),若選擇文件級(jí)和分區(qū)級(jí),執(zhí)行步驟(204),若選擇應(yīng)用級(jí),執(zhí)行步驟(205); (202)進(jìn)行整機(jī)恢復(fù),步驟(201)中備份服務(wù)器選擇整機(jī)級(jí)恢復(fù)方式并指定要恢復(fù)的備份虛擬機(jī)建立恢復(fù)任務(wù), (203)進(jìn)行硬盤恢復(fù),步驟(201)中備份服務(wù)器選擇硬盤級(jí)恢復(fù)方式,硬盤在VMWare虛擬機(jī)中的表現(xiàn)形式為VMDK文件,指定要恢復(fù)的虛擬機(jī)VMDK文件并建立恢復(fù)任務(wù); (204)進(jìn)行文件、目錄、分區(qū)恢復(fù),步驟(201)中備份服務(wù)器選擇文件級(jí)恢復(fù)方式并指定要恢復(fù)的文件、目錄或分區(qū)建立恢復(fù)任務(wù); (205)進(jìn)行應(yīng)用級(jí)恢復(fù),步驟(201)中備份服務(wù)器選擇應(yīng)用級(jí)恢復(fù)方式并指定要恢復(fù)的應(yīng)用數(shù)據(jù)建立恢復(fù)任務(wù)。
4.根據(jù)權(quán)利要求3所述的一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,其特征在于,所述的整機(jī)恢復(fù)具體步驟如下: al)讀取備份服務(wù)器元數(shù)據(jù),選定要恢復(fù)的備份虛擬機(jī)需要通過備份服務(wù)器對(duì)應(yīng)記錄的元數(shù)據(jù)信息來獲取,獲取的信息包括虛擬機(jī)元數(shù)據(jù)文件和配置信息,所述虛擬機(jī)元數(shù)據(jù)文件包括11種元數(shù)據(jù)文件中的vmx、vmxf和nvram配置文件,所述配置信息包括虛擬機(jī)大小、存儲(chǔ)位置以及系統(tǒng)狀態(tài)信息; bl)創(chuàng)建虛擬機(jī),讀取的虛擬機(jī)元數(shù)據(jù)文件和配置信息,用于創(chuàng)建虛擬機(jī)配置信息和備份時(shí)一樣的虛擬機(jī),并指定存放該虛擬機(jī)的存儲(chǔ)位置,創(chuàng)建虛擬機(jī)時(shí)采用覆蓋的方式進(jìn)行,其過程為重寫已有虛擬機(jī)配置和虛擬機(jī)數(shù)據(jù)的方式; Cl)讀取備份服務(wù)器數(shù)據(jù),指定虛擬機(jī)的存儲(chǔ)位置是虛擬機(jī)硬盤數(shù)據(jù)寫入位置,通過步驟bl)創(chuàng)建相應(yīng)的VMDK硬盤文件,并從備份服務(wù)器上讀取硬盤數(shù)據(jù)寫入到該虛擬機(jī)的VMDK硬盤文件中,其寫入采用VMWARE的VDDK方式以扇區(qū)大小和扇區(qū)位置進(jìn)行; dl)完成整機(jī)恢復(fù),VMDK硬盤數(shù)據(jù)寫入完成以后,需要根據(jù)步驟al)中所述的系統(tǒng)狀態(tài)信息完成虛擬機(jī)的狀態(tài)恢復(fù)。
5.根據(jù)權(quán)利要求3所述的一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,其特征在于,所述的硬盤恢復(fù)具體為: a2)讀取備份服務(wù)器元數(shù)據(jù),該元數(shù)據(jù)中包括11種元數(shù)據(jù)文件中的VMDK硬盤文件;b2)創(chuàng)建VMDK硬盤文件,指定要恢復(fù)的虛擬機(jī)VMDK硬盤文件恢復(fù)路徑,根據(jù)元數(shù)據(jù)信息獲取到硬盤文件大小,并在恢復(fù)路徑上創(chuàng)建指定大小的VMDK硬盤文件或者使用已存在的VMDK硬盤文件; c2)讀取備份服務(wù)器數(shù)據(jù),其VMDK恢復(fù)路徑使用步驟b2)所述的恢復(fù)路徑;d2)修改虛擬機(jī)硬盤配置信息,VMDK硬盤文件完成以后,通過修改虛擬機(jī)硬盤配置信息,將步驟c2)中恢復(fù)完成的VMDK文件路徑指定到相應(yīng)的虛擬機(jī)上,則該虛擬機(jī)啟動(dòng)以后將附加上該VMDK所記錄的磁盤數(shù)據(jù)并正常進(jìn)行讀取。
6.根據(jù)權(quán)利要求3所述的一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,其特征在于,所述的文件、目錄、分區(qū)恢復(fù)具體步驟如下: a3)代理客戶端,文件恢復(fù)需要指定要恢復(fù)到哪個(gè)PC客戶端上,其PC客戶端需要安裝代理客戶端程序從而完成備份服務(wù)器傳輸過來的數(shù)據(jù)接收和文件寫入; b3)讀取備份服務(wù)器元數(shù)據(jù),該元數(shù)據(jù)信息包括11種數(shù)據(jù)文件中的VMX虛擬機(jī)配置文件,該VMX虛擬機(jī)配置文件包含VMDK硬盤數(shù)據(jù)的層級(jí)關(guān)系信息,通過VDDK讀取父級(jí)VMDK將一塊硬盤數(shù)據(jù)以扇區(qū)的方式完整取出數(shù)據(jù); c3)解析虛擬機(jī)鏡像文件系統(tǒng),扇區(qū)數(shù)據(jù)是虛擬機(jī)鏡像的硬盤數(shù)據(jù),其包含硬盤分區(qū)結(jié)構(gòu)和文件系統(tǒng)分區(qū)結(jié)構(gòu),其過程包括讀取DPT、硬盤分區(qū)引導(dǎo)信息MBR或者GPT的組織結(jié)構(gòu)來引導(dǎo)找到文件系統(tǒng)分區(qū),通過分區(qū)找到文件系統(tǒng)格式,包括NTFS或EXT3; d3)讀取指定文件,NTFS文件系統(tǒng)分區(qū)包括該文件系統(tǒng)下的分區(qū)信息、文件屬性和數(shù)據(jù),NTFS以MFT文件來記錄分區(qū)各個(gè)File Record的信息,通過RunList來找到數(shù)據(jù),RunList中保存了多個(gè)Run,通過讀取Run獲取到偏移取出數(shù)據(jù); e3)完成目錄和分區(qū)的恢復(fù),步驟d3)所述的File Record包括文件、目錄和分區(qū)屬性,其基本文件屬性信息中記錄著該File Record是文件或是目錄或者分區(qū),在NTFS文件系統(tǒng)中的通過目錄的File Record記錄的FileReference屬性找到該目錄下的子目錄和文件,通過步驟d3)將目錄下的子目錄和文件循環(huán)讀取可以完成對(duì)該目錄所有數(shù)據(jù)的恢復(fù)。
7.根據(jù)權(quán)利要求3所述的一種虛擬機(jī)鏡像級(jí)備份后的多種粒度恢復(fù)方法,其特征在于,所述的應(yīng)用級(jí)恢復(fù)具體過程如下: a4)代理客戶端,恢復(fù)需要指定要恢復(fù)到哪個(gè)PC客戶端上,其PC客戶端需要安裝代理客戶端程序從而完成備份服務(wù)器傳輸過來的數(shù)據(jù)接收和文件寫入;b4)對(duì)應(yīng)用信息文件的解析; c4)讀取應(yīng)用的數(shù)據(jù)文件和配置信息文件,應(yīng)用信息文件包含SQL Server的數(shù)據(jù)庫實(shí)例名稱和實(shí)例中包含的數(shù)據(jù)庫名稱以及數(shù)據(jù)庫文件位置;d4)完成應(yīng)用數(shù)據(jù)的恢復(fù)。
【文檔編號(hào)】G06F11/14GK104407938SQ201410674598
【公開日】2015年3月11日 申請(qǐng)日期:2014年11月21日 優(yōu)先權(quán)日:2014年11月21日
【發(fā)明者】郭家樂 申請(qǐng)人:上海愛數(shù)軟件有限公司