版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第9章 網(wǎng)絡存儲備份系統(tǒng)在計算機系統(tǒng)中,備份是指拷貝特定的數(shù)據(jù)集到指定的存儲設備上,當數(shù)據(jù)集丟失時,從相應的設備上讀取這些額外拷貝重新恢復數(shù)據(jù)集。由于備份至少包含有數(shù)據(jù)集的一個副本,因此不僅需要大量的存儲空間進行存放,而且必須對于這些備份數(shù)據(jù)進行高效的管理。傳統(tǒng)上往往使用磁帶庫作為數(shù)據(jù)備份的目標設備,這主要是由于備份數(shù)據(jù)集往往很少改動,因此特別適合于磁帶這種離線的設備。但是隨著存儲技術(shù)的發(fā)展和存儲空間的廉價趨勢,現(xiàn)有越來越多的存儲設備可以作為備份資源。隨著網(wǎng)絡技術(shù)的發(fā)展,通過共享存儲系統(tǒng)可以方便的為多個客戶端提供高效備份服務,這樣能夠的優(yōu)化存儲資源的使用效率,并能夠更好的管理各種備份數(shù)據(jù)。由于
2、備份構(gòu)成對于存儲容量、性能有著巨大的需要,因此大規(guī)模存儲系統(tǒng)往往必須為多個用戶和應用提供備份服務。本章首先討論備份系統(tǒng)的原理和實現(xiàn)技術(shù),重點介紹一種基于網(wǎng)絡的備份系統(tǒng)的設計結(jié)構(gòu)和實現(xiàn)方法。本章設計的備份系統(tǒng)主要針對邏輯備份,將從網(wǎng)絡備份系統(tǒng)的總體結(jié)構(gòu),以及設計方案入手,詳細討論基于存儲網(wǎng)絡的備份系統(tǒng)的軟件設計,尤其是備份管理程序和備份客戶端與備份源代理(即恢復目的代理)的設計與實現(xiàn)。9.1 復制和鏡像技術(shù)從為數(shù)據(jù)集建立拷貝的角度看,數(shù)據(jù)復制和鏡像技術(shù)也是兩種特殊的數(shù)據(jù)備份技術(shù)。在邏輯上數(shù)據(jù)復制更加強調(diào)數(shù)據(jù)拷貝的過程,而鏡像是在時間維度上的保持拷貝和數(shù)據(jù)集更新的同步。而它們都是提高存儲系統(tǒng)中數(shù)據(jù)
3、可用性的重要技術(shù),并且在很多方面都采用了相同的技術(shù),如快照技術(shù),因此在討論普通意義上備份系統(tǒng)之前,先簡單分析一下復制和鏡像技術(shù)。數(shù)據(jù)復制可以分為兩種級別,一是基于文件系統(tǒng)的備份復制技術(shù),另一種是基于數(shù)據(jù)塊和邏輯卷的復制技術(shù)。前者可以通過文件系統(tǒng)或者數(shù)據(jù)庫的備份系統(tǒng)實現(xiàn),對重要的文件和數(shù)據(jù)進行備份,如數(shù)據(jù)備份;而后者往往基于軟硬件結(jié)合的方式實現(xiàn),不必了解數(shù)據(jù)的含義,例如磁盤鏡像。磁盤鏡像是一個基于數(shù)據(jù)塊層的功能,用設備虛擬化的基本形式使兩個或者多個磁盤表現(xiàn)為一個邏輯磁盤形式,接受完全相同的數(shù)據(jù)。從鏡像對中,對磁盤驅(qū)動器的相對優(yōu)先級分析可以分為主/從鏡像對,對等鏡像對;從操作時間性可以分為同步、異
4、步和半同步鏡像;從空間上分為本地磁盤鏡像和遠程磁盤鏡像。而鏡像功能往往通過在I/O路徑中增加鏡像器實現(xiàn)。本地磁盤鏡像往往結(jié)合RAID技術(shù)實現(xiàn),而遠程鏡像往往涉及更為復雜的結(jié)構(gòu)和技術(shù)。圖 9.1同步遠程鏡像數(shù)據(jù)流程示意圖同步的遠程鏡像技術(shù)的前提是本地和異地間通過高速的通道直接連接,它對網(wǎng)絡的穩(wěn)定性和性能都要很高的要求。實現(xiàn)同步的遠程鏡像技術(shù)有兩種方法,一種是在主機端的文件系統(tǒng)的設備驅(qū)動層進行修改,把發(fā)給本地磁盤陣列的寫I/O請求同時發(fā)送給異地的鏡像磁盤陣列,當兩個寫I/O請求都完成后才認為請求完成,這類似于RAID1方式。另一種方法,就是在磁盤陣列的控制器中進行設計,把發(fā)給本地磁盤陣列的寫I/O
5、請求同時發(fā)送給異地的鏡像磁盤陣列。當遠程磁盤陣列響應后,本地磁盤陣列才回復主機I/O完成。這種方法的好處是對主機透明,但為了提高性能必須在兩個磁盤陣列之間建立獨立的通道。對于讀I/O,沒有同步的必要。圖 9.1顯示了同步遠程鏡像過程。圖 9.2異步遠程鏡像數(shù)據(jù)流程示意圖異步的遠程鏡像技術(shù)雖然不特別要求網(wǎng)絡的實時性,但同時引入了本地和異地數(shù)據(jù)不一致的風險。異步的遠程鏡像技術(shù)同樣通過主機系統(tǒng)或者磁盤陣列系統(tǒng)實現(xiàn),和同步方式不同的是異步系統(tǒng)必須建立同步點或者叫做檢查點,在檢查點上兩方數(shù)據(jù)是完全一致的。在檢查點之后,本地系統(tǒng)依次向遠地陣列發(fā)送自己收到的I/O,但保留所有I/O請求直到下一個檢查點,當遠
6、程陣列確認完成到一個檢查點之后,本地系統(tǒng)才釋放這一批保留的I/O請求。圖 9.2顯示了異步遠程鏡像過程。它也是遠程容災的核心技術(shù)之一。為了保證不影響主機的業(yè)務系統(tǒng)的正常運行,減小數(shù)據(jù)量,數(shù)據(jù)復制所采用的基本方法是快照技術(shù)。9.2 備份系統(tǒng)概述數(shù)據(jù)備份是存儲系統(tǒng)最重要應用之一,是保護用戶數(shù)據(jù)的關(guān)鍵技術(shù)手段。雖然在線的鏡像或者冗余技術(shù)能夠有效的提高數(shù)據(jù)的可用性,但事實上,對于用戶刪除或者修改,這些在線冗余系統(tǒng)卻無能為力,因此如果說前者那些在線冗余技術(shù)在空間維度上能夠保證系統(tǒng)數(shù)據(jù)的可用性,那么備份系統(tǒng)能夠進一步在時間維度上的保證數(shù)據(jù)的可靠性。實際備份有多種實現(xiàn)形式,從不同的角度可以對備份進行不同的分
7、類: 從備份策略來看,可以分為完全備份,增量備份,差分備份。完全備份就是拷貝整個文件系統(tǒng)的數(shù)據(jù)到備份設備。它最為簡單,但有兩個不利之處,首先是讀寫整個文件是一個非常費時的操作,其次每次都會需要大量的存儲空間。而增量備份是一種更快、備份數(shù)據(jù)更少的策略,它在上次全備份基礎上僅僅拷貝新生或者修改的文件,但是在恢復時,它需要檢索整個備份文件修改鏈。差量備份即拷貝所有新的數(shù)據(jù),這些數(shù)據(jù)都是上一次完全備份后產(chǎn)生或更新的。增量備份和差量備份的區(qū)別在于前者記錄上一次備份(完全或者增量備份)以來的更新數(shù)據(jù),而后者記錄從上次完全備份以來的所有更新數(shù)據(jù)。按照備份時間來劃分,可以分為即時備份和計劃備份。前者需要馬上開
8、始備份任務,而后者僅在制定的時間到達時啟動備份任務。按照備份種類來劃分,可以分為系統(tǒng)備份和用戶備份。從備份模式來看,備份過程可以分為物理備份和邏輯備份。物理備份又稱為“基于塊(block-based)的備份”或“基于設備(device-based)的備份”。它忽略文件的結(jié)構(gòu),把磁盤塊直接拷貝到備份介質(zhì)上,這避免了大量的尋址操作,直接提高了備份的性能。但為了恢復特定的文件,物理備份必須記錄文件和目錄在磁盤上的組織信息,因此它同樣依賴于特定的文件系統(tǒng)。邏輯備份也可以稱作“基于文件(file-based)的備份”。它能夠立即將文件目錄結(jié)構(gòu),通過遍歷目錄樹拷貝所有整個文件到指定設備,它能夠很方便的完成
9、指定文件目錄的恢復。根據(jù)備份服務器在備份過程中是否可以接收用戶響應和數(shù)據(jù)更新,又可以分為離線備份和在線備份。許多備份程序需要整個文件系統(tǒng)在備份過程中保持文件系統(tǒng)的只讀性質(zhì),當備份完成時才能進行寫或者更新操作,這是一種簡單的備份策略,但由于備份窗口相對很大,會降低系統(tǒng)的可用性。相反在線備份運行系統(tǒng)備份數(shù)據(jù)時的更新操作,但隨著帶來的就是數(shù)據(jù)一致性的問題。事實上,在線備份具有很多實現(xiàn)的困難之處,特別是在備份過程中目錄的移動,或者文件的創(chuàng)建、增加、更新或者刪除。對于在線備份,可以通過增加鎖和檢測修改機制能夠避免一致性問題的產(chǎn)生。但是考慮到備份版本的問題,也經(jīng)常使用快照技術(shù)??煺盏幕舅枷胧莾鼋Y(jié)或者維護
10、一個文件系統(tǒng)當前的只讀狀態(tài),并記錄這個時刻的系統(tǒng)數(shù)據(jù)。全量快照是實現(xiàn)所有數(shù)據(jù)的一個完整的只讀副本;為了降低快照所占用的存儲空間,提出了寫前拷貝(COW,Copy-On-Write)和ROW(Redirect on Write,寫時重定向)快照技術(shù),寫前拷貝基本想法是當正在備份的文件或數(shù)據(jù)庫對象發(fā)生改變時,將磁盤上的原有數(shù)據(jù)塊拷貝到一個臨時磁盤位置,并使用一個特殊的位圖索引標明原有塊的位置以及臨時存儲的相應位置,類似于緩存索引,備份系統(tǒng)檢測索引表判斷下一個讀取的數(shù)據(jù)塊是否在臨時位置,如果是,那么將就指導備份進程訪問臨時磁盤位置的原數(shù)據(jù)塊;當備份完成時,清除位圖索引,釋放臨時存儲的數(shù)據(jù)塊,提供給下
11、一次使用。而寫時重定向只包括新的寫操作數(shù)據(jù)??煺占夹g(shù)對于前臺應用性能的影響較小,每天可以建立多個快照??煺湛梢栽诖疟P陣列、文件系統(tǒng)、卷管理器、NAS系統(tǒng)或者備份軟件中實現(xiàn)。如圖 9.3所示??煺帐紫纫⒁粋€與主存儲系統(tǒng)互為鏡像且分離的可尋址的存儲實體,備份操作在該存儲實體上進行,而不是在主存儲系統(tǒng)上進行,從而使備份不至于影響服務器正常運行。當備份結(jié)束時,由于主機可能在備份期間對主存儲系統(tǒng)數(shù)據(jù)進行改寫,從而使得鏡像存儲中的內(nèi)容與主存儲中不一致,為了鏡像存儲與主存儲之間快速同步,在備份期間對主存儲系統(tǒng)中的數(shù)據(jù)的改寫要進行記錄或緩存下來。圖 9.3磁盤卷的快照示意圖快照是在完全讀和增量讀之間的權(quán)衡
12、。每一個快照是一個完整的文件系統(tǒng)樹,它在概念上類似與一個完全備份。然而,它的實現(xiàn)更類似于一個增量備份,因為快照和存檔文件系統(tǒng)共享任何一個未被修改過的塊;一個快照只需要對發(fā)生改變的塊進行額外的存儲。為了取得合理的性能,存儲快照的設備必須有效的支持隨機訪問??煺罩饕譃閮纱箢?,一種是基于硬件的快照,利用卷映像技術(shù)執(zhí)行磁盤驅(qū)動器上的數(shù)據(jù)拷貝。另一種是基于軟件的快照,是通過內(nèi)存作為緩沖區(qū)由軟件提供系統(tǒng)磁盤存儲的即時數(shù)據(jù)映像,這種方式存在緩沖區(qū)調(diào)度的問題?,F(xiàn)今主要有四種快照技術(shù):分離鏡像(Split-Mirror)、寫前拷貝CoW(Copy-on-Write)、重定向?qū)慠oW(Redirect on W
13、rite)、日志結(jié)構(gòu)的文件系統(tǒng)。第一種屬于基于硬件快照,后三種屬于基于軟件的快照。為了減小備份任務的存儲空間或者傳輸帶寬的需要,許多備份系統(tǒng)可以在數(shù)據(jù)開始備份時進行壓縮,與之相對應的是在恢復過程中需要解壓備份數(shù)據(jù)。9.3 備份系統(tǒng)基本結(jié)構(gòu)一個典型的網(wǎng)絡備份系統(tǒng)包括以下幾個部件:備份引擎系統(tǒng),備份源系統(tǒng),網(wǎng)絡和網(wǎng)絡接口,備份設備和子系統(tǒng)。備份引擎系統(tǒng)運行主要的備份控制軟件,并負責所有的管理功能,包括設備操作、備份計劃、介質(zhì)管理、數(shù)據(jù)庫記錄處理以及錯誤處理等。備份源系統(tǒng)備份計劃、介質(zhì)管理、數(shù)據(jù)庫記錄處理以及錯誤處理等。備份源系統(tǒng)是讀取備份數(shù)據(jù)的軟硬件系統(tǒng),在很多情況下,備份源代理必須理解和記錄數(shù)據(jù)
14、在備份源主機上數(shù)據(jù)的物理和邏輯結(jié)構(gòu),例如很多數(shù)據(jù)庫備份源模塊需要理解內(nèi)部的表結(jié)構(gòu)和物理數(shù)據(jù)存放結(jié)構(gòu),使得一方面提高備份效率,另一方面在恢復過程中使得數(shù)據(jù)能夠更快地被使用。備份設備和子系統(tǒng)在傳統(tǒng)上往往指對于磁帶機(庫)的管理,目前能夠擴展管理基于磁盤的備份系統(tǒng)(虛擬磁帶庫)。而網(wǎng)絡和網(wǎng)絡接口部件用戶傳輸管理命令和實際的備份數(shù)據(jù)。備份系統(tǒng)往往依賴于存儲系統(tǒng)的物理和邏輯結(jié)構(gòu)。在主機系統(tǒng)中,備份設備(磁帶機等)往往在執(zhí)行備份任務前掛接到主機系統(tǒng)外部總線接口上,由主機上的備份軟件執(zhí)行具體的備份任務,在完成備份任務再卸載備份設備;在恢復過程中,也同樣需要掛載備份設備到主機上,由主機上的恢復軟件完成恢復任務
15、。在這種結(jié)構(gòu)中備份軟件作為主機軟件的組成部分執(zhí)行備份任務。在中大型機系統(tǒng)中,備份設備(磁帶庫)在物理上往往直接連接在主機的外部總線上,無需物理的掛載和卸載過程,由備份軟件負責何時進行備份或者恢復操作。也就是說,在這種系統(tǒng)中,主機必須參與整個備份/恢復工作,而備份源也往往是主機自己的應用數(shù)據(jù)(文件系統(tǒng)或者數(shù)據(jù)庫)。在基于SAN的備份系統(tǒng)中,面向備份的磁帶庫和其他塊級存儲設備一起連接到光纖通道交換機上,因此在確定備份源和備份目的或者恢復源和恢復目的后,可以直接通過光纖通道從源設備備份或者恢復數(shù)據(jù)到目的設備,減少了主機的干預,提高了備份的性能和效率,特別對于物理備份完全可以通過光纖交換機或者磁盤陣列
16、完成卷備份,而無需主機干預。并且在這種結(jié)構(gòu)中備份設備可以為多個主機提供備份服務,提高了備份設備的利用效率。在基于LAN的備份系統(tǒng)中,備份系統(tǒng)可能具有獨立的備份服務器,可以高效的為更多用戶提供備份服務。針對日常產(chǎn)生的大量數(shù)據(jù)可以使用數(shù)據(jù)備份系統(tǒng)對關(guān)鍵數(shù)據(jù)進行備份。備份技術(shù)核心就是數(shù)據(jù)復制和管理。傳統(tǒng)備份介質(zhì)往往是磁帶庫和光盤庫,采用全量、增量或者差量備份技術(shù)對數(shù)據(jù)進行歸檔。網(wǎng)絡存儲系統(tǒng)的出現(xiàn)和磁盤系統(tǒng)的性價比的提高,大容量磁盤系統(tǒng)也成為一種重要的備份數(shù)據(jù)物理平臺Ann Chervenak, 1998 #217。由于磁盤具有隨機存取的特性,因此可以減小增量備份過程中拷貝量,并且提供更加靈活的手段。
17、文獻Dorward, 2002 #218描述了一種用于對數(shù)據(jù)進行歸檔的網(wǎng)絡存儲系統(tǒng)稱為Venti。在這個系統(tǒng)中使用數(shù)據(jù)塊內(nèi)容進行hash產(chǎn)生對于讀寫操作的唯一標識。這種方法強制使用一次寫策略write-once策略,防止意外的或者惡意的破壞數(shù)據(jù)。除外,數(shù)據(jù)塊的拷貝被關(guān)聯(lián)以減少存儲空間的使用和簡化客戶的使用。Venti可以被用于構(gòu)造各種存儲應用如邏輯備份,物理備份和系統(tǒng)快照。在一個海量網(wǎng)絡存儲系統(tǒng)中,備份系統(tǒng)往往也具有海量的特征。例如NERSC包含兩個運行HPSS(High Performance Storage System)的高帶寬歸檔系統(tǒng)(Archive和Regent)。這個系統(tǒng)包含89個
18、磁帶驅(qū)動器,8個磁帶庫(Sun StorageTek 9310 Powerhorns)和15個IBM AIX服務器。每個系統(tǒng)中包括5個數(shù)據(jù)備份服務器(Mover Server)和一個核心服務器,有60個磁盤處理運行操作系統(tǒng)之外,同時也作為備份/恢復數(shù)據(jù)過程中磁帶庫的數(shù)據(jù)cache。事實上,大部分存儲系統(tǒng)提供商都有自己的備份系統(tǒng)利用自己設備的特性提高備份效率,減低備份管理難度,并提供一整套數(shù)據(jù)保護方案。例如CA公司的BrightStor ARCserve Backup集合了重復數(shù)據(jù)刪除、虛擬化、存儲資源操作、集中管理、災難恢復、加密、壓縮等功能到備份系統(tǒng)之中。還有EMC的Networker,IB
19、M的Aggregate備份和恢復系統(tǒng),Symantec的Netbackup等系統(tǒng)都提供了整體的備份方案。Kabooza Kabooza, 2009 #219在2008年12月24日和2009年1月6日之間調(diào)查了全球129個國家4257個PC用戶,發(fā)現(xiàn)82%的PC用戶不進行日常備份,而66%的用戶發(fā)生過數(shù)據(jù)丟失。因此,無論對于企業(yè)用戶還是個人用戶而言,備份數(shù)據(jù)都是一種良好的習慣。正是由于備份是一種重要的數(shù)據(jù)保護方法,而且備份的對象和軟硬件平臺也千差萬別,因此當前也存在各種各樣的備份軟件。下表列出了當前開源的備份軟件及其支持的平臺。表 9.1 無表題PackageLicenseWindowsMac
20、 OS XLinuxGUIFile sizeCurrent versionAMANDABSDYes?YesNo34 mb2.6.1p1Areca BackupGPL v2.0YesYesYesYes4.7 mb7.1.3BackupPCGPL v2.0YesYesYesYesBaculaGPL v2.0YesYesYesYesCobian Backup 8MPL v1.1YesNoNoYes02cpioGNUNoNoYesNoDirSync ProGPLYesYesYesYesDARGNU GPL 3YesYesYesNodumpGNUNoNoYesNoduplicityGPLY
21、esYesYesNoFlyBackGPLNoNoYesYesMondoGPLNoNoYesYesrsyncGPLNoYesYes?tarGPLNoNoYes?TimeVaultLGPLNoNoYesYesVenti?NoNoYesNoZmanda Recovery ManagerGPLYesNoYesNo9.4 典型網(wǎng)絡備份系統(tǒng)的設計9.4.1 網(wǎng)絡備份系統(tǒng)的結(jié)構(gòu)與業(yè)務邏輯網(wǎng)絡備份系統(tǒng)是基于網(wǎng)絡環(huán)境下的數(shù)據(jù)備份和恢復系統(tǒng)。一方面可以很方便地將源端系統(tǒng)的數(shù)據(jù)按照客戶特定的需要安全地備份到網(wǎng)絡存儲環(huán)境下的某個資源節(jié)點上;另一方面可以按照用戶的需要(例如源系統(tǒng)數(shù)據(jù)出現(xiàn)錯誤、損壞時),方便、安全、完整
22、地將數(shù)據(jù)恢復到源端系統(tǒng)或用戶指定的目的地,這樣可以保證用戶的數(shù)據(jù)安全性和可用性。整個系統(tǒng)的工作環(huán)境是由多個邏輯上的存儲節(jié)點通過網(wǎng)絡連接構(gòu)成的網(wǎng)絡存儲系統(tǒng),在此系統(tǒng)內(nèi)由備份管理服務器統(tǒng)一進行資源、備份和恢復的管理。在基于存儲網(wǎng)絡的備份系統(tǒng)中用戶對備份管理服務器提出數(shù)據(jù)備份或數(shù)據(jù)恢復的請求,備份管理服務器自動完成請求并反饋完成信息給用戶,系統(tǒng)在執(zhí)行備份和恢復任務的同時完成跟蹤、記錄和審計等工作。1. 系統(tǒng)的總體架構(gòu)由于備份系統(tǒng)是基于網(wǎng)絡存儲的,因此其基本通訊的外部環(huán)境依托于TCP/IP網(wǎng)絡。我們系統(tǒng)中的各種代理程序和服務器程序都是基于windows平臺,數(shù)據(jù)庫是基于Microsoft的access
23、及其ODBC接口協(xié)議,以便跨平臺的移植。在備份系統(tǒng)中,管理器不直接控制存儲介質(zhì),存儲介質(zhì)由相應存儲資源代理所在的主機操作系統(tǒng)進行管理,備份系統(tǒng)僅僅利用操作系統(tǒng)提供的存儲方式進行最終的存儲。圖 9.4基于存儲網(wǎng)絡的備份系統(tǒng)的總體架構(gòu)由圖 9.4可以看出整個系統(tǒng)主要由三個部分構(gòu)成:一個是功能界面,即由用戶友好的界面提供各種功能,屏蔽內(nèi)部邏輯流程;第二個是應用邏輯,主要實現(xiàn)備份管理器的調(diào)度,備份引擎,用戶代理,備份源代理,資源代理以及資源目的代理等功能;第三是存儲模式,也就是對邏輯數(shù)據(jù)和備份對象數(shù)據(jù)進行存儲。其中邏輯數(shù)據(jù)是本系統(tǒng)運行過程中產(chǎn)生的數(shù)據(jù),它主要存放在備份管理器端的數(shù)據(jù)庫中,體現(xiàn)集中管理的
24、特點;備份對象數(shù)據(jù)是指備份系統(tǒng)所要備份/恢復的數(shù)據(jù),它們放在存儲資源端,存放的方式由邏輯數(shù)據(jù)記錄和保存,體現(xiàn)存儲介質(zhì)的特點。2. 軟件體系結(jié)構(gòu)圖 9.5為網(wǎng)絡備份系統(tǒng)的軟件系統(tǒng)結(jié)構(gòu)圖。從圖中可以看出網(wǎng)絡備份系統(tǒng)在邏輯上分為五個子系統(tǒng),各個子系統(tǒng)是通過TCP/IP網(wǎng)絡連接起來的。五個子系統(tǒng)分別如下:備份管理器,源備份代理程序,備份目的代理程序,存儲資源代理程序,以及備份客戶端程序。網(wǎng)絡備份系統(tǒng)的核心是備份管理器,它負責在各個代理程序和客戶端程序之間進行交互和通訊,因此針對每個代理程序和客戶程序,備份管理器也具有相應的子模塊與之對應,進行通訊和處理。如圖 9.5所示,備份管理器又包括備份引擎,任務
25、調(diào)度模塊,審計信息處理模塊,用戶處理模塊,存儲資源處理模塊,以及數(shù)據(jù)庫的各種接口。在此基礎上,備份管理器通過核心的全局數(shù)據(jù)把各個子模塊聯(lián)系起來。備份系統(tǒng)中產(chǎn)生的邏輯數(shù)據(jù)由備份數(shù)據(jù)庫統(tǒng)一進行存儲。備份管理器在邏輯上提供備份用戶的日常管理,如創(chuàng)建、刪除、停用/啟用、改名、修改密碼等;備份策略的定義、分配;系統(tǒng)狀態(tài)的監(jiān)控;資源的添加、刪除、分配;各種任務的查詢、暫停、取消;以及審計信息的管理,包括查看和刪除。備份客戶端程序主要完成普通用戶的備份/恢復功能,如備份任務的定義和提交;恢復任務的定義和提交;任務狀態(tài)查詢、審計信息的查詢和刪除。圖 9.5備份系統(tǒng)的軟件體系結(jié)構(gòu)備份/恢復引擎主要是具體執(zhí)行一個
26、備份/恢復任務。存儲資源和用戶管理模塊主要是為備份工作進行前期準備。而備份/恢復任務提交主要把用戶的備份任務用統(tǒng)一的格式進行歸檔,交給備份任務管理器,由備份/恢復引擎根據(jù)備份任務具體需求完成備份工作。具體實現(xiàn)時,存儲資源代理、恢復源代理和備份目的代理程序集成為一個程序,同時駐留在備份服務器(直接存取存儲介質(zhì)的主機);而備份客戶端程序,恢復目的代理,備份源代理集成為一個程序,安裝在客戶機上。網(wǎng)絡備份系統(tǒng)在設計時沒有采用普通的C/S模式,也就是備份服務器和存儲介質(zhì)在物理上同一臺主機上的方式。其采用的方案是實現(xiàn)C/S/S方式,也就是client,manager server,storage方式,這樣
27、真正體現(xiàn)了網(wǎng)絡存儲的特點,使得備份系統(tǒng)具有更好的可用性,也更利于擴展。 3. 業(yè)務邏輯圖9.6是網(wǎng)絡備份系統(tǒng)的業(yè)務邏輯流程圖。它表示網(wǎng)絡備份系統(tǒng)的基本業(yè)務流程。備份管理器分別和存儲資源代理、備份客戶和備份源代理進行交互處理,通過核心的數(shù)據(jù)庫把各個模塊聯(lián)系起來,構(gòu)成統(tǒng)一的網(wǎng)絡備份系統(tǒng)。圖9.6業(yè)務邏輯流程注:Error! Reference source not found.中1,2,3,4,5,6表示備份客戶提交備份任務的過程以及備份任務的執(zhí)行過程;恢復任務的提交和執(zhí)行與備份相同;(1),(2)表示存儲資源加入的過程。備份管理器的核心工作是接受用戶的備份請求,在適當?shù)臅r候創(chuàng)建備份引擎線程,啟動
28、備份過程,并將備份過程中的審計信息保存到備份數(shù)據(jù)庫中。備份過程由備份引擎啟動,又分為備份源和備份目的兩個部分。備份源是需要進行備份的客戶機,備份目的是要把數(shù)據(jù)備份到資源節(jié)點,它要提供足夠的空間存放備份數(shù)據(jù)。數(shù)據(jù)的恢復過程是備份過程的逆過程。4. 備份過程分析圖9.7備份流程圖9.7是一次備份過程的流程圖,它簡單描述了一次備份過程經(jīng)過各個模塊、子系統(tǒng)的步驟。當一個備份任務滿足條件時,備份管理器的備份任務調(diào)度線程就創(chuàng)建備份引擎線程,由此備份引擎線程負責備份任務的整個備份過程;備份引擎首先連接備份目的代理,連接建立后,就將備份任務單發(fā)給備份目的代理,備份目的代理根據(jù)任務單創(chuàng)建備份目的任務節(jié)點,并創(chuàng)建
29、備份目的引擎響應線程;然后,備份引擎連接備份源代理,連接建立后,將同樣的備份任務單發(fā)給備份源代理,備份源代理根據(jù)任務單創(chuàng)建備份源的任務節(jié)點,并創(chuàng)建備份源引擎響應線程和備份源的任務處理線程;在備份源與備份目的都接到備份表單后,備份源連接備份目的命令端口;備份源與目的端的連接建立后,就將任務ID發(fā)給備份目的代理,備份目的代理根據(jù)接收的任務ID創(chuàng)建備份目的任務處理線程,并將此線程同對應的備份目的任務節(jié)點聯(lián)系起來;然后,備份源連接備份目的數(shù)據(jù)端口,數(shù)據(jù)連接建立后,備份源代理就循環(huán)將備份數(shù)據(jù)發(fā)給備份目的代理,同時將備份的審計信息發(fā)給備份引擎,由備份引擎寫入數(shù)據(jù)庫中;最后,備份完成后,各個工作線程釋放使用
30、的資源,主動退出線程。9.4.2 網(wǎng)絡備份系統(tǒng)的軟件設計1. 備份服務器的詳細設計與實現(xiàn)備份管理器是整個網(wǎng)絡備份系統(tǒng)的核心模塊,由以下幾個模塊組成:服務器管理模塊、備份用戶代理模塊、核心數(shù)據(jù)結(jié)構(gòu)維護與智能任務調(diào)度模塊、備份引擎模塊、恢復引擎模塊、備份數(shù)據(jù)庫模塊。其中備份服務器智能任務調(diào)度、備份恢復引擎和備份服務器管理模塊是備份服務器的主要功能模塊,以下是這幾個模塊的詳細設計和實現(xiàn)。1)備份服務器智能任務調(diào)度模塊智能任務調(diào)度模塊負責整個備份服務器程序的正常運轉(zhuǎn),當一個客戶通過客戶端程序登錄服務器以后,本模塊功能將該用戶信息記錄,加入登錄用戶隊列。當該用戶提交一個備份/恢復任務的時候,智能任務調(diào)度
31、模塊首先檢查提交的任務是否可以進行備份/恢復,如果是立即備份/恢復則調(diào)用備份/恢復引擎模塊處理程序,否則寫入數(shù)據(jù)庫中的備份/恢復任務表單。圖9.8 智能任務調(diào)度模塊內(nèi)部流程圖下面是定義的正在運行的備份任務隊列、恢復任務隊列和已登錄用戶隊列的數(shù)據(jù)結(jié)構(gòu):typedef list<Backup_Running_Table*> Backup_TableLIST;typedef list<Restore_Running_Table*> Restore_TableLIST;typedef list<Login_Customer_Table*>Login_Customer
32、List ; 通過在程序中設置一個定時器,定時喚醒任務調(diào)度模塊,任務調(diào)度首先檢查數(shù)據(jù)庫的備份/恢復任務預定執(zhí)行時間是否來到,如果到達預定執(zhí)行時間,任務調(diào)度模塊將備份/恢復任務從數(shù)據(jù)庫中取出,加入任務運轉(zhuǎn)隊列中,同時修改任務的狀態(tài)為正在運行。然后調(diào)度備份/恢復引擎模塊,開始執(zhí)行備份/恢復數(shù)據(jù)工作。然后任務調(diào)度模塊遍歷運行隊列,檢查是否有運行中的任務已經(jīng)執(zhí)行完成,如果發(fā)現(xiàn)有執(zhí)行完成的任務,將它們從隊列中取出,改變它們的狀態(tài)為已經(jīng)完成,寫入數(shù)據(jù)庫。2)備份服務器備份/恢復引擎模塊備份引擎模塊和恢復引擎模塊是兩個對稱過程的實現(xiàn),它們的實現(xiàn)是類似的,這里具體討論備份引擎模塊的設計實現(xiàn)。圖9.9備份過程程
33、序依賴圖備份引擎模塊的功能是在一個備份/恢復任務需要執(zhí)行時,智能任務調(diào)度模塊啟動一個新的備份/恢復線程來協(xié)調(diào)備份源代理程序和備份目的代理程序?qū)崿F(xiàn)備份任務的完成。同時,備份引擎還負責將備份/恢復過程中的審計信息存入數(shù)據(jù)庫。所以備份引擎的主要功能是和備份源代理程序已經(jīng)備份目的代理程序通訊,實現(xiàn)備份過程中的數(shù)據(jù)和信息交互。圖9.9是這三個程序模塊的依賴關(guān)系圖:第一步,備份引擎確認數(shù)據(jù)目的端代理響應;第二步,備份引擎確認源端代理響應;第三步,備份引擎發(fā)送備份請求單到源代理;第四步,源代理向目的端代理發(fā)起備份請求,開始備份;第五步,源代理向備份引擎發(fā)送備份過程中的審計信息。實際上這是一個三方通信協(xié)調(diào)工作
34、的過程,為了能夠?qū)崿F(xiàn)備份過程中間的同步控制,將三方做了等級劃分,備份引擎處于最高等級,備份源代理處于中間等級,備份目的代理處于最低等級。在實際執(zhí)行備份任務時,所有的控制命令由最高層的備份引擎發(fā)出,由備份源代理接收處理,如果是目的端代理需要的命令,則由源代理轉(zhuǎn)發(fā)給目的端代理。同樣,報告審計信息時,先由目的端代理報告?zhèn)浞菰创?,處理后,再由源代理提交給備份引擎。通過這樣的方式,簡化了網(wǎng)絡三方通信,解決了協(xié)調(diào)一致難以控制的問題。備份引擎線程類CBackupEngineThread使用SOCKET編程來實現(xiàn)網(wǎng)絡通信。由 CAsyncSocket類派生兩個CEngineSrcSocket、CEngine
35、DestSocket類,在備份引擎線程中定義的CEngineSrcSocket、CEngineDestSocket類型的兩個成員變量分別負責和備份源代理、備份目的代理通信。圖9.10備份過程流程圖3)備份服務器管理模塊服務器管理模塊主要是提供給管理員對整個網(wǎng)絡備份系統(tǒng)進行管理的功能。它負責完成的任務是:用戶管理、資源管理、任務查詢和審計查詢。用戶管理能夠查詢用戶的基本信息、增加新用戶、更改用戶信息和給用戶分配資源。資源管理能夠?qū)Y源信息進行查詢、添加新的資源。任務查詢能夠查詢所有的備份任務和恢復任務,并且可以根據(jù)任務的不同狀態(tài)分類查詢。針對運行中的備份和恢復任務,提供了暫停任務運行和恢復任務運
36、行的功能。審計查詢是查詢備份軟件系統(tǒng)運行中產(chǎn)生的所有審計信息,也可以根據(jù)用戶名或者任務ID號進行分類查詢。2. 網(wǎng)絡備份客戶端的設計客戶端程序主要完成用戶信息的提交與處理、用戶備份任務和恢復任務的查詢以及客戶備份請求和恢復請求的提交,為備份管理器提交請求表單以及存儲資源和審計信息的管理與查詢。1)通訊機制網(wǎng)絡備份客戶端采用的通訊機制是對于每一個客戶使用一個連接,將命令和數(shù)據(jù)包合并成一個結(jié)構(gòu),數(shù)據(jù)包部分是一個聯(lián)合結(jié)構(gòu),不同的命令對應于不同的數(shù)據(jù)包,如結(jié)構(gòu)PACKET所示。這樣程序?qū)崿F(xiàn)方便,不論客戶的請求是查詢還是提交任務,客戶端與服務器之間的通訊始終是同樣大小的數(shù)據(jù)包。而且,由于客戶端主要是提交
37、備份和恢復表單或進行查詢工作,數(shù)據(jù)量都比較小,所以采用一個結(jié)構(gòu)的方式,雖然會浪費一些空間,但是可以最大限度的利用網(wǎng)絡帶寬,因此效率也比較高。另外,網(wǎng)絡傳輸是基于可靠的TCP協(xié)議的,它的正確性將由TCP協(xié)議保證,一旦網(wǎng)絡發(fā)生錯誤,服務器就會斷開連接,服務器端的用戶處理線程主動退出。用戶可以重新連接服務器。typedef struct UINT master_id; /命令主IDUINT sub_id; /命令子IDunion _recv_packetCUSTOMER_TABLE user_p; /客戶表單RESOURCE_TABLE res_p; /資源表單BACKUP_TASK_TABLE b
38、ack_p; /備份任務表單RESTORE_TASK_TABLE restore_p; /恢復任務表單AUDIT_TABLE audit_p; /審計表單recv_packet;PACKET;2)備份客戶端的界面設計方案備份與恢復向?qū)г趥浞菹驅(qū)е?,首先由用戶選擇備份源;接著根據(jù)用戶選定的文件和目錄,動態(tài)地生成相應的文件對話框供用戶選擇;然后調(diào)用資源查詢,讓用戶從資源列表中選擇備份目的端;最后讓用戶選擇備份的開始時間和備份策略,由客戶端程序生成備份的申請表單,發(fā)送到服務器端,啟動備份引擎調(diào)用備份源代理進行數(shù)據(jù)的備份。在恢復向?qū)е?,首先由用戶選擇恢復模式;接著讓用戶選擇恢復文件;然后根據(jù)相應的備份
39、表單生成數(shù)據(jù)窗口;最后由備份管理器啟動恢復引擎,調(diào)用恢復源代理恢復數(shù)據(jù)。文件夾式樣的標簽控制備份客戶除了提交備份和恢復任務以外,還要對相應的任務以及資源進行大量的查詢,備份客戶端在菜單欄和左側(cè)的樹形視圖里都提供了相應的選項以供用戶選擇。一次查詢對應一個用戶視圖。由于整個程序在運行過程中會有多個視圖存在,所以客戶端程序在設計時選擇了多文檔視圖的方式。為了用戶在多視圖的切換中能夠有最大的方便,我們選擇了對每個視圖加載一個文件夾式樣的標簽控制,使得用戶獲得最大程度的方便快捷。審計信息的維護與資源和任務的查詢類似,用戶不能越權(quán)訪問,只能查詢與自己任務相關(guān)的審計信息。當用戶要查詢審計信息時,客戶端首先對
40、服務器提出備份完成任務和恢復完成任務的查詢,服務器將與用戶相關(guān)的信息返回后,用戶在所有自己的任務中進行選擇,選擇要查詢的審計信息。如果用戶備份或恢復的只是一個文件,對應的審計信息將只有一天,但是如果用戶備份的是目錄,那么審計信息會很多??紤]到大量的審計信息會使得網(wǎng)絡性能下降,所以只有在用戶第一次取該任務的審計信息時,是從數(shù)據(jù)庫中取得,然后客戶端程序會將一次任務的審計信息存成一個文件,下次用戶再次需要查看時,可以直接從客戶端取得。任務運行態(tài)的改變用戶在查看所提交的任務時,可以任意暫停和繼續(xù)任務,這種任務狀態(tài)的改變首先是由客戶端發(fā)起的,提交服務器端的用戶處理模塊,然后通過運行時的備份隊列來改變?nèi)蝿?/p>
41、狀態(tài),備份引擎,給備份源代理。 3. 用戶處理的設計與實現(xiàn)服務器端程序主要接收用戶處理程序客戶端的用戶請求,根據(jù)用戶的要求進行相應的處理,然后提交備份管理器進行中心調(diào)度工作或提交給數(shù)據(jù)庫寫入數(shù)據(jù)庫備份相關(guān)的核心數(shù)據(jù)結(jié)構(gòu)。1)C/S建立連接過程每當服務器接受客戶端的一次請求,都要通過相似的流程,如圖9.11所示為用戶提交一次備份任務的工作流程。如果用戶提交恢復請求,則對資源節(jié)點進行查詢,以便確定目的端的工作狀況,從而換為查詢已完成的備份任務,因為恢復表單是根據(jù)備份表單生成的。2)用戶運行態(tài)的監(jiān)控由于用戶是否登錄的狀態(tài)是屬于運行時狀態(tài),而本備份系統(tǒng)在設計數(shù)據(jù)庫中的表單時都為靜態(tài),因此在用戶表單中只
42、有用戶停用與啟用的狀態(tài)表項。為了使得管理員可以監(jiān)控用戶的登錄狀態(tài),在備份管理器中維護了一個用戶隊列,這個用戶隊列的每一個節(jié)點就是一個已登錄的用戶,節(jié)點的插入與刪除都是在用戶處理模塊中實現(xiàn)的。一旦用戶通過備份客戶端登錄服務器,就要經(jīng)服務器的用戶處理模塊來進行口令的驗證,此時,用戶處理模塊就將此用戶的信息作為一個節(jié)點插入到用戶隊列中;當用戶退出客戶端程序或退出登錄時,都會給服務器發(fā)出“QUIT”的命令,此時,用戶處理模塊就將此用戶的信息從用戶隊列中刪除。這樣,備份管理器通過查詢運行時的用戶隊列,即可以實現(xiàn)用戶狀態(tài)的監(jiān)控。3)計劃任務的實現(xiàn)如果用戶提交的備份任務是即時任務,系統(tǒng)就會馬上啟動備份引擎,
43、調(diào)度備份源代理與目的代理,進行一次備份任務,具體流程如圖9.11所示。如果用戶提交的備份任務是計劃任務,用戶處理將其插入數(shù)據(jù)庫中,就完成任務。然后由備份調(diào)度根據(jù)定時器每隔一定時間取出備份表單進行判斷,如果到了備份的開始時間,就啟動備份引擎,調(diào)度備份源代理與目的代理,進行備份任務。如果是周期性備份,由調(diào)度根據(jù)備份的頻率來調(diào)整備份的下一次開始時間,并生成新的備份表單,插入數(shù)據(jù)庫中,等待下一次的備份。圖9.11提交備份任務的工作流程4)客戶端的認證隨著網(wǎng)絡技術(shù)的發(fā)展和廣泛應用,以及網(wǎng)絡的開放性、共享性、互聯(lián)程度的擴大,網(wǎng)絡與信息系統(tǒng)的安全與保密問題顯得越來越重要,受到越來越多的關(guān)注。網(wǎng)絡備份系統(tǒng)作為
44、與網(wǎng)絡直接連接、提供數(shù)據(jù)備份服務的系統(tǒng),不僅要供局域網(wǎng)(Intranet用戶)訪問,而且更多的要供遠程用戶(Internet用戶)訪問,這對其安全性提出了更高的要求。在設計時我們考慮了其兩個層次的安全性的問題。未授權(quán)用戶或被管理員停用的用戶不能訪問服務器,普通用戶只能訪問權(quán)限范圍內(nèi)的數(shù)據(jù);防止用戶認證信息(用戶名、口令等)被非法攔截、竊聽。第一個層次的安全性問題一般通過在服務器上創(chuàng)建用戶以及改變用戶屬性來解決。管理員根據(jù)用戶請求,通過管理界面在服務器上創(chuàng)建用戶賬號,同時設置口令以及其他相關(guān)信息。用戶訪問服務器時需要在客戶端輸入用戶名和口令,被服務器端認證后,才能訪問相應的數(shù)據(jù)。如果用戶被管理員
45、停用后,是沒有權(quán)限訪問服務器以及進行備份和恢復工作的,必須要向管理員申請啟用用戶帳號以后,才可以正常登錄工作。圖9.12 SSL協(xié)議層次結(jié)構(gòu)用戶認證的過程需要在客戶端和服務器之間通過網(wǎng)絡傳送用戶名和口令,這里存在安全隱患,也就是第二個層次的安全問題。目前的光盤鏡像服務器一般使用明文傳送用戶認證信息,因此非法用戶可以通過攔截TCP數(shù)據(jù)包很容易地盜竊用戶名和口令,或者對數(shù)據(jù)包進行修改從而冒名頂替其他用戶。特別是如果管理員口令被盜,將對服務器的安全構(gòu)成較大的威脅。因此,有必要提供可靠的加密和安全機制。采用安全套接層協(xié)議SSL(Secure Sockets Layer)可以解決這個問題,服務器和客戶端
46、之間的用戶認證信息都通過HTTPS協(xié)議采用密文傳送。4. 備份源代理的設計方案備份源代理主要是完成數(shù)據(jù)的收集,與備份目的的數(shù)據(jù)傳輸,以及與備份引擎的通訊。在這里著重介紹備份源的設計,以及備份源與備份引擎之間、與備份目的之間的通訊協(xié)議。1)備份源的模塊分解圖9.13備份源模塊分解2)源與目的端的數(shù)據(jù)傳輸結(jié)構(gòu)備份源與目的之間的文件是以塊形式傳送,塊帶有自己的頭字節(jié)。頭字節(jié)包括計數(shù)域和描述代碼。計數(shù)域說明了數(shù)據(jù)塊的字節(jié)數(shù),描述代碼定義了EOF。頭字節(jié)的結(jié)構(gòu)如表 9.2所示:表 9.2頭字節(jié)結(jié)構(gòu)描述子 8位字節(jié)計數(shù) 16位描述代碼由在描述字節(jié)中的位標記說明,表 9.3是已經(jīng)指定的代碼及其意義。表 9.
47、3 描述代碼代碼意義128數(shù)據(jù)塊結(jié)束64數(shù)據(jù)塊傳輸終止3)備份源同備份引擎的通訊協(xié)議表 9.4 備份源同備份引擎發(fā)送和接收的消息編碼及其含義消息編號描述字段說明000099備份命令:開始、暫停、繼續(xù)、停止COMMAND_MSG的范圍100199通訊信息:正?;蜻B接錯誤REPORT_MSG的范圍200299備份頭信息AUDIT_HEAD_MSG的范圍300399備份文件信息AUDIT_BODY_MSG的范圍400499備份結(jié)束信息AUDIT_END_MSG的范圍9.4.3 網(wǎng)絡備份系統(tǒng)性能測試在網(wǎng)絡備份系統(tǒng)軟件完成以后,我們在100M局域網(wǎng)的環(huán)境中對網(wǎng)絡備份系統(tǒng)進行了性能測試。測試環(huán)境是:客戶端:Windows2000,CPU賽揚1.7G,內(nèi)存256M,硬盤邁拓6Y060L0(60G/5400rpm),網(wǎng)卡RealTek8139。服務器端:Windows2000,CPU賽揚1.7G,內(nèi)存256M,硬盤邁拓6Y060L0(60G/5400rpm),網(wǎng)卡RealTek
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年四川省南充市公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 2024年廣東省佛山市公開招聘警務輔助人員輔警筆試自考題2卷含答案
- 2022年四川省廣元市公開招聘警務輔助人員輔警筆試自考題2卷含答案
- 2024年云南省大理自治州公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 集體三等功事跡報告
- 學校圣誕節(jié)晚會的主持開場白!中文英文對照版
- 《創(chuàng)建框架網(wǎng)》課件
- 《膈疝放射診斷》課件
- 2025年生命探測儀項目申請報告模板
- 2025年特種粉末及粉末冶金制品項目規(guī)劃申請報告模范
- 中建三局住宅工程精益建造實施指南
- 分布式光伏發(fā)電項目并網(wǎng)驗收意見單
- 網(wǎng)站隱私政策模板
- YY∕T 1831-2021 梅毒螺旋體抗體檢測試劑盒(免疫層析法)
- 消弧產(chǎn)品規(guī)格實用標準化規(guī)定
- 裝飾裝修工程施工合理化建議和降低成本措施提要:完整
- 第十四章35kV變電站保護整定值計算實例
- 液態(tài)模鍛工藝介紹
- 水泵水輪機結(jié)構(gòu)介紹
- 井式爐課程設計說明書
- 拼音四線三格加田字格模板(A4打印版可編輯打字)
評論
0/150
提交評論