一種基于持續(xù)數(shù)據(jù)保護(hù)與kvm虛擬化的容災(zāi)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)信息存儲技術(shù)領(lǐng)域,尤其是涉及一種基于持續(xù)數(shù)據(jù)保護(hù)與kvm虛擬化的容災(zāi)方法。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的飛速發(fā)展,如今已進(jìn)入到信息時(shí)代,信息的價(jià)值不言而喻,而在計(jì)算機(jī)領(lǐng)域中,數(shù)據(jù)是信息的載體,所以對數(shù)據(jù)的保護(hù)就是重中之重。而如何正確有效地將數(shù)據(jù)保護(hù)起來,則是當(dāng)今較為流行的研究課題。持續(xù)數(shù)據(jù)保護(hù),也稱作持續(xù)備份,即是實(shí)現(xiàn)數(shù)據(jù)保護(hù)的途徑之一。
[0003]塊級備份,是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,而將全部或部分?jǐn)?shù)據(jù)集合從應(yīng)用主機(jī)的硬盤或陣列復(fù)制到其它的存儲介質(zhì)的過程。如中國專利公開號為CN103365745A公開一種基于內(nèi)容地址存儲的塊級備份方法,該方法包括兩個(gè)階段:第一階段,采用全量狀態(tài)位圖技術(shù)對磁盤數(shù)據(jù)進(jìn)行分塊和初始化備份。第二階段,采用增量狀態(tài)位圖技術(shù)對磁盤數(shù)據(jù)進(jìn)行分塊和增量備份。其中,全量狀態(tài)位圖是特指從數(shù)據(jù)卷獲取的第一個(gè)份位圖,反映的是數(shù)據(jù)卷中數(shù)據(jù)塊的被使用情況,具體記錄的是源卷數(shù)據(jù)塊使用狀態(tài)的O和I序列,一個(gè)數(shù)據(jù)塊對應(yīng)位圖的一位,O表示該數(shù)據(jù)塊尚未被使用,I表示相反的情形。增量狀態(tài)位圖反映的是自上次位圖以來數(shù)據(jù)卷中數(shù)據(jù)塊的更新狀態(tài),根據(jù)數(shù)據(jù)的時(shí)空分布特性,增量狀態(tài)位圖中的I序列通常比全量狀態(tài)位圖中的I序列少得多,而且也更集中。該方法具體的步驟為:
[0004]1、源卷分段:根據(jù)預(yù)定義的數(shù)據(jù)段大小閥值和源卷全量狀態(tài)位圖,以數(shù)據(jù)塊為單位,源卷全量狀態(tài)位圖中的連續(xù)I序列為依據(jù),對源卷數(shù)據(jù)區(qū)進(jìn)行分段,每個(gè)單一段稱為一個(gè)數(shù)據(jù)段;
[0005]2、初始化傳輸(備份):將源卷的所有數(shù)據(jù)段通過網(wǎng)絡(luò)傳輸?shù)酱鎯橘|(zhì);
[0006]3、獲取增量狀態(tài)位圖:實(shí)時(shí)獲取源卷數(shù)據(jù)更新狀態(tài),計(jì)算數(shù)據(jù)塊更新區(qū)間,然后生成源卷增量狀態(tài)位圖,最后進(jìn)行增量數(shù)據(jù)塊備份;
[0007]4、增量傳輸(備份):將源卷的增量數(shù)據(jù)段通過網(wǎng)絡(luò)傳輸?shù)酱鎯橘|(zhì)。
[0008]持續(xù)數(shù)據(jù)保護(hù)CDP,是指通過在操作系統(tǒng)核心層中植入文件過濾驅(qū)動(dòng)程序,來實(shí)時(shí)捕獲所有文件訪問操作。對于需要CDP持續(xù)備份保護(hù)的文件,當(dāng)CDP管理模塊經(jīng)由文件過濾驅(qū)動(dòng)攔截到其改寫操作時(shí),則預(yù)先將文件數(shù)據(jù)變化部分連同當(dāng)前的系統(tǒng)時(shí)間戳(SystemTime Stamp) 一起自動(dòng)備份到存儲介質(zhì)中。從理論上說,任何一次的文件數(shù)據(jù)變化都會(huì)被自動(dòng)記錄,所以稱其為持續(xù)數(shù)據(jù)保護(hù)。
[0009]在上述持續(xù)塊級備份方法的基礎(chǔ)上,如何快速、有效地使操作系統(tǒng)及上層應(yīng)用還原至異機(jī),并使其可以正常運(yùn)行和使用是本發(fā)明要解決的問題。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種提高容災(zāi)效率、避免用戶生產(chǎn)數(shù)據(jù)的永久性丟失的基于持續(xù)數(shù)據(jù)保護(hù)與kvm虛擬化的容災(zāi)方法。
[0011]本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):
[0012]一種基于持續(xù)數(shù)據(jù)保護(hù)與kvm虛擬化的容災(zāi)方法,其特征在于,包括以下步驟:
[0013]A、啟動(dòng)容災(zāi)任務(wù),任務(wù)涉及備份端與容災(zāi)端;其中所述的備份端持續(xù)產(chǎn)生時(shí)間點(diǎn),待所述的備份端產(chǎn)生第一個(gè)時(shí)間點(diǎn)后,在所述的容災(zāi)端創(chuàng)建kvm虛擬機(jī)與虛擬磁盤,并從所述的備份端獲取時(shí)間點(diǎn),將每一個(gè)時(shí)間點(diǎn)內(nèi)的數(shù)據(jù)塊寫入相應(yīng)虛擬磁盤;
[0014]B、判斷是否進(jìn)行了應(yīng)急恢復(fù),若是,則執(zhí)行步驟C,若否,則所述的容災(zāi)端繼續(xù)等待所述的備份端產(chǎn)生時(shí)間點(diǎn),并從所述的備份端獲取時(shí)間點(diǎn),將每一個(gè)時(shí)間點(diǎn)內(nèi)的數(shù)據(jù)塊寫入相應(yīng)虛擬磁盤;
[0015]C、依次對每一塊kvm虛擬磁盤進(jìn)行快照,完成后容災(zāi)任務(wù)結(jié)束;
[0016]D、再次啟動(dòng)容災(zāi)任務(wù),則先對每一塊kvm虛擬磁盤回滾快照,再從所述的備份端獲取未恢復(fù)的時(shí)間點(diǎn),將獲取到的每一個(gè)時(shí)間點(diǎn)內(nèi)的數(shù)據(jù)塊寫入相應(yīng)虛擬磁盤。
[0017]所述的步驟A具體為:
[0018]Al)啟動(dòng)應(yīng)用容災(zāi)任務(wù),所述的備份端開始復(fù)制數(shù)據(jù)塊至介質(zhì)服務(wù)器并持續(xù)產(chǎn)生時(shí)間點(diǎn),所述的容災(zāi)端則向介質(zhì)服務(wù)器發(fā)送恢復(fù)請求;
[0019]A2)所述的介質(zhì)服務(wù)器遍歷各個(gè)時(shí)間點(diǎn)中的備份數(shù)據(jù),并逐一將每個(gè)時(shí)間點(diǎn)中的數(shù)據(jù)發(fā)送給所述的容災(zāi)端;
[0020]A3)所述的容災(zāi)端判斷接收到的備份數(shù)據(jù)是否為數(shù)據(jù)塊對象,若是,則執(zhí)行步驟AS),若否,則執(zhí)行步驟A4);
[0021]A4)所述的容災(zāi)端根據(jù)收到的數(shù)據(jù)對象,判斷容災(zāi)機(jī)是否已經(jīng)被創(chuàng)建,若是,則執(zhí)行步驟A6),若否,則執(zhí)行步驟A5);
[0022]A5)所述的容災(zāi)端根據(jù)容災(zāi)任務(wù)中指定的名稱,創(chuàng)建kvm容災(zāi)機(jī),并執(zhí)行步驟A6);
[0023]A6)所述的容災(zāi)端根據(jù)收到的數(shù)據(jù)對象,判斷監(jiān)控卷所在磁盤是否已經(jīng)被創(chuàng)建,若是,則打開磁盤句柄,并返回步驟A2),若否,則執(zhí)行步驟A7);
[0024]A7)以硬盤在原生產(chǎn)機(jī)中的索引號為名,創(chuàng)建與原硬盤相等大小的虛擬磁盤,并打開創(chuàng)建完成的磁盤句柄,將引導(dǎo)信息寫入虛擬磁盤,返回步驟A2);
[0025]AS)所述的容災(zāi)端將接收到的數(shù)據(jù)塊一一寫入虛擬磁盤,返回步驟A2)。
[0026]所述的索引號、原硬盤大小和引導(dǎo)信息均保存在數(shù)據(jù)對象的元數(shù)據(jù)中。
[0027]所述步驟A3)中,容災(zāi)端接收到的備份數(shù)據(jù)類型分為數(shù)據(jù)對象和數(shù)據(jù)塊對象,備份端將一個(gè)監(jiān)控分區(qū)組織成為一個(gè)數(shù)據(jù)對象,并將該監(jiān)控分區(qū)的各屬性記錄于數(shù)據(jù)對象的元數(shù)據(jù)中。
[0028]所述步驟A3)中,
[0029]所述步驟AS)中,容災(zāi)端將接收到的數(shù)據(jù)塊一一寫入虛擬磁盤具體為:
[0030]801)獲取已打開的磁盤句柄;
[0031]802)計(jì)算數(shù)據(jù)塊相對磁盤偏移位置,即監(jiān)控分區(qū)的起始位置相對磁盤的偏移與數(shù)據(jù)塊自身偏移之和,其中相對磁盤的偏移從數(shù)據(jù)對象的元數(shù)據(jù)中獲取,所述的自身偏移為數(shù)據(jù)塊的起始位置相對監(jiān)控分區(qū)的偏移;
[0032]803)以該數(shù)據(jù)塊的長度為寫入長度,在802)所述的偏移位置寫入數(shù)據(jù)塊。
[0033]所述的容災(zāi)端為kvm虛擬化平臺。
[0034]所述的步驟C具體為:
[0035]Cl)遍歷kvm虛擬機(jī)上的虛擬磁盤;
[0036]C2)將Cl)遍歷到的虛擬磁盤從虛擬機(jī)卸載;
[0037]C3)以Cl)遍歷到的虛擬磁盤作為母盤創(chuàng)建子盤,并逐對記錄母盤子盤;
[0038]C4)將C3)中創(chuàng)建的子盤掛載至虛擬機(jī),返回步驟Cl)。
[0039]所述的步驟D具體為:
[°04°] Dl)遍歷kvm虛擬機(jī)上的虛擬磁盤;
[0041 ] D2)將Dl)遍歷到的虛擬磁盤從虛擬機(jī)卸載;
[0042]D3)根據(jù)記錄,找到Dl)遍歷到虛擬磁盤的母盤;
[0043]D4)將D3)中找到的母盤掛載至虛擬機(jī),返回步驟Dl)。
[0044]所述的數(shù)據(jù)對象是由監(jiān)控分區(qū)的屬性信息組織而成的一種模型,并用一個(gè)全球唯一標(biāo)識符命名。
[0045]所述的數(shù)據(jù)塊對象是由監(jiān)控分區(qū)的二進(jìn)制數(shù)據(jù)切片、該切片相對監(jiān)控分區(qū)起始位置的偏移和該切片的長度組織而成的一種模型,并用相應(yīng)監(jiān)控分區(qū)所對應(yīng)的數(shù)據(jù)對象的名稱來命名,同一監(jiān)控分區(qū)所對應(yīng)的數(shù)據(jù)對象和數(shù)據(jù)塊對象是一對多的關(guān)系。
[0046]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
[0047]I)傳統(tǒng)的文件級別的應(yīng)用容災(zāi)受上層因素影響極大,尤其是在上層文件數(shù)量達(dá)到百萬甚至千萬級時(shí),文件級別的應(yīng)用容災(zāi)方法的性能嚴(yán)重下降,大大延長了災(zāi)難恢復(fù)時(shí)間RT0。本發(fā)明采用塊級別的持續(xù)數(shù)據(jù)保護(hù)和恢復(fù),在性能上有更好的表現(xiàn),無需考慮上層操作系統(tǒng)、文件系統(tǒng)、文件數(shù)量所帶來的影響,提高了生產(chǎn)環(huán)境還原的速度,加快還原的時(shí)間,減小了由于上層業(yè)務(wù)中斷所造成用戶數(shù)據(jù)永久丟失的風(fēng)險(xiǎn)。
[0048]2)本發(fā)明采用對kvm磁盤進(jìn)行快照和回滾快照的方式,實(shí)現(xiàn)了在容災(zāi)任務(wù)再一次被發(fā)起后磁盤中的數(shù)據(jù)可以還原到上一次任務(wù)結(jié)束時(shí)的狀態(tài),而不會(huì)因?yàn)橛脩粼趦纱稳轂?zāi)任務(wù)期間對磁盤數(shù)據(jù)做出的修改而影響后一次容災(zāi)任務(wù)的執(zhí)行,更可以防止由于用戶的操作不當(dāng)導(dǎo)致容災(zāi)機(jī)宕機(jī)且無法挽回的現(xiàn)象發(fā)生。
【附圖說明】
[0049]圖1為本發(fā)明虛擬化應(yīng)用容災(zāi)的結(jié)構(gòu)圖;
[0050]圖2為本發(fā)明虛擬化應(yīng)用容災(zāi)的流程示意圖。
【具體實(shí)施方式】
[0051]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部實(shí)施例?;?