◆吳彥虹
(陜西廣播電視大學(xué)延安分校 陜西 716000)
集中式數(shù)據(jù)備份系統(tǒng)研究
◆吳彥虹
(陜西廣播電視大學(xué)延安分校 陜西 716000)
隨著信息技術(shù)的應(yīng)用越來越廣泛,在大量主機(jī)中包含了大量非常重要的數(shù)據(jù),為了保證這些數(shù)據(jù)的安全性,需要對(duì)這些分散在不同主機(jī)上的數(shù)據(jù)進(jìn)行備份。集中數(shù)據(jù)備份系統(tǒng)可以實(shí)現(xiàn)對(duì)分散主機(jī)上數(shù)據(jù)的集中備份,系統(tǒng)由客戶層、管理層和服務(wù)層三層組成,并且充分考慮了備份數(shù)據(jù)的安全性,采用PKI認(rèn)證系統(tǒng)實(shí)現(xiàn)備份數(shù)據(jù)的安全管理。集中數(shù)據(jù)備份系統(tǒng)采用一種統(tǒng)一的模式來實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)分散主機(jī)上的數(shù)據(jù)處理,通過較少的硬件設(shè)備投入來為大量主機(jī)用戶提供數(shù)據(jù)備份功能,提高了數(shù)據(jù)的安全性。
數(shù)據(jù)安全;數(shù)據(jù)備份;集中
由于水災(zāi)、火災(zāi)等自然災(zāi)害,系統(tǒng)硬件故障、人為誤操作、黑客攻擊等不確定因素時(shí)刻威脅著計(jì)算機(jī)中數(shù)據(jù)的安全,在任何時(shí)候,數(shù)據(jù)的丟失都將會(huì)造成無法估量的損失,因此通過數(shù)據(jù)的備份恢復(fù)管理來保證系統(tǒng)數(shù)據(jù)安全已經(jīng)成為了信息安全研究的重點(diǎn)內(nèi)容。目前絕大部分大型系統(tǒng)中都有備份系統(tǒng),但是對(duì)于用戶數(shù)量眾多的分散主機(jī)用戶而言,雖然也有強(qiáng)烈的數(shù)據(jù)備份需求,但并不具備單獨(dú)建立備份系統(tǒng)的條件。為此,需要建立一個(gè)集中式數(shù)據(jù)備份系統(tǒng)來為網(wǎng)絡(luò)內(nèi)大量分散主機(jī)用戶提供數(shù)據(jù)備份功能。
1.1 系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)
考慮到信息系統(tǒng)中數(shù)據(jù)產(chǎn)生、存儲(chǔ)和管理的各個(gè)環(huán)節(jié),為了能夠保證系統(tǒng)足夠的穩(wěn)定性、擴(kuò)展性和適應(yīng)性,數(shù)據(jù)備份系統(tǒng)設(shè)計(jì)采用了層次化結(jié)構(gòu),數(shù)據(jù)備份系統(tǒng)主要包括客戶層、管理層和服務(wù)層三大部分。其中,客戶層主要完成客戶計(jì)算機(jī)相關(guān)資源的管理;管理層主要包括認(rèn)證中心、備份控制臺(tái)和備份適配器等內(nèi)容;服務(wù)器則是為用戶提供存儲(chǔ)功能的服務(wù)器資源。
1.2 控制臺(tái)模塊設(shè)計(jì)
從功能上看,數(shù)據(jù)備份系統(tǒng)主要完成數(shù)據(jù)備份計(jì)劃制訂,數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)三大功能。
(1)數(shù)據(jù)備份計(jì)劃制訂
數(shù)據(jù)備份計(jì)劃制定由客戶端發(fā)起,將數(shù)據(jù)備份計(jì)劃提交到適配器,然后由適配器向控制臺(tái)進(jìn)行申請(qǐng),在申請(qǐng)同歸周后,適配器根據(jù)詢問服務(wù)器的資源使用情況,根據(jù)服務(wù)器資源的使用現(xiàn)狀,制訂數(shù)據(jù)備份計(jì)劃。
(2)數(shù)據(jù)備份
系統(tǒng)中的數(shù)據(jù)備份功能由控制臺(tái)進(jìn)行統(tǒng)一管理,控制臺(tái)會(huì)根據(jù)不同客戶端所提交并審核通過的數(shù)據(jù)備份計(jì)劃,建立適配器與服務(wù)器之間的備份通道。為了實(shí)現(xiàn)多臺(tái)客戶端同時(shí)進(jìn)行數(shù)據(jù)備份請(qǐng)求的管理,在進(jìn)行數(shù)據(jù)備份時(shí),不能由客戶端直接向服務(wù)器發(fā)送數(shù)據(jù)備份請(qǐng)求,而應(yīng)該通過向適配器發(fā)送數(shù)據(jù)備份請(qǐng)求,有適配器對(duì)多個(gè)客戶端所提出的數(shù)據(jù)備份請(qǐng)求進(jìn)行統(tǒng)一管理之后,再分配客戶端與服務(wù)器之間的數(shù)據(jù)備份通道,將客戶端的數(shù)據(jù)備份到服務(wù)器中。數(shù)據(jù)備份流程設(shè)計(jì)如圖1所示。
1.3 服務(wù)器模塊設(shè)計(jì)
服務(wù)器采用線程池的方式接收客戶端所發(fā)送的備份數(shù)據(jù)。服務(wù)器底層采用 TCP協(xié)議實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸,并且將加密數(shù)據(jù)存儲(chǔ)到存儲(chǔ)設(shè)備,在回復(fù)時(shí)根據(jù)數(shù)據(jù)恢復(fù)請(qǐng)求讀取存儲(chǔ)區(qū)的數(shù)據(jù)通過傳輸通道同步到客戶端。服務(wù)器的工作流程設(shè)計(jì)如圖2所示。
圖1 數(shù)據(jù)備份流程圖
圖2 服務(wù)器流程設(shè)計(jì)
為了保證數(shù)據(jù)接收的可靠性和性能,服務(wù)器采用同步I/O策略,使用線程池并發(fā)策略防止單線程阻塞問題。
在備份計(jì)劃制訂、數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)過程中,服務(wù)器端的主要功能和工作流程設(shè)計(jì)如下所示。
(1)備份計(jì)劃制定階段
服務(wù)器等待適配器的數(shù)據(jù)備份請(qǐng)求,并且根據(jù)數(shù)據(jù)備份請(qǐng)求安排數(shù)據(jù)備份時(shí)間。
(2)數(shù)據(jù)備份階段
在數(shù)據(jù)備份階段,服務(wù)器同時(shí)需要向適配器進(jìn)行身份認(rèn)證,認(rèn)證通過之后,開始等待客戶端的連接,在完成與客戶端的握手協(xié)議之后,對(duì)客戶端發(fā)送的數(shù)據(jù)進(jìn)行校驗(yàn)檢查,并且將數(shù)據(jù)存儲(chǔ)到存儲(chǔ)區(qū)。
(3)數(shù)據(jù)恢復(fù)階段
服務(wù)器接收適配器的狀態(tài)詢問,并返回自身運(yùn)行狀態(tài)給適配器,等待數(shù)據(jù)恢復(fù)。在實(shí)現(xiàn)與客戶端的連接自后,從存儲(chǔ)區(qū)中讀取數(shù)據(jù)恢復(fù)到客戶端。
1.4 適配器模塊設(shè)計(jì)
適配器是真?zhèn)€數(shù)據(jù)備份系統(tǒng)的管理模塊,客戶端的備份申請(qǐng)、服務(wù)器狀態(tài)詢問、客戶端與服務(wù)器的認(rèn)證等功能都由適配器完成。根據(jù)適配器的功能特點(diǎn),適配器采用反應(yīng)器框架和線程池方法完成回調(diào)和并發(fā)操作,適配器模塊的設(shè)計(jì)如圖3所示。
圖3 適配器模塊設(shè)計(jì)
在備份計(jì)劃制訂、數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)過程中,適配器的主要功能和工作流程設(shè)計(jì)如下所示。
(1)備份計(jì)劃制定階段
在備份制訂階段,適配器接收客戶端的數(shù)據(jù)備份申請(qǐng),并將申請(qǐng)轉(zhuǎn)交給控制臺(tái)。同時(shí),適配器發(fā)送驗(yàn)證請(qǐng)求對(duì)客戶端的合法性進(jìn)行認(rèn)證,以及向服務(wù)器發(fā)送備份時(shí)間請(qǐng)求,詢問服務(wù)器狀態(tài)。在客戶端合法和控制臺(tái)通過了數(shù)據(jù)備份請(qǐng)求之后,根據(jù)服務(wù)器狀態(tài)制定數(shù)據(jù)備份計(jì)劃,并且存儲(chǔ)在適配器中。
(2)數(shù)據(jù)備份階段
根據(jù)數(shù)據(jù)備份計(jì)劃,向客戶端和服務(wù)器發(fā)送數(shù)據(jù)備份指令,客戶端和服務(wù)器在接收到指令之后,由客戶端和服務(wù)器之間建立數(shù)據(jù)通道進(jìn)行數(shù)據(jù)備份。
(3)數(shù)據(jù)恢復(fù)階段
數(shù)據(jù)恢復(fù)階段的流程與數(shù)據(jù)備份階段流程類似,適配器根據(jù)數(shù)據(jù)恢復(fù)計(jì)劃,向客戶端和服務(wù)器發(fā)送數(shù)據(jù)恢復(fù)指令,并且由客戶端和服務(wù)器端建立數(shù)據(jù)通道進(jìn)行數(shù)據(jù)恢復(fù)。
1.5 認(rèn)證中心設(shè)計(jì)
在數(shù)據(jù)備份系統(tǒng)中,備份數(shù)據(jù)的安全性與系統(tǒng)數(shù)據(jù)的安全性同等重要,為了防止未授權(quán)的第三方竊取備份數(shù)據(jù)中的信息,需要對(duì)備份數(shù)據(jù)進(jìn)行加密,以防止備份系統(tǒng)管理員仍以訪問備份數(shù)據(jù)中的信息。在系統(tǒng)中采用公鑰基礎(chǔ)設(shè)施(PKI)來實(shí)現(xiàn)備份數(shù)據(jù)的加密。
為了保證數(shù)據(jù)傳輸安全,在PKI總體結(jié)構(gòu)中,服務(wù)器與客戶端之間采用安全套接字(Secure Socket Layer, SSL)進(jìn)行通信,發(fā)送方使用接收方的公鑰進(jìn)行數(shù)據(jù)加密,并且使用私鑰對(duì)數(shù)據(jù)進(jìn)行簽名,接收方使用自己的私鑰對(duì)數(shù)據(jù)進(jìn)行解密,并且使用對(duì)方的公鑰來進(jìn)行認(rèn)證。
數(shù)據(jù)備份是集中式數(shù)據(jù)備份系統(tǒng)的重要內(nèi)容,數(shù)據(jù)備份方法分為完全數(shù)據(jù)備份和增量數(shù)據(jù)備份兩種情況。其中完全備份數(shù)據(jù)源的數(shù)據(jù)完全拷貝到服務(wù)器中,該算法與非集中式數(shù)據(jù)備份算法相同。但是在增量數(shù)據(jù)表備份過程中,由于集中式數(shù)據(jù)備份系統(tǒng)的數(shù)據(jù)源更廣,因此需要在已有的增量備份算法上進(jìn)行改進(jìn),以獲得更好的時(shí)間性能和空間性能。
2.1 經(jīng)典增量備份算法
Rsync算法是Andrew Tridgell所提出來的一種經(jīng)典增量備份算法,其主要分為如下所示的三個(gè)部分。
(1)數(shù)據(jù)文件處理
首先,將數(shù)據(jù)文件按照固定大小塊劃分為多個(gè)數(shù)據(jù)塊(最后一塊的大小可能小于固定值);其次,對(duì)每個(gè)數(shù)據(jù)塊計(jì)算弱校驗(yàn)碼和強(qiáng)校驗(yàn)碼兩種校驗(yàn)碼;最后,建立以弱校驗(yàn)碼為關(guān)鍵字的哈希表,并將哈希表發(fā)送到集中式數(shù)據(jù)備份系統(tǒng)的服務(wù)器,完成數(shù)據(jù)文件的處理。
(2)待備份數(shù)據(jù)識(shí)別
集中式數(shù)據(jù)備份系統(tǒng)服務(wù)器在接收到客戶端所上傳的哈希表后,對(duì)該客戶端已備份的數(shù)據(jù)文件同樣按照固定大小進(jìn)行分塊,并計(jì)算每一塊的弱校驗(yàn)碼,若該數(shù)據(jù)塊的弱校驗(yàn)碼與客戶端此次上傳哈希表的弱校驗(yàn)碼相同,則繼續(xù)進(jìn)行強(qiáng)校驗(yàn)碼的計(jì)算和匹配,若強(qiáng)校驗(yàn)碼也匹配,則表明該塊數(shù)據(jù)已經(jīng)備份,所有數(shù)據(jù)塊處理完之后,完成客戶端此次增量備份過程中待備份數(shù)據(jù)的識(shí)別,并將待備份的數(shù)據(jù)塊序號(hào)發(fā)送給客戶端。在這過程中,弱校驗(yàn)碼的計(jì)算簡(jiǎn)單,執(zhí)行速度較快,弱校驗(yàn)碼和強(qiáng)校驗(yàn)碼匹配的方式可以提高算法效率。
(3)備份數(shù)據(jù)文件重構(gòu)
客戶端接收到服務(wù)器發(fā)送的待備份數(shù)據(jù)后,建立臨時(shí)文件,并將待備份的數(shù)據(jù)被分到臨時(shí)文件中,并最終將臨時(shí)文件上傳到服務(wù)器進(jìn)行保存,完成數(shù)據(jù)的增量備份。
2.2 經(jīng)典增量備份算法的不足
由于集中式數(shù)據(jù)備份系統(tǒng)面向數(shù)量眾多的數(shù)據(jù)源,數(shù)據(jù)備份事務(wù)更頻繁的特點(diǎn),導(dǎo)致如上所示的Rsync經(jīng)典增量備份算法存在如下的不足。
一方面,Rsync算法采用固定大小的分塊方式對(duì)數(shù)據(jù)文件進(jìn)行分塊,從而降低了數(shù)據(jù)變化時(shí)的算法適應(yīng)能力;另一方面,在增量備份過程中,需要構(gòu)建臨時(shí)文件,因此算法的空間性能較差,受到存儲(chǔ)空間的限制;除此之外,服務(wù)器的計(jì)算量大,需要進(jìn)行反復(fù)掃描和匹配,在數(shù)據(jù)源較多、數(shù)據(jù)備份事務(wù)頻繁時(shí),服務(wù)器的負(fù)載過大。
2.3 增量備份算法的改進(jìn)
由于集中式數(shù)據(jù)備份系統(tǒng)面向多個(gè)不同數(shù)據(jù)源,數(shù)據(jù)備份事務(wù)多的特點(diǎn),因此更加需要考慮數(shù)據(jù)備份的網(wǎng)絡(luò)帶寬開銷、計(jì)算開銷和存儲(chǔ)空間。并根據(jù)Rsync增量備份算法在集中式數(shù)據(jù)備份系統(tǒng)中的不足,從如下幾個(gè)方面來進(jìn)行改進(jìn)。
(1)針對(duì)服務(wù)器端計(jì)算開銷過大的問題,使用不等長分塊方法進(jìn)行數(shù)據(jù)塊檢驗(yàn),將服務(wù)器端的數(shù)據(jù)差異計(jì)算由字節(jié)級(jí)別降低到數(shù)據(jù)塊級(jí)別。
(2)利用差異編碼技術(shù)重構(gòu)文件,改進(jìn)后的算法對(duì)匹配和差異數(shù)據(jù)進(jìn)行差異壓縮,減少差異數(shù)據(jù)的傳輸流量。
改進(jìn)后的算法流程如下所示:
①采用基于文件內(nèi)容的數(shù)據(jù)切分算法,將客戶端的數(shù)據(jù)文件劃分為不等長的數(shù)據(jù)塊;
②記錄數(shù)據(jù)塊長度len和偏移量offset,并計(jì)算每個(gè)數(shù)據(jù)塊的弱校驗(yàn)值和MD5強(qiáng)校驗(yàn)值,并將這些信息上傳到服務(wù)器;
③根據(jù)數(shù)據(jù)塊長度len和偏移量offset將服務(wù)器數(shù)據(jù)文件切分為對(duì)應(yīng)長度的數(shù)據(jù)塊,并記性搜索匹配,若匹配不成功,則將對(duì)應(yīng)的塊信息、差異數(shù)據(jù)和差異指示標(biāo)志寫入差異編碼文件delta;
④服務(wù)器將最終的差異編碼文件發(fā)送給客戶端,客戶端根據(jù)數(shù)據(jù)文件和delta文件中的差異指示標(biāo)志位,來判斷是否需要將數(shù)據(jù)塊復(fù)制到新文件中進(jìn)行備份。
集中式數(shù)據(jù)備份系統(tǒng)主要由客戶層、管理層和服務(wù)器層三層結(jié)構(gòu)組成,同時(shí),由于網(wǎng)絡(luò)內(nèi)大量用戶可以從服務(wù)器中進(jìn)行數(shù)據(jù)恢復(fù),因此為了保證用戶的數(shù)據(jù)不被網(wǎng)絡(luò)內(nèi)其它用戶所竊取,采用了PKI來保證服務(wù)器中用戶備份數(shù)據(jù)的安全性。
[1]王悅.搭建容災(zāi)備份中心保障電子政務(wù)系統(tǒng)安全[J].信息系統(tǒng)工程,2010.
[2]敖莉,舒繼武,李明強(qiáng).重復(fù)數(shù)據(jù)刪除技術(shù)[J].軟件學(xué)報(bào),2010.
[3]雷葆華.云計(jì)算解碼—技術(shù)架構(gòu)和產(chǎn)業(yè)運(yùn)營[M].北京:電子工業(yè)出版社,2011.
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2017年4期