專利名稱:一種塊級(jí)別的磁盤數(shù)據(jù)保護(hù)系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,特別涉及一種塊級(jí)別的磁盤數(shù)據(jù)保護(hù)系統(tǒng)及其方法。
背景技術(shù):
當(dāng)今世界,政府與各種企業(yè)的數(shù)據(jù)正經(jīng)歷著爆炸性的增長(zhǎng)。由于互聯(lián)網(wǎng)、電子郵件、以及社交網(wǎng)絡(luò)的出現(xiàn),以及越來越多、占用存儲(chǔ)介質(zhì)越來越多的各種應(yīng)用軟件所致,數(shù)據(jù)量呈現(xiàn)巨大的增長(zhǎng)態(tài)勢(shì)。來自10年EMC與IDC聯(lián)合發(fā)布的數(shù)據(jù),預(yù)計(jì)在2020年,全球的數(shù)據(jù)量會(huì)是09年數(shù)據(jù)量總和的44倍,其中個(gè)人數(shù)據(jù)(包括音頻、視頻、圖形文件)占相當(dāng)大的比重;而對(duì)于企業(yè)來說,大量數(shù)據(jù)的管理問題也是不容小覷的,IBM在12年5月發(fā)布的報(bào)告說,企業(yè)數(shù)據(jù)正在以55%的速度逐年增長(zhǎng),如今只需兩天就能創(chuàng)造出自文明誕生以來到2003年所產(chǎn)生的數(shù)據(jù)總量。因此對(duì)于任何組織和個(gè)人來說,數(shù)據(jù)丟失都會(huì)帶來嚴(yán)重的后果。針對(duì)可能發(fā)生的數(shù)據(jù)丟失,數(shù)據(jù)保護(hù)技術(shù)應(yīng)運(yùn)而生,簡(jiǎn)單來說,就是提前把用戶的數(shù)據(jù)備份到別處,若被保護(hù)數(shù)據(jù)發(fā)生損壞或丟失,再將備份數(shù)據(jù)寫回到用戶的設(shè)備中。目前,市場(chǎng)主流的存儲(chǔ)系統(tǒng)都支持持續(xù)數(shù)據(jù)保護(hù)技術(shù),該技術(shù)可以監(jiān)聽到用戶對(duì)被保護(hù)數(shù)據(jù)的每次操作,并將變化的數(shù)據(jù)與發(fā)生變化的時(shí)間點(diǎn)保存在服務(wù)器上,若被保護(hù)數(shù)據(jù)發(fā)生丟失或損壞時(shí),可根據(jù)服務(wù)器上之前保存的數(shù)據(jù)和對(duì)應(yīng)的時(shí)間點(diǎn)快速恢復(fù)被保護(hù)數(shù)據(jù)。這類典型的系統(tǒng)如Iinux平臺(tái)上多版本文件系統(tǒng)EXT3C0W和windows平臺(tái)上容災(zāi)備份系統(tǒng)Hyperstor等。但該類系統(tǒng)存在的問題如下1、實(shí)現(xiàn)記錄數(shù)據(jù)操作的監(jiān)聽模塊,都是基于修改被保護(hù)數(shù)據(jù)所在操作系統(tǒng)內(nèi)核實(shí)現(xiàn)的,這會(huì)提升該操作系統(tǒng)的不穩(wěn)定性,同時(shí)加大監(jiān)聽模塊程序開發(fā)和測(cè)試的難度。2、針對(duì)不同的操作系統(tǒng)平臺(tái)(例如Iinux和windows),由于內(nèi)核API差別極大,需要開發(fā)出不同版本的監(jiān)聽模塊;即使是同一種操作系統(tǒng),由于內(nèi)核升級(jí)導(dǎo)致內(nèi)核API也會(huì)有較大變化,所以,針對(duì)特定版本內(nèi)核設(shè)計(jì)的監(jiān)聽模塊若要移植到另一個(gè)版本(例如從Iinux 2. 4系統(tǒng)移植到Iinux 2. 6系統(tǒng)),同樣需要對(duì)監(jiān)聽模塊的代碼進(jìn)行大量修改。3、數(shù)據(jù)恢復(fù)操作非常耗時(shí),主要原因是備份軟件在數(shù)據(jù)重組時(shí)需要掃描和讀取備份在服務(wù)器上的大量的變化數(shù)據(jù)和他們對(duì)應(yīng)的時(shí)間點(diǎn)信息,引起大量磁盤I/o操作。
發(fā)明內(nèi)容
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出一種塊級(jí)別的磁盤數(shù)據(jù)保護(hù)系統(tǒng)及其方法,該系統(tǒng)通用并且穩(wěn)定,系統(tǒng)開發(fā)和測(cè)試的難度低,該方法減少從備份區(qū)讀取備份數(shù)據(jù)單位的數(shù)量,且節(jié)省恢復(fù)的時(shí)間。1、本發(fā)明提出的一種塊級(jí)別的磁盤數(shù)據(jù)保護(hù)系統(tǒng),其特征在于該系統(tǒng)基于客戶端/服務(wù)器架構(gòu),被保護(hù)磁盤位于客戶端,服務(wù)器端存放備份數(shù)據(jù);該服務(wù)器端包括內(nèi)存及磁盤,該磁盤劃分為三個(gè)邏輯分區(qū),分別是鏡像區(qū)、快照區(qū)和備份區(qū),其中鏡像區(qū)與客戶端被保護(hù)磁盤互為實(shí)時(shí)鏡像,當(dāng)有數(shù)據(jù)寫入被保護(hù)磁盤時(shí),相同的數(shù)據(jù)也會(huì)同步寫入服務(wù)器端的鏡像區(qū);服務(wù)器端內(nèi)存中存有快照信息表、備份區(qū)中的扇區(qū)起始地址、監(jiān)聽模塊以及快照閥值;快照信息表中包含快照標(biāo)示符、快照時(shí)間和快照地址三列,快照標(biāo)示符是快照的標(biāo)識(shí),快照時(shí)間是做快照時(shí)的系統(tǒng)時(shí)間,快照地址為做快照時(shí)備份區(qū)的扇區(qū)起始地址;監(jiān)聽模塊用于監(jiān)聽并判斷對(duì)于鏡像區(qū)的iSCSI命令是進(jìn)行寫操作還是數(shù)據(jù)恢復(fù)操作;客戶端包括邏輯卷管理器、iSCSI和被保護(hù)磁盤三部分,iSCSI用于將服務(wù)器端鏡像區(qū)掛載到客戶端,邏輯卷管理器用于將被保護(hù)磁盤與服務(wù)器端鏡像區(qū)做成實(shí)時(shí)鏡像,保證當(dāng)有數(shù)據(jù)寫入被保護(hù)磁盤時(shí),相同的數(shù)據(jù)同步寫入服務(wù)器端的鏡像區(qū)。本發(fā)明還提出采用如上述系統(tǒng)的塊級(jí)別的磁盤數(shù)據(jù)保護(hù)方法,其特征在于,該方法包括磁盤數(shù)據(jù)備份和磁盤數(shù)據(jù)恢復(fù)兩部分;該磁盤數(shù)據(jù)備份包括以下步驟11)對(duì)服務(wù)器端進(jìn)行初始化,包括對(duì)快照閥值賦值(快照閥值可由用戶預(yù)先設(shè)置),以及對(duì)鏡像區(qū)數(shù)據(jù)進(jìn)行一次快照作為快照數(shù)據(jù),將快照數(shù)據(jù)存入快照區(qū),向快照信息表中添加一條記錄,該記錄的快照時(shí)間列為當(dāng)前系統(tǒng)時(shí)間,該記錄的快照地址列為當(dāng)前備份區(qū)扇區(qū)起始地址,該記錄的快照標(biāo)示符列為一個(gè)全局隨機(jī)數(shù),用來標(biāo)識(shí)該次快照;12)服務(wù)器端監(jiān)聽鏡像區(qū),并判斷對(duì)于鏡像區(qū)的iSCSI命令是進(jìn)行寫操作還是數(shù)據(jù)恢復(fù)操作,若是寫操作,則將本次寫操作暫停;13)服務(wù)器端將本次寫操作的寫入地址、數(shù)據(jù)長(zhǎng)度(以扇區(qū)為單位)、當(dāng)前系統(tǒng)時(shí)間以及數(shù)據(jù)內(nèi)容組織成一個(gè)備份數(shù)據(jù)單元;14)服務(wù)器端從內(nèi)存中讀取備份區(qū)扇區(qū)起始地址,并以備份區(qū)扇區(qū)起始地址為目標(biāo)地址,將備份數(shù)據(jù)單元寫入到備份區(qū)中;15)更新備份區(qū)扇區(qū)起始地址,新扇區(qū)起始地址為原扇區(qū)起始地址加上備份數(shù)據(jù)單元的長(zhǎng)度;16)恢復(fù)本次寫操作,使本次寫操作寫入鏡像區(qū);17)自上一次對(duì)鏡像區(qū)做快照起,若備份區(qū)內(nèi)增加的備份數(shù)據(jù)單元的個(gè)數(shù)大于快照閥值,對(duì)鏡像區(qū)數(shù)據(jù)進(jìn)行一次快照作為快照數(shù)據(jù),將快照數(shù)據(jù)存入快照區(qū),向快照信息表中添加一條記錄,該記錄的快照時(shí)間列為當(dāng)前系統(tǒng)時(shí)間,該記錄的快照地址列為當(dāng)前備份區(qū)扇區(qū)起始地址,該記錄的快照標(biāo)示符列為一個(gè)全局隨機(jī)數(shù),用來標(biāo)識(shí)該次快照。該磁盤數(shù)據(jù)恢復(fù)包括以下步驟21)服務(wù)器端自動(dòng)監(jiān)聽鏡像區(qū),并判斷對(duì)于鏡像區(qū)的iSCSI命令是進(jìn)行寫操作還是數(shù)據(jù)恢復(fù)操作,若是數(shù)據(jù)恢復(fù)操作,則服務(wù)器端根據(jù)接收客戶端提交的恢復(fù)時(shí)間點(diǎn),查詢快照信息表,找出所有快照時(shí)間中最臨近的早于恢復(fù)時(shí)間點(diǎn)的一條快照記錄,取出該條記錄的快照標(biāo)示符和快照地址;22)服務(wù)器端根據(jù)快照標(biāo)示符從快照區(qū)取出快照數(shù)據(jù),并將快照數(shù)據(jù)寫入鏡像區(qū);23)服務(wù)器端以快照地址為起始地址,從備份區(qū)中依次向后取出備份數(shù)據(jù)單元,直到備份數(shù)據(jù)單元內(nèi)的系統(tǒng)時(shí)間晚于客戶端提交的恢復(fù)時(shí)間點(diǎn),根據(jù)已取出的各個(gè)數(shù)據(jù)單元的扇區(qū)起始地址、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)內(nèi)容將備份數(shù)據(jù)寫入鏡像區(qū);24)服務(wù)器端將鏡像區(qū)數(shù)據(jù)返回到客戶端被保護(hù)磁盤。本發(fā)明提出的一種塊級(jí)別的磁盤數(shù)據(jù)保護(hù)系統(tǒng)及其方法,其優(yōu)點(diǎn)是
1、平臺(tái)通用磁盤數(shù)據(jù)保護(hù)系統(tǒng)適用于多種操作系統(tǒng)平臺(tái),或者同一種操作系統(tǒng)的不同版本。2、系統(tǒng)穩(wěn)定磁盤數(shù)據(jù)保護(hù)系統(tǒng)的實(shí)現(xiàn)不用修改操作系統(tǒng)內(nèi)核,保證了被保護(hù)數(shù)據(jù)所在操作系統(tǒng)的穩(wěn)定性,同時(shí)也降低系統(tǒng)開發(fā)和測(cè)試的難度。3、快速恢復(fù)數(shù)據(jù)恢復(fù)時(shí),磁盤數(shù)據(jù)保護(hù)系統(tǒng)先從快照區(qū)讀取相應(yīng)的快照數(shù)據(jù),減少從備份區(qū)讀取備份數(shù)據(jù)單位的數(shù)量,節(jié)省恢復(fù)的時(shí)間。
圖1是本發(fā)明磁盤數(shù)據(jù)保護(hù)系統(tǒng)組成示意圖。圖2是本發(fā)明磁盤數(shù)據(jù)保護(hù)系統(tǒng)快照信息表實(shí)施例結(jié)構(gòu)示意圖。圖3是本發(fā)明的磁盤數(shù)據(jù)保護(hù)系統(tǒng)數(shù)據(jù)備份實(shí)施例流程框圖。圖4是本發(fā)明的磁盤數(shù)據(jù)保護(hù)系統(tǒng)備份數(shù)據(jù)單元實(shí)施例結(jié)構(gòu)示意圖。圖5是本發(fā)明的磁盤數(shù)據(jù)保護(hù)系統(tǒng)數(shù)據(jù)恢復(fù)實(shí)施例流程框圖。
具體實(shí)施例方式本發(fā)明提出一種塊級(jí)別的磁盤數(shù)據(jù)保護(hù)系統(tǒng)及其方法,結(jié)合附圖及實(shí)施例詳細(xì)說明如下本發(fā)明提出一種塊級(jí)別的磁盤數(shù)據(jù)保護(hù)系統(tǒng),如圖1所示,數(shù)據(jù)保護(hù)首先需要解決的問題是如何在系統(tǒng)中截取到每次寫操作。如果在被保護(hù)的業(yè)務(wù)系統(tǒng)上截取,可能會(huì)影響業(yè)務(wù)系統(tǒng)自身的讀寫性能,本發(fā)明使用遠(yuǎn)程鏡像技術(shù)來保障寫操作的截取不會(huì)影像到業(yè)務(wù)系統(tǒng)自身的運(yùn)作。本系統(tǒng)基于客戶端/服務(wù)器架構(gòu),被保護(hù)磁盤位于客戶端,服務(wù)器端存放備份數(shù)據(jù)。服務(wù)器端磁盤劃分為三個(gè)邏輯分區(qū),分別是鏡像區(qū)、快照區(qū)和備份區(qū),其中鏡像區(qū)與客戶端被保護(hù)磁盤互為實(shí)時(shí)鏡像,當(dāng)有數(shù)據(jù)寫入被保護(hù)磁盤時(shí),相同的數(shù)據(jù)也會(huì)同步寫入服務(wù)器端的鏡像區(qū);服務(wù)器端內(nèi)存中存有快照信息表、備份區(qū)中的扇區(qū)起始地址、監(jiān)聽模塊以及快照閥值;快照信息表中包含快照標(biāo)示符、快照時(shí)間和快照地址三列,快照標(biāo)示符是快照的標(biāo)識(shí),快照時(shí)間是做快照時(shí)的系統(tǒng)時(shí)間,快照地址等于做快照時(shí)備份區(qū)的扇區(qū)起始地址;服務(wù)器端內(nèi)存中設(shè)置有快照閥值,該值可由用戶預(yù)先設(shè)置。客戶端包括邏輯卷管理器、iSCSI和被保護(hù)磁盤三部分,客戶端使用邏輯卷管理器和iSCSI來實(shí)現(xiàn)被保護(hù)磁盤和服務(wù)器端鏡像區(qū)的鏡像。邏輯卷管理器用于實(shí)現(xiàn)磁盤鏡像,但前提是互為鏡像的兩塊磁盤都必須是屬于本地操作系統(tǒng)的。iSCSI可以將一個(gè)遠(yuǎn)程主機(jī)的磁盤空間,當(dāng)作一個(gè)塊設(shè)備來使來掛載到本地操作系統(tǒng)上。所以,本發(fā)明的做法是,將服務(wù)器端鏡像區(qū)通過iSCSI掛載到客戶端的操作系統(tǒng)下,再用邏輯卷管理器將被保護(hù)磁盤和鏡像區(qū)做成鏡像,寫操作截取的動(dòng)作在服務(wù)器端完成,不影響客戶端系統(tǒng)自身的性能和穩(wěn)定性。服務(wù)器端通過監(jiān)聽模塊監(jiān)控針對(duì)到鏡像區(qū)的寫操作,并將寫入鏡像區(qū)的寫入地址、數(shù)據(jù)長(zhǎng)度(扇區(qū)為單位)、當(dāng)前系統(tǒng)時(shí)間及數(shù)據(jù)內(nèi)容組織成一個(gè)備份數(shù)據(jù)單元,以內(nèi)存中的備份區(qū)扇區(qū)起始地址為目標(biāo)地址將備份數(shù)據(jù)單元寫入到備份區(qū)中。在Iinux系統(tǒng)中,每個(gè)存儲(chǔ)設(shè)備都會(huì)在系統(tǒng)內(nèi)核中注冊(cè)一個(gè)make_request函數(shù)用來處理針對(duì)該設(shè)備的讀寫請(qǐng)求,當(dāng)用戶對(duì)該設(shè)備存儲(chǔ)設(shè)備進(jìn)行讀寫請(qǐng)求后,系統(tǒng)都會(huì)交給內(nèi)核中該設(shè)備對(duì)應(yīng)的驅(qū)動(dòng)函數(shù)make_request進(jìn)行讀寫處理,其中,make_request函數(shù)中有一個(gè)參數(shù)叫做bio,該參數(shù)內(nèi)包含本次操作類型(讀或?qū)?、設(shè)備目標(biāo)地址、讀寫長(zhǎng)度以及要讀寫的數(shù)據(jù)內(nèi)容。在監(jiān)聽模塊中,本發(fā)明實(shí)現(xiàn)了擁有監(jiān)控寫功能的makejequest函數(shù),并將該函數(shù)注冊(cè)給鏡像區(qū)。當(dāng)有針對(duì)鏡像區(qū)的寫操作時(shí),make_request函數(shù)首先暫停該寫操作,并分析傳入的bio參數(shù),并解析出將寫入鏡像區(qū)的寫入地址、數(shù)據(jù)長(zhǎng)度(以扇區(qū)為單位)、當(dāng)前系統(tǒng)時(shí)間及數(shù)據(jù)內(nèi)容組織成一個(gè)備份數(shù)據(jù)單元,根據(jù)內(nèi)存中的備份區(qū)扇區(qū)起始地址將備份數(shù)據(jù)單元寫入到備份區(qū)中,之后更新備份區(qū)扇區(qū)起始地址,新的備份區(qū)扇區(qū)起始地址等于原扇區(qū)起始地址加上數(shù)據(jù)單元的長(zhǎng)度,完成以上操作后,恢復(fù)該寫入鏡像區(qū)的操作。在數(shù)據(jù)保護(hù)的過程中,監(jiān)聽模塊會(huì)不間斷的監(jiān)聽鏡像區(qū)的寫操作,并將其組成備份數(shù)據(jù)單元存儲(chǔ)至備份區(qū)。但當(dāng)數(shù)據(jù)單元個(gè)數(shù)過多時(shí)會(huì)產(chǎn)生兩個(gè)問題1.如果用戶請(qǐng)求的恢復(fù)時(shí)間點(diǎn)與當(dāng)前時(shí)間較遠(yuǎn),服務(wù)器端需要取出這兩個(gè)時(shí)間點(diǎn)間的大量備份數(shù)據(jù)單元,并將這些數(shù)據(jù)單元寫回鏡像區(qū),這一過程會(huì)十分耗時(shí);2.若恢復(fù)時(shí)間點(diǎn)與當(dāng)前時(shí)間之間的某個(gè)備份數(shù)據(jù)單元發(fā)生損壞,則該數(shù)據(jù)單元之前的備份數(shù)據(jù)都無意義,造成數(shù)據(jù)丟失。本發(fā)明采用快照技術(shù)來解決以上問題。服務(wù)器端初始化時(shí)會(huì)對(duì)鏡像區(qū)數(shù)據(jù)做一次快照,將快照數(shù)據(jù)存入快照區(qū),向快照信息表中添加一條記錄,該記錄的快照時(shí)間列為當(dāng)前系統(tǒng)時(shí)間,該記錄的快照地址列為當(dāng)前備份區(qū)扇區(qū)起始地址,該記錄的快照標(biāo)示符列為一個(gè)全局隨機(jī)數(shù),用來標(biāo)識(shí)該次快照,快照信息表結(jié)構(gòu)如圖2所示,該表中顯示有4條快照記錄,每條記錄都描述了一次快照的相關(guān)信息,包括快照標(biāo)示符、快照時(shí)間和快照地址。在服務(wù)器端運(yùn)行過程中,監(jiān)聽模塊會(huì)監(jiān)測(cè)從鏡像區(qū)上一次快照起備份區(qū)內(nèi)備份數(shù)據(jù)單元新增的個(gè)數(shù),若新增數(shù)大于快照閥值時(shí),對(duì)鏡像區(qū)數(shù)據(jù)做一次快照,將快照數(shù)據(jù)存入快照區(qū),向快照信息表中添加一條記錄,該記錄的快照時(shí)間列為當(dāng)前系統(tǒng)時(shí)間,該記錄的快照地址列為當(dāng)前備份區(qū)扇區(qū)起始地址,該記錄的快照標(biāo)示符列為一個(gè)全局隨機(jī)數(shù),用來標(biāo)識(shí)該次快照。本發(fā)明的客戶端和服務(wù)器端的實(shí)施例均采用普通商用計(jì)算機(jī),客戶端支持windows平臺(tái)和Iinux平臺(tái),服務(wù)器端基于Iinux平臺(tái)開發(fā)。客戶端邏輯卷管理器采用windows和Iinux平臺(tái)自身提供的磁盤鏡像工具,其中windows平臺(tái)上的磁盤鏡像工具是磁盤管理控制臺(tái)(Windows Disk Managementconsole), linux平臺(tái)上的磁盤鏡像工具是分布式塊設(shè)備復(fù)制器(Distributed ReplicatedBlockDevice)。iSCSI米用windows和linux平臺(tái)自帶的iSCSI軟件程序。服務(wù)器端的監(jiān)聽模塊采用Iinux內(nèi)核模塊編程技術(shù)(linux kernelmoduleprogramming)實(shí)現(xiàn),基于C語言開發(fā)??煺臻y值的默認(rèn)值是1024,快照閥值可由用戶更改。服務(wù)器端使用Iinux提供的Ivcreate命令對(duì)鏡像區(qū)數(shù)據(jù)做快照,并將快照數(shù)據(jù)存入快照區(qū)。本發(fā)明采用如上述系統(tǒng)的塊級(jí)別的磁盤數(shù)據(jù)保護(hù)方法,其特征在于,該方法包括磁盤數(shù)據(jù)備份和磁盤數(shù)據(jù)恢復(fù)兩部分;該磁盤數(shù)據(jù)備份,如圖3所示包括以下流程11)對(duì)服務(wù)器端進(jìn)行初始化,包括對(duì)快照閥值賦值,以及對(duì)鏡像區(qū)數(shù)據(jù)進(jìn)行一次快照作為快照數(shù)據(jù),將快照數(shù)據(jù)存入快照區(qū),向快照信息表中添加一條記錄,該記錄的快照時(shí)間列為當(dāng)前系統(tǒng)時(shí)間,該記錄的快照地址列為當(dāng)前備份區(qū)扇區(qū)起始地址,該記錄的快照標(biāo)示符列為一個(gè)全局隨機(jī)數(shù),用來標(biāo)識(shí)該次快照;12)服務(wù)器端監(jiān)聽鏡像區(qū),并判斷對(duì)于鏡像區(qū)的iSCSI命令是進(jìn)行寫操作還是數(shù)據(jù)恢復(fù)操作,若是寫操作,則將本次寫操作暫停;13)服務(wù)器端將本次寫操作的寫入地址、數(shù)據(jù)長(zhǎng)度、當(dāng)前系統(tǒng)時(shí)間以及數(shù)據(jù)內(nèi)容組織成一個(gè)備份數(shù)據(jù)單元;14)服務(wù)器端從內(nèi)存中讀取備份區(qū)扇區(qū)起始地址,并以備份區(qū)扇區(qū)起始地址為目標(biāo)地址,將備份數(shù)據(jù)單元寫入到備份區(qū)中;15)更新備份區(qū)扇區(qū)起始地址,新扇區(qū)起始地址為原扇區(qū)起始地址加上備份數(shù)據(jù)單元的長(zhǎng)度;16)恢復(fù)本次寫操作,使本次寫操作寫入鏡像區(qū);17)自上一次對(duì)鏡像區(qū)做快照起,若備份區(qū)內(nèi)增加的備份數(shù)據(jù)單元的個(gè)數(shù)大于快照閥值,對(duì)鏡像區(qū)數(shù)據(jù)進(jìn)行一次快照作為快照數(shù)據(jù),將快照數(shù)據(jù)存入快照區(qū),向快照信息表中添加一條記錄,該記錄的快照時(shí)間列為當(dāng)前系統(tǒng)時(shí)間,該記錄的快照地址列為當(dāng)前備份區(qū)扇區(qū)起始地址,該記錄的快照標(biāo)示符列為一個(gè)全局隨機(jī)數(shù),用來標(biāo)識(shí)該次快照。本實(shí)施例的備份數(shù)據(jù)單元結(jié)構(gòu)如圖4所示,備份區(qū)內(nèi)存放多個(gè)備份數(shù)據(jù)單元,每個(gè)備份數(shù)據(jù)單元包含寫入地址、數(shù)據(jù)長(zhǎng)度、系統(tǒng)時(shí)間數(shù)據(jù)內(nèi)容4種信息。該磁盤數(shù)據(jù)恢復(fù),如圖5所示,包括以下流程21)服務(wù)器端自動(dòng)監(jiān)聽鏡像區(qū),并判斷對(duì)于鏡像區(qū)的iSCSI命令是進(jìn)行寫操作還是數(shù)據(jù)恢復(fù)操作,若是數(shù)據(jù)恢復(fù)操作,則服務(wù)器端根據(jù)接收客戶端提交的恢復(fù)時(shí)間點(diǎn),查詢快照信息表,找出所有快照時(shí)間中最臨近的早于恢復(fù)時(shí)間點(diǎn)的一條快照記錄,取出該條記錄的快照標(biāo)示符和快照地址;22)服務(wù)器端根據(jù)快照標(biāo)示符從快照區(qū)取出快照數(shù)據(jù),并將快照數(shù)據(jù)寫入鏡像區(qū);23)服務(wù)器端以快照地址為起始地址,從備份區(qū)中依次向后取出備份數(shù)據(jù)單元,直到備份數(shù)據(jù)單元內(nèi)的系統(tǒng)時(shí)間晚于客戶端提交的恢復(fù)時(shí)間點(diǎn),根據(jù)已取出的各個(gè)數(shù)據(jù)單元的扇區(qū)起始地址、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)內(nèi)容將備份數(shù)據(jù)寫入鏡像區(qū);24)服務(wù)器端將鏡像區(qū)數(shù)據(jù)返回到客戶端被保護(hù)磁盤。
權(quán)利要求
1.一種塊級(jí)別的磁盤數(shù)據(jù)保護(hù)系統(tǒng),其特征在于該系統(tǒng)基于客戶端/服務(wù)器架構(gòu),被保護(hù)磁盤位于客戶端,服務(wù)器端存放備份數(shù)據(jù); 該服務(wù)器端包括內(nèi)存及磁盤,該磁盤劃分為三個(gè)邏輯分區(qū),分別是鏡像區(qū)、快照區(qū)和備份區(qū),其中鏡像區(qū)與客戶端被保護(hù)磁盤互為實(shí)時(shí)鏡像,當(dāng)有數(shù)據(jù)寫入被保護(hù)磁盤時(shí),相同的數(shù)據(jù)也會(huì)同步寫入服務(wù)器端的鏡像區(qū);服務(wù)器端內(nèi)存中存有快照信息表、備份區(qū)中的扇區(qū)起始地址、監(jiān)聽模塊以及快照閥值;快照信息表中包含快照標(biāo)示符、快照時(shí)間和快照地址三列,快照標(biāo)示符是快照的標(biāo)識(shí),快照時(shí)間是做快照時(shí)的系統(tǒng)時(shí)間,快照地址為做快照時(shí)備份區(qū)的扇區(qū)起始地址;監(jiān)聽模塊用于監(jiān)聽并判斷對(duì)于鏡像區(qū)的iSCSI命令是進(jìn)行寫操作還是數(shù)據(jù)恢復(fù)操作; 客戶端包括邏輯卷管理器、iSCSI和被保護(hù)磁盤三部分,iSCSI用于將服務(wù)器端鏡像區(qū)掛載到客戶端,邏輯卷管理器用于將被保護(hù)磁盤與服務(wù)器端鏡像區(qū)做成實(shí)時(shí)鏡像,保證當(dāng)有數(shù)據(jù)寫入被保護(hù)磁盤時(shí),相同的數(shù)據(jù)同步寫入服務(wù)器端的鏡像區(qū)。
2.一種采用如權(quán)利要求1所述系統(tǒng)的塊級(jí)別的磁盤數(shù)據(jù)保護(hù)方法,其特征在于,該方法包括磁盤數(shù)據(jù)備份和磁盤數(shù)據(jù)恢復(fù)兩部分;該磁盤數(shù)據(jù)備份包括以下步驟 11)對(duì)服務(wù)器端進(jìn)行初始化,包括對(duì)快照閥值賦值,以及對(duì)鏡像區(qū)數(shù)據(jù)進(jìn)行一次快照作為快照數(shù)據(jù),將快照數(shù)據(jù)存入快照區(qū),向快照信息表中添加一條記錄,該記錄的快照時(shí)間列為當(dāng)前系統(tǒng)時(shí)間,該記錄的快照地址列為當(dāng)前備份區(qū)扇區(qū)起始地址,該記錄的快照標(biāo)示符列為一個(gè)全局隨機(jī)數(shù),用來標(biāo)識(shí)該次快照; 12)服務(wù)器端監(jiān)聽鏡像區(qū),并判斷對(duì)于鏡像區(qū)的iSCSI命令是進(jìn)行寫操作還是數(shù)據(jù)恢復(fù)操作,若是寫操作,則將本次寫操作暫停; 13)服務(wù)器端將本次寫操作的寫入地址、數(shù)據(jù)長(zhǎng)度、當(dāng)前系統(tǒng)時(shí)間以及數(shù)據(jù)內(nèi)容組織成一個(gè)備份數(shù)據(jù)單元; 14)服務(wù)器端從內(nèi)存中讀取備份區(qū)扇區(qū)起始地址,并以備份區(qū)扇區(qū)起始地址為目標(biāo)地址,將備份數(shù)據(jù)單元寫入到備份區(qū)中; 15)更新備份區(qū)扇區(qū)起始地址,新扇區(qū)起始地址為原扇區(qū)起始地址加上備份數(shù)據(jù)單元的長(zhǎng)度; 16)恢復(fù)本次寫操作,使本次寫操作寫入鏡像區(qū); 17)自上一次對(duì)鏡像區(qū)做快照起,若備份區(qū)內(nèi)增加的備份數(shù)據(jù)單元的個(gè)數(shù)大于快照閥值,對(duì)鏡像區(qū)數(shù)據(jù)進(jìn)行一次快照作為快照數(shù)據(jù),將快照數(shù)據(jù)存入快照區(qū),向快照信息表中添加一條記錄,該記錄的快照時(shí)間列為當(dāng)前系統(tǒng)時(shí)間,該記錄的快照地址列為當(dāng)前備份區(qū)扇區(qū)起始地址,該記錄的快照標(biāo)示符列為一個(gè)全局隨機(jī)數(shù),用來標(biāo)識(shí)該次快照; 該磁盤數(shù)據(jù)恢復(fù)包括以下步驟 21)服務(wù)器端自動(dòng)監(jiān)聽鏡像區(qū),并判斷對(duì)于鏡像區(qū)的iSCSI命令是進(jìn)行寫操作還是數(shù)據(jù)恢復(fù)操作,若是數(shù)據(jù)恢復(fù)操作,則服務(wù)器端根據(jù)接收客戶端提交的恢復(fù)時(shí)間點(diǎn),查詢快照信息表,找出所有快照時(shí)間中最臨近的早于恢復(fù)時(shí)間點(diǎn)的一條快照記錄,取出該條記錄的快照標(biāo)示符和快照地址; 22)服務(wù)器端根據(jù)快照標(biāo)示符從快照區(qū)取出快照數(shù)據(jù),并將快照數(shù)據(jù)寫入鏡像區(qū); 23)服務(wù)器端以快照地址為起始地址,從備份區(qū)中依次向后取出備份數(shù)據(jù)單元,直到備份數(shù)據(jù)單元內(nèi)的系統(tǒng)時(shí)間晚于客戶端提交的恢復(fù)時(shí)間點(diǎn),根據(jù)已取出的各個(gè)數(shù)據(jù)單元的扇區(qū)起始地址、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)內(nèi)容將備份數(shù)據(jù)寫入鏡像區(qū);24 )服務(wù)器端將鏡像區(qū)數(shù)據(jù)返回到客戶端被保護(hù)磁盤。
全文摘要
一種塊級(jí)別的磁盤數(shù)據(jù)保護(hù)系統(tǒng)及其方法,屬于計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)和保護(hù)領(lǐng)域,該系統(tǒng)基于客戶端/服務(wù)器架構(gòu),被保護(hù)磁盤位于客戶端,服務(wù)器端存放備份數(shù)據(jù);服務(wù)器端分為鏡像區(qū)、備份區(qū)和快照區(qū),被保護(hù)磁盤與鏡像區(qū)做成實(shí)時(shí)鏡像,用戶所有對(duì)被保護(hù)磁盤的操作都會(huì)被同步到鏡像區(qū);服務(wù)器端監(jiān)聽模塊將寫入到鏡像區(qū)的數(shù)據(jù)組織成備份數(shù)據(jù)單元,依次寫入備份區(qū);當(dāng)備份區(qū)內(nèi)新增數(shù)據(jù)備份單元數(shù)量大于用戶設(shè)定的閥值時(shí),服務(wù)器端對(duì)鏡像區(qū)數(shù)據(jù)做快照,并將快照數(shù)據(jù)寫入快照區(qū);若用戶提出恢復(fù)請(qǐng)求,服務(wù)器端根據(jù)恢復(fù)時(shí)間點(diǎn)先從快照區(qū)將快照數(shù)據(jù)寫入鏡像區(qū),再從備份區(qū)找出相應(yīng)備份數(shù)據(jù)單元寫入鏡像區(qū),最后返回到被保護(hù)磁盤。
文檔編號(hào)G06F11/14GK103019890SQ20121056803
公開日2013年4月3日 申請(qǐng)日期2012年12月24日 優(yōu)先權(quán)日2012年12月24日
發(fā)明者汪東升, 王占業(yè) 申請(qǐng)人:清華大學(xué)