專利名稱:網(wǎng)絡(luò)信息系統(tǒng)異地?cái)?shù)據(jù)鏡像方法
技術(shù)領(lǐng)域:
本發(fā)明提出了一種網(wǎng)絡(luò)信息系統(tǒng)異地?cái)?shù)據(jù)鏡像方法,屬于信息安全領(lǐng)域。
背景技術(shù):
傳統(tǒng)的異地?cái)?shù)據(jù)鏡像技術(shù)依賴專用高速線路,普遍需要架設(shè)光纖專線,且對(duì)遠(yuǎn)程備份中心系統(tǒng)配置要求很高,幾乎就是要在異地建立一套與本地系統(tǒng)完全一模一樣的信息處理中心,需要專人值守,整個(gè)系統(tǒng)的建設(shè)費(fèi)用和維護(hù)費(fèi)用非常昂貴。
中國(guó)專利公開(kāi)號(hào)為CN2653593的申請(qǐng)案可實(shí)現(xiàn)數(shù)據(jù)的異地備份,但需要光纖網(wǎng)絡(luò)和光纖交換設(shè)備,系統(tǒng)的建設(shè)費(fèi)用和維護(hù)費(fèi)用昂貴,且備份距離受到很大限制。中國(guó)專利公開(kāi)號(hào)為CN1445672的申請(qǐng)案可以實(shí)現(xiàn)異構(gòu)網(wǎng)絡(luò)的數(shù)據(jù)鏡像,但當(dāng)本地?cái)?shù)據(jù)中心產(chǎn)生海量數(shù)據(jù)變化時(shí),將會(huì)導(dǎo)致嚴(yán)重的性能問(wèn)題。
針對(duì)上述缺陷,本發(fā)明提出了一種網(wǎng)絡(luò)信息系統(tǒng)異地?cái)?shù)據(jù)鏡像方法,支持本地?cái)?shù)據(jù)中心的海量數(shù)據(jù)變化,對(duì)網(wǎng)絡(luò)的帶寬以及網(wǎng)絡(luò)的穩(wěn)定性要求低,支持專線/非專線災(zāi)難備份策略,支持Internet,極大地降低了容災(zāi)抗毀系統(tǒng)的成本,具有廣闊的應(yīng)用前景。
發(fā)明內(nèi)容
本發(fā)明的核心包括數(shù)據(jù)狀態(tài)同步、本地?cái)?shù)據(jù)監(jiān)控、海量數(shù)據(jù)高速緩存、異地重放、差錯(cuò)控制等5個(gè)部分。其中數(shù)據(jù)狀態(tài)同步是指在系統(tǒng)最初開(kāi)始運(yùn)行前或者系統(tǒng)運(yùn)行過(guò)程中本地?cái)?shù)據(jù)與遠(yuǎn)程數(shù)據(jù)出現(xiàn)狀態(tài)不一致時(shí),使本地?cái)?shù)據(jù)與遠(yuǎn)程數(shù)據(jù)狀態(tài)一致。本地?cái)?shù)據(jù)監(jiān)控由數(shù)據(jù)監(jiān)視模塊DMON實(shí)現(xiàn),對(duì)本地?cái)?shù)據(jù)中心中需要鏡像的數(shù)據(jù)進(jìn)行精確的監(jiān)控,全面記錄本地?cái)?shù)據(jù)中心數(shù)據(jù)變化的詳細(xì)過(guò)程,確保在數(shù)據(jù)鏡像時(shí)滴水不漏。DMON把監(jiān)視到的數(shù)據(jù)變化情況送入海量數(shù)據(jù)高速緩存器Q。海量數(shù)據(jù)高速緩存器Q中需要鏡像的數(shù)據(jù)通過(guò)異地重放完成本地?cái)?shù)據(jù)在異地的重構(gòu)。在數(shù)據(jù)的重放過(guò)程中采用差錯(cuò)控制技術(shù)確保數(shù)據(jù)的一致性。異地重放、差錯(cuò)控制由本地發(fā)送模塊LSM以及遠(yuǎn)程重放模塊RRM協(xié)作實(shí)現(xiàn)。
在詳細(xì)闡述本發(fā)明前,先做如下定義(1)需鏡像的對(duì)象集合設(shè)需鏡像的對(duì)象集合T={數(shù)據(jù)文件,磁盤分區(qū),磁盤,或者其他可訪問(wèn)的網(wǎng)絡(luò)存儲(chǔ)設(shè)備},表示所有需要鏡像的對(duì)象。
(2)需鏡像的對(duì)象列表定義需鏡像的對(duì)象列表L={t|t∈T},表示服務(wù)器上需要鏡像的對(duì)象。
(3)重放記錄集合定義重放記錄集合R={<target,offset,data,h>|target∈T,offset∈N,data∈{0,1}l,l∈N,h=<ht,hd>},其中target為發(fā)生數(shù)據(jù)變化的鏡像對(duì)象,offset為變化數(shù)據(jù)在鏡像對(duì)象的位置,data為變化數(shù)據(jù)的具體內(nèi)容,h為摘要值,N為自然數(shù)集,ht為鏡像對(duì)象數(shù)據(jù)狀態(tài)的摘要值,hd為變化數(shù)據(jù)的摘要值。
(4)海量數(shù)據(jù)高速緩存器(簡(jiǎn)稱為海量緩存器)定義海量數(shù)據(jù)高速緩存器Q=<r1,r2,...,rn>(r1∈R,t=1,2,...,n),海量緩存器用于緩存本地?cái)?shù)據(jù)中心監(jiān)控到的數(shù)據(jù)變化,供所有需鏡像的服務(wù)器共享使用,以先進(jìn)先出隊(duì)列方式組織,分為兩級(jí)緩存,分別位于主存和外存中。海量緩存器Q的大小可以靈活設(shè)定,Q越大,能夠緩存的數(shù)據(jù)變化越多,用本發(fā)明設(shè)計(jì)的系統(tǒng)就能更好地容忍Internet的帶寬限制、速度變化、網(wǎng)絡(luò)中斷等不利因素。實(shí)際使用中,海量緩存器Q的大小可以根據(jù)被監(jiān)控服務(wù)器的路數(shù),內(nèi)存大小,鏡像對(duì)象容量,系統(tǒng)數(shù)據(jù)的變化頻率,網(wǎng)絡(luò)的連接速度,容許網(wǎng)絡(luò)中斷的最大時(shí)間等來(lái)綜合確定。
(5)摘要值的計(jì)算函數(shù)設(shè)data為t時(shí)刻的數(shù)據(jù)變化,hdt表示t時(shí)刻變化數(shù)據(jù)的摘要值,htt表示t時(shí)刻鏡像對(duì)象數(shù)據(jù)狀態(tài)的摘要值,計(jì)算方法為hdt=H(data)(1)htt=H0,iff t=t0H(htt-1+hdt),otherwise---(2)]]>其中,t0為最初開(kāi)始鏡像的時(shí)刻,H0是t0時(shí)刻鏡像對(duì)象整個(gè)數(shù)據(jù)的摘要值。H為單向散列函數(shù),可以是MD5、SHA-1等,+表示字符串的連接運(yùn)算。從公式(2)可以看出,除t0時(shí)刻需要對(duì)鏡像對(duì)象整個(gè)數(shù)據(jù)計(jì)算摘要值以外,其他時(shí)刻都是在前一時(shí)刻的基礎(chǔ)上計(jì)算摘要值,因此在鏡像過(guò)程中計(jì)算摘要值的資源開(kāi)銷很小。在開(kāi)始鏡像前,需要對(duì)本地鏡像對(duì)象和遠(yuǎn)程對(duì)應(yīng)對(duì)象做數(shù)據(jù)狀態(tài)同步,因此開(kāi)始備份時(shí)本地鏡像對(duì)象的數(shù)據(jù)狀態(tài)摘要值與遠(yuǎn)程鏡像對(duì)象的數(shù)據(jù)狀態(tài)摘要值相同。
圖1是本發(fā)明的體系架構(gòu)。
圖2是數(shù)據(jù)狀態(tài)同步的步驟。
圖3是本地?cái)?shù)據(jù)監(jiān)控的步驟。
圖4是海量數(shù)據(jù)高速緩存的步驟。
圖5是異地重放的步驟。
圖6是差錯(cuò)控制的步驟。
具體實(shí)施例方式
以下結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明的具體方法。
圖1是本發(fā)明的體系架構(gòu)。
本發(fā)明在實(shí)現(xiàn)上分為本地和遠(yuǎn)程兩個(gè)部分,本地部分包括若干個(gè)需要數(shù)據(jù)鏡像的本地服務(wù)器,遠(yuǎn)程部分包括一個(gè)或者多個(gè)遠(yuǎn)程服務(wù)器。本地的每一臺(tái)服務(wù)器上都有一個(gè)數(shù)據(jù)監(jiān)視模塊DMON、鏡像對(duì)象列表L。海量數(shù)據(jù)高速緩存器Q既可以位于本地服務(wù)器,也可以位于一臺(tái)單獨(dú)的機(jī)器,并可以為多個(gè)本地服務(wù)器共享。本地發(fā)送模塊LSM與海量緩存器Q同處一臺(tái)機(jī)器。遠(yuǎn)程重放模塊RRM位于遠(yuǎn)程服務(wù)器。一個(gè)遠(yuǎn)程服務(wù)器可以為多個(gè)本地服務(wù)器共享。
數(shù)據(jù)監(jiān)視模塊DMON監(jiān)聽(tīng)操作系統(tǒng)的寫操作,如果該寫操作的鏡像對(duì)象T在鏡像對(duì)象列表L中(需遠(yuǎn)程鏡像),則產(chǎn)生一個(gè)重放記錄R,送入海量緩存器Q的尾部。本地發(fā)送模塊LSM不斷地從海量緩存器Q的頭部取出重放記錄R,發(fā)送到遠(yuǎn)程服務(wù)器,遠(yuǎn)程重放模塊RRM根據(jù)收到的重放記錄R對(duì)相應(yīng)的鏡像對(duì)象在同樣的位置重寫一遍,從而完成鏡像對(duì)象的數(shù)據(jù)異地鏡像工作。
圖2是數(shù)據(jù)狀態(tài)同步的步驟。
本地?cái)?shù)據(jù)中心與遠(yuǎn)程備份中心數(shù)據(jù)狀態(tài)同步的具體步驟如下(1)對(duì)鏡像對(duì)象進(jìn)行塊劃分將本地鏡像對(duì)象與遠(yuǎn)程對(duì)應(yīng)對(duì)象劃分為n個(gè)大小為S的塊(最一塊可小于S)。
(2)對(duì)每一塊進(jìn)行數(shù)據(jù)同步從第1塊開(kāi)始,對(duì)每一塊進(jìn)行如下步驟①計(jì)算本地鏡像對(duì)象該塊的摘要值設(shè)該塊的內(nèi)容為data,用公式(1)計(jì)算該塊的摘要值h。
②計(jì)算遠(yuǎn)程對(duì)應(yīng)對(duì)象對(duì)應(yīng)塊的摘要值設(shè)該塊的內(nèi)容為data’,用公式(1)計(jì)算該塊的摘要值h’。
③根據(jù)摘要值更新遠(yuǎn)程對(duì)應(yīng)塊的內(nèi)容如果h和h’不等,則用本地?cái)?shù)據(jù)塊的內(nèi)容更新遠(yuǎn)程對(duì)應(yīng)塊的數(shù)據(jù)。
(3)清空海量緩存器清空海量緩存器Q的所有記錄,并釋放其所占空間。
圖3是本地?cái)?shù)據(jù)監(jiān)控的步驟。
本地?cái)?shù)據(jù)監(jiān)控由數(shù)據(jù)監(jiān)視模塊DMON實(shí)現(xiàn),具體步驟如下(1)監(jiān)視操作系統(tǒng)對(duì)鏡像對(duì)象進(jìn)行寫操作當(dāng)數(shù)據(jù)監(jiān)視模塊監(jiān)聽(tīng)到操作系統(tǒng)對(duì)某個(gè)對(duì)象T進(jìn)行了操作時(shí),如果該操作是寫操作并且被操作的對(duì)象T是在鏡像對(duì)象列表L中,則轉(zhuǎn)(2),否則轉(zhuǎn)(1)。
(2)把變化數(shù)據(jù)發(fā)送給海量數(shù)據(jù)高速緩存器把步驟(1)監(jiān)視到的鏡像對(duì)象、寫操作在鏡像對(duì)象的偏移位置、要寫入的具體內(nèi)容等信息發(fā)送給海量緩存器Q,重新回到(1)。
圖4是海量數(shù)據(jù)高速緩存的步驟。
海量緩存器Q收到數(shù)據(jù)監(jiān)視模塊DMON送來(lái)的變化數(shù)據(jù)時(shí),對(duì)其進(jìn)行處理,產(chǎn)生重放記錄,添加到Q的尾部,具體步驟如下(1)計(jì)算變化數(shù)據(jù)摘要值根據(jù)公式(1)計(jì)算變化數(shù)據(jù)的摘要值hdt。
(2)計(jì)算鏡像對(duì)象數(shù)據(jù)狀態(tài)摘要值根據(jù)公式(2)計(jì)算鏡像對(duì)象數(shù)據(jù)狀態(tài)的摘要值htt。
(3)封裝產(chǎn)生重放記錄把鏡像對(duì)象、寫操作在鏡像對(duì)象的偏移位置、要寫入的具體內(nèi)容、摘要值hdt、htt封裝成一個(gè)重放記錄R。
(4)把重放記錄存入海量數(shù)據(jù)高速緩存器將重放記錄R添加到海量緩存器Q的尾部。
圖5是異地重放的步驟。
所謂異地重放就是將海量緩存器Q中的重放記錄R按同樣順序在遠(yuǎn)程服務(wù)器對(duì)應(yīng)對(duì)象的相應(yīng)位置重新再寫一遍,從而完成本地?cái)?shù)據(jù)變化在異地同步重構(gòu)的工作。異地重放通過(guò)本地發(fā)送模塊LSM和遠(yuǎn)程重放模塊RRM協(xié)作完成。
具體步驟如下(1)從海量數(shù)據(jù)高速緩存器取出重放記錄如果海量數(shù)據(jù)高速緩存器Q中還有未處理的重放記錄,則從海量緩存器Q的頭部取出一條重放記錄R,否則轉(zhuǎn)(1)。
(2)把重放記錄發(fā)送到遠(yuǎn)程服務(wù)器通過(guò)網(wǎng)絡(luò)將重放記錄R發(fā)送到遠(yuǎn)程服務(wù)器。
(3)在遠(yuǎn)程服務(wù)器上進(jìn)行遠(yuǎn)程重放遠(yuǎn)程服務(wù)器根據(jù)重放記錄R的內(nèi)容對(duì)相應(yīng)的對(duì)象,在對(duì)應(yīng)的偏移位置,寫入相應(yīng)的數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)在遠(yuǎn)程服務(wù)器上的異地重構(gòu)。在遠(yuǎn)程重放過(guò)程中,還要進(jìn)行差錯(cuò)控制,以確保數(shù)據(jù)的一致性。
(4)根據(jù)遠(yuǎn)程重放結(jié)果進(jìn)行處理如果遠(yuǎn)程服務(wù)器要求重傳,則將重放記錄R重新發(fā)送到遠(yuǎn)程端。如果遠(yuǎn)程服務(wù)器要求數(shù)據(jù)狀態(tài)重新同步,則對(duì)本地服務(wù)器上的鏡像對(duì)象和遠(yuǎn)程服務(wù)器對(duì)應(yīng)的對(duì)象進(jìn)行數(shù)據(jù)狀態(tài)同步。遠(yuǎn)程重放結(jié)果進(jìn)行處理完成后轉(zhuǎn)到(1),處理下一個(gè)重放記錄。
圖6是差錯(cuò)控制的步驟。
異地重放時(shí),需要進(jìn)行嚴(yán)格的差錯(cuò)控制,其方法為通過(guò)比較變化數(shù)據(jù)摘要值和鏡像對(duì)象數(shù)據(jù)狀態(tài)摘要值來(lái)實(shí)現(xiàn),具體步驟如下(1)通過(guò)變化數(shù)據(jù)摘要值控制重放記錄重傳具體方法為比較變化數(shù)據(jù)的摘要值,具體步驟如下①重新計(jì)算變化數(shù)據(jù)的摘要值對(duì)LSM發(fā)送過(guò)來(lái)的重放記錄R,根據(jù)公式(1)重新計(jì)算變化數(shù)據(jù)的摘要值hdt’;②提取原來(lái)的變化數(shù)據(jù)摘要值從重放記錄R中提取原來(lái)的摘要值hdt;③比較變化數(shù)據(jù)摘要值如果hdt’=hdt,則變化數(shù)據(jù)傳送無(wú)誤,否則請(qǐng)求重新發(fā)送重放記錄R。
(2)通過(guò)鏡像對(duì)象數(shù)據(jù)狀態(tài)摘要值控制數(shù)據(jù)狀態(tài)重新同步具體方法為比較鏡像對(duì)象的數(shù)據(jù)狀態(tài)的摘要值,具體步驟如下①計(jì)算遠(yuǎn)程服務(wù)器對(duì)應(yīng)對(duì)象的數(shù)據(jù)狀態(tài)摘要值根據(jù)公式(2)計(jì)算遠(yuǎn)程服務(wù)器對(duì)應(yīng)對(duì)象的數(shù)據(jù)狀態(tài)摘要值htt’;②提取本地服務(wù)器鏡像對(duì)象的數(shù)據(jù)狀態(tài)摘要值從重放記錄R中提取本地服務(wù)器鏡像對(duì)象的數(shù)據(jù)狀態(tài)摘要值hdt;③比較鏡像對(duì)象數(shù)據(jù)狀態(tài)摘要值如果htt’=htt,則本地服務(wù)器鏡像對(duì)象的數(shù)據(jù)狀態(tài)與遠(yuǎn)程服務(wù)器對(duì)應(yīng)對(duì)象的數(shù)據(jù)狀態(tài)一致,否則要求對(duì)本地服務(wù)器鏡像對(duì)象和遠(yuǎn)程服務(wù)器對(duì)應(yīng)對(duì)象進(jìn)行數(shù)據(jù)狀態(tài)同步工作。
權(quán)利要求
1.一種網(wǎng)絡(luò)信息系統(tǒng)異地?cái)?shù)據(jù)鏡像方法,其特征在于包括以下步驟數(shù)據(jù)狀態(tài)同步的步驟;本地?cái)?shù)據(jù)監(jiān)控的步驟;海量數(shù)據(jù)高速緩存的步驟;異地重放的步驟;差錯(cuò)控制的步驟;其中(1)數(shù)據(jù)狀態(tài)同步的步驟包括以下步驟對(duì)鏡像對(duì)象進(jìn)行塊劃分的步驟;對(duì)每一塊進(jìn)行數(shù)據(jù)同步的步驟;清空海量緩存器的步驟;(2)本地?cái)?shù)據(jù)監(jiān)控的步驟包括以下步驟監(jiān)視操作系統(tǒng)對(duì)鏡像對(duì)象進(jìn)行寫操作的步驟;把變化數(shù)據(jù)發(fā)送給海量數(shù)據(jù)高速緩存器的步驟;(3)海量數(shù)據(jù)高速緩存的步驟包括以下步驟計(jì)算變化數(shù)據(jù)摘要值的步驟;計(jì)算鏡像對(duì)象數(shù)據(jù)狀態(tài)摘要值的步驟;封裝產(chǎn)生重放記錄的步驟;把重放記錄存入海量數(shù)據(jù)高速緩存器的步驟;(4)異地重放的步驟包括以下步驟從海量數(shù)據(jù)高速緩存器取出重放記錄的步驟;把重放記錄發(fā)送到遠(yuǎn)程服務(wù)器的步驟;在遠(yuǎn)程服務(wù)器上進(jìn)行遠(yuǎn)程重放的步驟;根據(jù)遠(yuǎn)程重放結(jié)果進(jìn)行處理的步驟;(5)差錯(cuò)控制的步驟包括以下步驟通過(guò)變化數(shù)據(jù)摘要值控制重放記錄重傳的步驟;通過(guò)鏡像對(duì)象數(shù)據(jù)狀態(tài)摘要值控制數(shù)據(jù)狀態(tài)重新同步的步驟。
2.權(quán)利要求1所述的一種網(wǎng)絡(luò)信息系統(tǒng)異地?cái)?shù)據(jù)鏡像方法,其特征在于數(shù)據(jù)狀態(tài)同步的步驟中,對(duì)每一塊進(jìn)行數(shù)據(jù)同步的步驟包括以下步驟計(jì)算本地鏡像對(duì)象該塊摘要值的步驟;計(jì)算遠(yuǎn)程對(duì)應(yīng)對(duì)象對(duì)應(yīng)塊摘要值的步驟;根據(jù)摘要值更新遠(yuǎn)程對(duì)應(yīng)塊內(nèi)容的步驟。
3.權(quán)利要求1所述的一種網(wǎng)絡(luò)信息系統(tǒng)異地?cái)?shù)據(jù)鏡像方法,其特征在于差錯(cuò)控制的步驟中,通過(guò)變化數(shù)據(jù)摘要值控制重放記錄重傳的步驟包括以下步驟重新計(jì)算變化數(shù)據(jù)的摘要值的步驟;提取原來(lái)的變化數(shù)據(jù)摘要值的步驟;比較變化數(shù)據(jù)摘要值的步驟。
4.權(quán)利要求1所述的一種網(wǎng)絡(luò)信息系統(tǒng)異地?cái)?shù)據(jù)鏡像方法,其特征在于差錯(cuò)控制的步驟中,通過(guò)鏡像對(duì)象數(shù)據(jù)狀態(tài)摘要值控制數(shù)據(jù)狀態(tài)重新同步的步驟包括以下步驟計(jì)算遠(yuǎn)程服務(wù)器對(duì)應(yīng)對(duì)象的數(shù)據(jù)狀態(tài)摘要值的步驟;提取本地服務(wù)器鏡像對(duì)象的數(shù)據(jù)狀態(tài)摘要值的步驟;比較鏡像對(duì)象數(shù)據(jù)狀態(tài)摘要值的步驟。
全文摘要
本發(fā)明提出了一種網(wǎng)絡(luò)信息系統(tǒng)異地?cái)?shù)據(jù)鏡像方法,屬于信息安全領(lǐng)域。本發(fā)明通過(guò)數(shù)據(jù)狀態(tài)同步、本地?cái)?shù)據(jù)監(jiān)控、海量數(shù)據(jù)高速緩存、異地重放、差錯(cuò)控制等技術(shù),在不影響本地?cái)?shù)據(jù)中心服務(wù)器效率的情況下,實(shí)現(xiàn)了本地?cái)?shù)據(jù)中心數(shù)據(jù)在異地的實(shí)時(shí)重構(gòu),解決了本地?cái)?shù)據(jù)帶寬與備份線路帶寬之間的突出矛盾,大大降低了對(duì)備份網(wǎng)絡(luò)帶寬的要求和對(duì)網(wǎng)絡(luò)其他資源的占用,提高了系統(tǒng)的效率。同時(shí),即使中途網(wǎng)絡(luò)出現(xiàn)故障、或帶寬不穩(wěn)定,系統(tǒng)也可容忍,本地?cái)?shù)據(jù)中心數(shù)據(jù)的任何細(xì)微改變都會(huì)被正確及時(shí)送達(dá)遠(yuǎn)程備份中心,確保了本地?cái)?shù)據(jù)中心和遠(yuǎn)端備份中心數(shù)據(jù)的一致性。本發(fā)明支持專線/非專線災(zāi)難備份策略,支持Internet,極大地降低了容災(zāi)抗毀系統(tǒng)的成本,具有廣闊的應(yīng)用前景。
文檔編號(hào)G06F11/14GK1831782SQ200610020460
公開(kāi)日2006年9月13日 申請(qǐng)日期2006年3月10日 優(yōu)先權(quán)日2006年3月10日
發(fā)明者李濤 申請(qǐng)人:四川大學(xué)