基于塊級(jí)恢復(fù)與修改注冊(cè)表并注入驅(qū)動(dòng)的系統(tǒng)恢復(fù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及屬于計(jì)算機(jī)信息存儲(chǔ)技術(shù)領(lǐng)域,尤其是涉及一種基于塊級(jí)恢復(fù)與修改注冊(cè)表并注入驅(qū)動(dòng)的Windows系統(tǒng)恢復(fù)方法。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的飛速發(fā)展,如今已進(jìn)入到信息時(shí)代,信息可以說是當(dāng)下最具有價(jià)值的“商品”,而在計(jì)算機(jī)領(lǐng)域中,數(shù)據(jù)是信息的載體,所以對(duì)數(shù)據(jù)的保護(hù)就是重中之重。而如何正確有效地將數(shù)據(jù)保護(hù)起來,則是當(dāng)今較為流行的研宄課題。備份,即是實(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ù)制到其它的存儲(chǔ)介質(zhì)的過程。如中國(guó)專利CN103365745A公開一種基于內(nèi)容地址存儲(chǔ)的塊級(jí)備份方法,該方法包括兩個(gè)階段:第一階段,采用全量狀態(tài)位圖技術(shù)對(duì)磁盤數(shù)據(jù)進(jìn)行分塊和初始化備份。第二階段,采用增量狀態(tài)位圖技術(shù)對(duì)磁盤數(shù)據(jù)進(jìn)行分塊和增量備份。其中,全量狀態(tài)位圖是特指從數(shù)據(jù)卷獲取的第一個(gè)份位圖,反映的是數(shù)據(jù)卷中數(shù)據(jù)塊的被使用情況,具體記錄的是源卷數(shù)據(jù)塊使用狀態(tài)的O和I序列,一個(gè)數(shù)據(jù)塊對(duì)應(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ù),對(duì)源卷數(shù)據(jù)區(qū)進(jìn)行分段,每個(gè)單一段稱為一個(gè)數(shù)據(jù)段;
[0005]2、初始化傳輸(備份):將源卷的所有數(shù)據(jù)段通過網(wǎng)絡(luò)傳輸?shù)酱鎯?chǔ)介質(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ù)酱鎯?chǔ)介質(zhì)。
[0008]在上述備份方法的基礎(chǔ)上,如何快速、有效地使操作系統(tǒng)及上層應(yīng)用還原后可正常運(yùn)行是本發(fā)明要解決的問題。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種提高系統(tǒng)還原效率、避免系統(tǒng)數(shù)據(jù)的永久性丟失的基于塊級(jí)恢復(fù)與修改注冊(cè)表并注入驅(qū)動(dòng)的系統(tǒng)恢復(fù)方法。
[0010]本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):
[0011]一種基于塊級(jí)恢復(fù)與修改注冊(cè)表并注入驅(qū)動(dòng)的系統(tǒng)恢復(fù)方法,包括以下步驟:
[0012]A、從備份端獲取數(shù)據(jù)塊,并寫入磁盤:
[0013]B、判斷是否是在異機(jī)進(jìn)行的系統(tǒng)恢復(fù),若是,則執(zhí)行步驟C,若否,則恢復(fù)完成,退出;
[0014]C、修改注冊(cè)表并注入驅(qū)動(dòng)文件,完成操作系統(tǒng)的還原。
[0015]所述步驟A具體為:
[0016]Al)恢復(fù)服務(wù)器掛載Windows PE,向介質(zhì)服務(wù)器發(fā)送恢復(fù)請(qǐng)求;
[0017]A2)介質(zhì)服務(wù)器遍歷備份數(shù)據(jù),并逐一發(fā)送給恢復(fù)服務(wù)器;
[0018]A3)恢復(fù)服務(wù)器判斷接收到的備份數(shù)據(jù)是否為數(shù)據(jù)塊對(duì)象,若是,則執(zhí)行步驟A5),若否,則執(zhí)行步驟A4);
[0019]A4)根據(jù)收到的數(shù)據(jù)對(duì)象,讀取出原系統(tǒng)卷的信息并在硬盤中創(chuàng)建新系統(tǒng)卷,返回步驟A2);
[0020]A5)恢復(fù)服務(wù)器將接收到的數(shù)據(jù)塊一一寫入硬盤,返回步驟A2),直至備份數(shù)據(jù)遍歷并恢復(fù)完成。
[0021]所述步驟A5)中,恢復(fù)服務(wù)器將接收到的數(shù)據(jù)塊一一寫入硬盤具體為:
[0022]501)獲取所述新系統(tǒng)卷的句柄;
[0023]502)將寫指針定位到數(shù)據(jù)塊對(duì)象即將寫入的偏移位置;
[0024]503)以備份時(shí)的塊分隔大小為寫入長(zhǎng)度,在所述偏移位置寫入數(shù)據(jù)塊;
[0025]504)反復(fù)執(zhí)行步驟502) -503),直至所有數(shù)據(jù)塊寫完為止;
[0026]所述偏移位置從新系統(tǒng)卷的起始偏移開始,每寫一個(gè)數(shù)據(jù)塊遞增塊分隔大小的偏移量。
[0027]所述步驟C具體為:
[0028]Cl)將恢復(fù)服務(wù)器的注冊(cè)表掛載至Windows PE的注冊(cè)表下;
[0029]C2)獲取恢復(fù)服務(wù)器硬盤的id,根據(jù)該id獲取所述硬盤對(duì)應(yīng)的驅(qū)動(dòng)信息,所述驅(qū)動(dòng)信息包括驅(qū)動(dòng)名稱及驅(qū)動(dòng)位置路徑;
[0030]C3)根據(jù)驅(qū)動(dòng)信息及Windows PE注冊(cè)表修改恢復(fù)服務(wù)器的注冊(cè)表,修改內(nèi)容包括創(chuàng)建以硬盤設(shè)備PCi號(hào)為名的子項(xiàng)及其各子鍵、創(chuàng)建以硬盤驅(qū)動(dòng)名稱為名的子項(xiàng)及其各子鍵和設(shè)置恢復(fù)服務(wù)器中存儲(chǔ)驅(qū)動(dòng)文件的目錄路徑;
[0031]C4)將Windows PE中的恢復(fù)服務(wù)器所對(duì)應(yīng)的驅(qū)動(dòng)文件復(fù)制到所述目錄路徑下;
[0032]C5)卸載恢復(fù)服務(wù)器的注冊(cè)表。
[0033]所述步驟Cl),Windows PE集成有多種RAID卡驅(qū)動(dòng)和硬盤驅(qū)動(dòng)。
[0034]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
[0035]I)傳統(tǒng)的文件級(jí)別的系統(tǒng)備份恢復(fù)受上層因素影響極大,尤其是在上層文件數(shù)量達(dá)到百萬甚至千萬級(jí)時(shí),傳統(tǒng)備份恢復(fù)方法的性能嚴(yán)重下降,大大延長(zhǎng)了災(zāi)難恢復(fù)時(shí)間RT0。本發(fā)明采用塊級(jí)別的系統(tǒng)恢復(fù),在性能上有更好的表現(xiàn),無需考慮上層操作系統(tǒng)、文件系統(tǒng)、文件數(shù)量所帶來的影響,提高了系統(tǒng)還原的速度,加快還原的時(shí)間,減小了由于上層業(yè)務(wù)中斷所造成用戶數(shù)據(jù)永久丟失的風(fēng)險(xiǎn)。
[0036]2)本發(fā)明采用修改注冊(cè)表并注入驅(qū)動(dòng)的方式進(jìn)行系統(tǒng)恢復(fù),實(shí)現(xiàn)了 windows操作系統(tǒng)在各大廠商品牌服務(wù)器上的迀移,而不受硬件的約束,可以避免系統(tǒng)與上層應(yīng)用數(shù)據(jù)的永久丟失,使得上層應(yīng)用依然可以正常執(zhí)行。尤其針對(duì)如AD數(shù)據(jù)庫等對(duì)系統(tǒng)依賴嚴(yán)重的應(yīng)用,不能簡(jiǎn)單的對(duì)應(yīng)用進(jìn)行迀移,因?yàn)檫@樣可能會(huì)造成迀移的目標(biāo)系統(tǒng)不可用,啟動(dòng)藍(lán)屏等現(xiàn)象。
【附圖說明】
[0037]圖1為本發(fā)明塊級(jí)恢復(fù)的流程示意圖;
[0038]圖2為本發(fā)明修改注冊(cè)表及注入驅(qū)動(dòng)的流程示意圖。
【具體實(shí)施方式】
[0039]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。本實(shí)施例以本發(fā)明技術(shù)方案為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
[0040]原恢復(fù)系統(tǒng)由恢復(fù)服務(wù)器(內(nèi)含客戶端)和控制臺(tái)(內(nèi)含介質(zhì)服務(wù)器)組成,兩者之間通過以太網(wǎng)連接,采用的傳輸協(xié)議是TCP/IP。TCP/IP協(xié)議4層模型。
[0041]本發(fā)明實(shí)施例提供一種基于塊級(jí)恢復(fù)與修改注冊(cè)表并注入驅(qū)動(dòng)的Windows系統(tǒng)恢復(fù)方法,包括以下步驟:
[0042]A、從備份端獲取數(shù)據(jù)塊,并寫入磁盤,具體如圖1所示:
[0043]步驟slOl,恢復(fù)服務(wù)器掛載Windows PE (以WindowsPE作為系統(tǒng)恢復(fù)的中間介質(zhì)),向介質(zhì)服務(wù)器發(fā)送恢復(fù)請(qǐng)求;
[0044]步驟sl02,介質(zhì)服務(wù)器遍歷備份數(shù)據(jù);
[0045]步驟sl03,介質(zhì)服務(wù)器判斷是否遍歷完成,若是,則結(jié)束,若否,則執(zhí)行步驟sl04 ;
[0046]步驟sl04,恢復(fù)服務(wù)器接收備份數(shù)據(jù);
[0047]步驟sl05,判斷接收到的備份數(shù)據(jù)是否為數(shù)據(jù)塊對(duì)象,若是,則執(zhí)行步驟sl07,若否,則執(zhí)行步驟sl06;
[0048]步驟sl06,根據(jù)收到的數(shù)據(jù)對(duì)象,讀取出原系統(tǒng)卷的信息并在硬盤中創(chuàng)建新系統(tǒng)卷,返回步驟sl02 ;
[0049]步驟sl07,獲取所述新系統(tǒng)卷的句柄;
[0050]步驟sl08,將寫指針定位到數(shù)據(jù)塊對(duì)象即將寫入的偏移位置,所述偏移位置從新系統(tǒng)卷的起始偏移開始,每寫一個(gè)數(shù)據(jù)塊遞增塊分隔大小的偏移量;
[0051]步驟sl09,以備份時(shí)的塊分隔大小為寫入長(zhǎng)度,在所述偏移位置寫入數(shù)據(jù)塊,,返回步驟s 102。
[0052]B、判斷是否是在異機(jī)