亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種用于備份服務(wù)的數(shù)據(jù)組織方法

文檔序號:6601093閱讀:275來源:國知局
專利名稱:一種用于備份服務(wù)的數(shù)據(jù)組織方法
技術(shù)領(lǐng)域
本發(fā)明屬于計算機數(shù)據(jù)存儲和備份方法,具體涉及一種備份服務(wù)的數(shù)據(jù)組織方 法,該方法實現(xiàn)了塊級重復(fù)數(shù)據(jù)的刪除。
背景技術(shù)
隨著信息化社會的飛速發(fā)展,從人們的日常生活到企業(yè)的業(yè)務(wù)運營,都被日益滲 透的信息系統(tǒng)所包圍,對其依賴性也越來越大。尤其在金融、通訊、交通和保險等行業(yè)中,一 旦關(guān)鍵數(shù)據(jù)丟失或損壞,會給個人和企業(yè)帶來不可估量的損失。這里所說的備份服務(wù)本質(zhì)上是一個提供一定容災(zāi)功能的備份恢復(fù)軟件系統(tǒng),能夠 為個人和企業(yè)用戶提供完善的數(shù)據(jù)備份、恢復(fù)及相關(guān)管理任務(wù),而且能夠根據(jù)自身實際需 求定制各種備份策略。同時這里的備份服務(wù)也是一種軟件模式,為企業(yè)搭建信息化所需要 的所有網(wǎng)絡(luò)基礎(chǔ)設(shè)施及軟件、硬件運作平臺,并負責(zé)所有前期的實施、后期的維護等一系列 服務(wù),企業(yè)無需購買軟硬件、建設(shè)機房、招聘IT人員,即可通過互聯(lián)網(wǎng)使用信息系統(tǒng)。就像 打開自來水龍頭就能用水一樣,企業(yè)根據(jù)實際需要租賃軟件服務(wù)。數(shù)據(jù)備份與恢復(fù)是保障信息安全的重要措施。數(shù)據(jù)重要性的不斷凸現(xiàn)要求存儲系 統(tǒng)上的數(shù)據(jù)能得到有效而全面的保護。隨著高速網(wǎng)絡(luò)及通信技術(shù)、海量存儲技術(shù)等新技術(shù) 的出現(xiàn)和發(fā)展,基礎(chǔ)存儲資源相比以往有了天翻地覆的變化。日益增多的各種信息系統(tǒng)的 應(yīng)用,也使有保護價值的數(shù)據(jù)量呈幾何級數(shù)上升,這些都為數(shù)據(jù)備份與恢復(fù)軟件的開發(fā)與 相關(guān)技術(shù)研究提出了更高的要求。用戶使用備份服務(wù)時對存儲空間及數(shù)據(jù)方面的需求通常包括能夠根據(jù)需求增加 或減少對存儲空間的使用量;能夠無障礙使用既有空間,即只要有剩余空間而且網(wǎng)絡(luò)可達, 數(shù)據(jù)備份任務(wù)都能夠正確執(zhí)行;能夠隨時恢復(fù)已備份的數(shù)據(jù)。為了滿足這些需求,要求用戶 空間和數(shù)據(jù)具備一定的邏輯獨立性,故需要研究用戶空間管理方式和備份數(shù)據(jù)組織方法。 另外,還需要設(shè)計出高效的空間分配、回收機制,在充分挖掘重復(fù)數(shù)據(jù)存儲空間的耦合性的 同時,保持用戶數(shù)據(jù)的邏輯獨立性,并實現(xiàn)高效的數(shù)據(jù)查找和訪問。在一般的備份軟件架構(gòu)中,存儲服務(wù)器是經(jīng)過數(shù)據(jù)備份軟件的管理控制臺認證過 的物理介質(zhì),它可以是服務(wù)器上的一個硬盤空間,服務(wù)器外掛的存儲設(shè)備,或者網(wǎng)絡(luò)上的一 個磁盤映射。通過管理控制臺可以配置多個存儲服務(wù)器,在備份服務(wù)器的統(tǒng)一管理下,備份 客戶端將數(shù)據(jù)備份到相應(yīng)的存儲服務(wù)器上。在之前的備份軟件存儲服務(wù)器端的設(shè)計中,大多采用文件級的備份方法。文件級 的備份,即備份軟件只能感知到文件這一層,將源磁盤上所有的文件,備份到另一個目的介 質(zhì)上。所以文件級備份軟件,要么依靠操作系統(tǒng)提供的文件系統(tǒng)接口來備份文件,要么自身 具有文件系統(tǒng)的功能,可以識別文件系統(tǒng)元數(shù)據(jù)。簡言之,文件級備份軟件的機制就是將數(shù) 據(jù)以文件為單位讀出,然后再將讀出的文件存儲在另外一個介質(zhì)上。顯然這對于PB級大規(guī) 模存儲系統(tǒng)形成了性能瓶頸,由于存儲服務(wù)器端管理的數(shù)據(jù)單元就是文件,這不可避免的 造成大量重復(fù)數(shù)據(jù)的備份,給存儲服務(wù)器端的管理也帶來了很大的不方便,而利用塊級重復(fù)數(shù)據(jù)刪除技術(shù)進行數(shù)據(jù)備份能在很大程度上解決這些問題。另一方面,在之前的備份軟件中,存儲服務(wù)器端初始分配給用戶的可用存儲空間 容量往往是固定的,這樣大大降低了系統(tǒng)的可擴展性。實際應(yīng)用中,系統(tǒng)無法預(yù)料所面對的 各個用戶最終會使用多大存儲空間(當(dāng)然可能會根據(jù)用戶的權(quán)限和類型有一個最大可用 存儲容量限制),分配大了很可能會造成存儲空間浪費和利用率下降,分配小了可能會對用 戶的使用帶來很大的限制。最近EMC公司收購了 Avamar公司,這家公司獲專利的重復(fù)數(shù)據(jù)刪除和全局單實例 存儲技術(shù)可確保備份數(shù)據(jù)段在全局范圍內(nèi)僅存儲一次。這可以有效地將移動和恢復(fù)的數(shù)據(jù) 量縮減300倍,同時還可以實現(xiàn)每日完整備份和快速恢復(fù)。針對每個24KB數(shù)據(jù)段,Avamar 生成唯一的20字節(jié)ID標(biāo)識,使用SHA-I加密算法。該唯一 ID就是該數(shù)據(jù)段的指紋,于是 Avamar的軟件可以使用該唯一 ID來確定是否一個數(shù)據(jù)段此前曾被存儲過。但是SHA-I加 密算法計算復(fù)雜,對CPU的消耗很大。同時由于數(shù)據(jù)段過小,當(dāng)用戶備份數(shù)據(jù)量很大時消耗 的指紋空間也很大,同時還存在一定的可擴展性問題。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種用于備份服務(wù)的數(shù)據(jù)組織方法,該方法可以實現(xiàn)塊級 重復(fù)數(shù)據(jù)的刪除,能夠提高數(shù)據(jù)組織和管理效率。本發(fā)明提供一種用于備份服務(wù)的數(shù)據(jù)組織方法,該方法包括下述步驟(1)初始化元數(shù)據(jù)信息部分初始化,包括給元數(shù)據(jù)區(qū)的索引頭信息、數(shù)據(jù)索引信息、數(shù)據(jù)區(qū)元 數(shù)據(jù)信息賦初始值;在數(shù)據(jù)區(qū)預(yù)分配一個數(shù)據(jù)空間準(zhǔn)備接受用戶的備份請求;(2)接收用戶命令并判斷用戶命令類型判斷用戶命令類型,如果是備份操作,進入步驟(3),如果是恢復(fù)操作,則轉(zhuǎn)入步驟 (4),如果是刪除操作,則轉(zhuǎn)入步驟(5);(3)按照下述過程進行備份處理(3. 1)首先將用戶待備份的文件分塊,然后對數(shù)據(jù)分塊的內(nèi)容用MD5算法進行哈 希,得到一個唯一標(biāo)識數(shù)據(jù)分塊的指紋,數(shù)據(jù)分塊以指紋為索引存儲在存儲服務(wù)器端元數(shù) 據(jù)的索引頭和數(shù)據(jù)索引中;(3. 2)由備份客戶端向存儲服務(wù)器傳送數(shù)據(jù)分塊的指紋,存儲服務(wù)器端根據(jù)指紋 查詢該數(shù)據(jù)分塊是否存在;(3. 3)如果該指紋不存在,則備份客戶端傳送該數(shù)據(jù)分塊給存儲服務(wù)器,則該數(shù) 據(jù)分塊為新備份數(shù)據(jù)塊,在存儲服務(wù)器端動態(tài)分配存儲空間,并完成該新備份數(shù)據(jù)塊的寫
操作;如果存在,則只需更新存儲服務(wù)器端該數(shù)據(jù)分塊所對應(yīng)的索引信息,將其引用計數(shù)加 (3. 4)轉(zhuǎn)入步驟(2);(4)恢復(fù)時,由備份服務(wù)器查得待恢復(fù)文件包含的Hash列表,根據(jù)Hash列表訪問 存儲空間元數(shù)據(jù)信息來定位在相應(yīng)數(shù)據(jù)空間中的邏輯位置,然后依次從存儲服務(wù)器端讀待 恢復(fù)文件數(shù)據(jù)到內(nèi)存緩沖區(qū),然后通過套接字傳給備份客戶端,并合成所需文件集,再轉(zhuǎn)入步驟⑵;(5)按下述過程刪除已備份文件(5. 1)由備份系統(tǒng)軟件中備份服務(wù)器查得待刪除文件包含的Hash列表;(5.2)根據(jù)Hash值查找存儲服務(wù)器端的元數(shù)據(jù)區(qū)的索引頭和數(shù)據(jù)索引映射表,如 果入口參數(shù)Hash值不存在,則立刻返回,返回值為false ;(5. 3)否則將Hash值對應(yīng)的對象元數(shù)據(jù)的引用計數(shù)減1, 返回值為true ;(5. 4)再轉(zhuǎn)入步驟(2)?,F(xiàn)在企業(yè)數(shù)據(jù)不僅種類多增長快,而且是高度冗余的,有很多相同的文件或數(shù)據(jù) 儲存在系統(tǒng)內(nèi)和系統(tǒng)之間,編輯好的文件也同樣有大量的冗余,這些冗余存在于文件以前 的版本中。傳統(tǒng)的備份軟件將這些冗余數(shù)據(jù)一次又一次備份,放大了這種冗余?,F(xiàn)在比較 好的解決方法是采用重復(fù)數(shù)據(jù)刪除技術(shù)。重復(fù)數(shù)據(jù)刪除技術(shù)不但可以實現(xiàn)高壓縮率,釋放 存儲空間,也可以降低基于磁盤備份的成本,也降低了數(shù)據(jù)管理的成本。本發(fā)明是一種基于 塊級的重復(fù)數(shù)據(jù)刪除技術(shù)來實現(xiàn)存儲服務(wù)器端的數(shù)據(jù)組織及管理方法,能夠高效執(zhí)行與客 戶機之間的備份/恢復(fù)數(shù)據(jù)的傳輸,并按備份服務(wù)器的策略進行本地存儲空間管理與數(shù)據(jù) 組織。本發(fā)明在不影響主要用戶備份和恢復(fù)的前提下,可以實現(xiàn)全局的重復(fù)數(shù)據(jù)刪除,隨著 用戶數(shù)和備份數(shù)據(jù)量的增長,重復(fù)數(shù)據(jù)刪除的作用將越發(fā)明顯。能夠大大減少用戶備份所 需的數(shù)據(jù)量,節(jié)省備份時間、網(wǎng)絡(luò)帶寬和備份需要的存儲空間。


圖1為本發(fā)明方法所使用的存儲數(shù)據(jù)組織及數(shù)據(jù)項的定位過程圖;圖2為本發(fā)明方法的流程框圖;圖3為本發(fā)明中動態(tài)分配存儲空間的流程圖;圖4為本發(fā)明備份操作中的寫操作流程圖。
具體實施例方式下面通過借助實施實例更加詳細地說明本發(fā)明,但以下實施例僅是說明性的,本 發(fā)明的保護范圍并不受這些實施例的限制。備份服務(wù)系統(tǒng)基于三方架構(gòu),由備份服務(wù)器、存儲服務(wù)器、備份客戶端三方組成。 其中,備份客戶端負責(zé)接受用戶定制的數(shù)據(jù)備份策略、恢復(fù)請求或數(shù)據(jù)管理相關(guān)的其他請 求。備份服務(wù)器連接備份客戶端和存儲服務(wù)器,是整個數(shù)據(jù)備份軟件的控制中心。它負責(zé) 用戶權(quán)限控制、全局作業(yè)調(diào)度和全局存儲管理。備份客戶端發(fā)起備份/恢復(fù)作業(yè)時,由備份 服務(wù)器引導(dǎo)其與指定的存儲服務(wù)器建立連接并進入執(zhí)行環(huán)節(jié);另一方面,備份服務(wù)器將監(jiān) 控各存儲服務(wù)器的計算、傳輸和存儲壓力,并執(zhí)行負載均衡策略。用戶信息、存儲服務(wù)器狀 態(tài)及其他支撐備份服務(wù)器運行的基礎(chǔ)元數(shù)據(jù)擬采用數(shù)據(jù)庫進行存儲。存儲服務(wù)器負責(zé)執(zhí)行 與客戶機之間的備份/恢復(fù)數(shù)據(jù)的傳輸,并按備份服務(wù)器的策略進行本地存儲空間管理與 數(shù)據(jù)組織。以下為需要說明的本實例使用的4個數(shù)據(jù)結(jié)構(gòu)主記錄區(qū)、索引頭、數(shù)據(jù)索引和數(shù) 據(jù)區(qū),其結(jié)構(gòu)如圖1所示。主記錄區(qū)主要描述整個存儲空間的信息,它存放如下信息索引頭信息、數(shù)據(jù)索引信息、數(shù)據(jù)區(qū)元數(shù)據(jù)信息。索引頭是一個對象哈希表,用來實現(xiàn)對象ID(由數(shù)據(jù)內(nèi)容生成的160位的Hash值)到數(shù)據(jù)索引表的映射。這里的對象是存儲系統(tǒng)中數(shù)據(jù)存儲的基本單元,不同于作為傳 統(tǒng)存儲系統(tǒng)中基本組件的文件和塊,對象是應(yīng)用數(shù)據(jù)和定義存儲屬性(元數(shù)據(jù))的組合,其 中包含數(shù)據(jù)和其它足夠的信息允許數(shù)據(jù)自治和自我管理。它使用Hash值代表面向?qū)ο蟠?儲中的對象ID,以文件內(nèi)容作為存儲依據(jù),通過Hash值索引建立內(nèi)容與對象之間的映射關(guān) 系。因為Hash值在統(tǒng)計意義上是全局唯一的,所以具有全局唯一的命名空間,提高了系統(tǒng) 共享的可管理性。系統(tǒng)采用的是成熟的MD5算法,MD5Hash算法將任意長度的數(shù)據(jù)內(nèi)容變 換成一個128bit(16byte)的大整數(shù),即對象ID。數(shù)據(jù)索引是一個大小為N(N表示數(shù)據(jù)索引表中索引個數(shù),取值范圍為22° 23°) 的數(shù)組,數(shù)組中的每個元素是一個對象的元數(shù)據(jù)結(jié)構(gòu),元數(shù)據(jù)結(jié)構(gòu)中的信息有對象ID、對 象在數(shù)據(jù)區(qū)的起始偏移地址(I表示數(shù)據(jù)空間編號,J表示所在數(shù)據(jù)空間內(nèi)的邏輯數(shù)據(jù)塊編 號,K表示數(shù)據(jù)空間內(nèi)的邏輯數(shù)據(jù)塊內(nèi)的偏移地址)、對象所對應(yīng)數(shù)據(jù)大小、對象所對應(yīng)數(shù) 據(jù)內(nèi)容的副本個數(shù)、與該對象映射到對象哈希表中同一個位置的下一個對象在對象表中的 位置,這就把映射到對象哈希表中同一個位置的對象鏈接成一個鏈表。數(shù)據(jù)區(qū)用來存放對象的數(shù)據(jù),對象的數(shù)據(jù)包括對象ID、數(shù)據(jù)內(nèi)容長度和數(shù)據(jù)內(nèi) 容,為了便于存儲空間管理,將數(shù)據(jù)區(qū)分成若干個連續(xù)的數(shù)據(jù)空間(每一個數(shù)據(jù)空間用一 個單獨的數(shù)據(jù)文件來表示),每個數(shù)據(jù)空間由若干邏輯數(shù)據(jù)塊組成。數(shù)據(jù)分塊在備份服務(wù)系統(tǒng)中,執(zhí)行備份或者恢復(fù)操作時,都是將處理的數(shù)據(jù)按照 固定長度分塊,每一個分塊就是數(shù)據(jù)分塊。備份數(shù)據(jù)塊用戶利用備份客戶端備份指定的文件和文件夾時,備份客戶端首先 將這些要備份的數(shù)據(jù)按照固定長度分塊(實際備份服務(wù)軟件系統(tǒng)中分塊大小為4M),每一 個分塊就是備份數(shù)據(jù)塊邏輯數(shù)據(jù)塊在存儲服務(wù)器端,為了方便管理以及高效利用存儲服務(wù)器存儲空間, 將每個數(shù)據(jù)空間分成若干個子存儲單元,每個子存儲單元就是一個邏輯數(shù)據(jù)塊(實際備份 服務(wù)軟件系統(tǒng)中每個邏輯數(shù)據(jù)塊大小為1G)下面結(jié)合附圖進一步說明本實例的實現(xiàn)過程。如圖2示,本發(fā)明方法包括下述步驟(1)初始化通常存儲數(shù)據(jù)分為兩部分元數(shù)據(jù)區(qū)和數(shù)據(jù)區(qū)。用戶實際備份的數(shù)據(jù)存儲在數(shù)據(jù) 區(qū),而描述這些用戶數(shù)據(jù)的相關(guān)信息存儲在元數(shù)據(jù)區(qū)。開始初始化元數(shù)據(jù)區(qū),主要是給元數(shù) 據(jù)區(qū)的索引頭信息、數(shù)據(jù)索引信息、數(shù)據(jù)區(qū)元數(shù)據(jù)信息賦初始值。將索引頭即對象哈希表全 部置為0,表示全部可用,同時也將數(shù)據(jù)索引數(shù)組中的每個元素置為零,表示這個時候還沒 有任何數(shù)據(jù)寫入。并且在數(shù)據(jù)區(qū)預(yù)分配一個數(shù)據(jù)空間準(zhǔn)備接受用戶的備份請求。數(shù)據(jù)空間 總數(shù)定義為S,S取值最大不超過1000。數(shù)據(jù)區(qū)當(dāng)前已經(jīng)使用了的數(shù)據(jù)空間數(shù)是V,V < = S。每個數(shù)據(jù)空間預(yù)分配的邏輯數(shù)據(jù)塊(block)個數(shù)定義為P,P最大不超過10。每個數(shù)據(jù) 空間最大邏輯數(shù)據(jù)塊個數(shù)定義為W,W最大不超過1024。在我們目前備份服務(wù)軟件部署實 施中,每個數(shù)據(jù)空間由1024個邏輯數(shù)據(jù)塊組成,每個邏輯數(shù)據(jù)塊大小為1G,每個數(shù)據(jù)空間 最大為1T。
(2)接收用戶命令并判斷用戶命令類型判斷用戶命令類型,如果是備份操作,進入步驟(3),如果是恢復(fù)操作,則轉(zhuǎn)入步驟 (4),如果是刪除操作,則轉(zhuǎn)入步驟(5);(3)按照下述過程進行備份處理(3. 1)首先將用戶待備份的文件分塊(定義數(shù)據(jù)分塊大小為b,b取值大小為 1M--4M,實際該備份服務(wù)軟件部署時b取值為4M),然后對數(shù)據(jù)分塊的內(nèi)容用MD5算法進行 哈希,得到一個唯一標(biāo)識數(shù)據(jù)分塊的指紋,數(shù)據(jù)分塊以指紋為索引存儲在存儲服務(wù)器端元 數(shù)據(jù)的索引頭和數(shù)據(jù)索引中;(3. 2)由備份客戶端向存儲服務(wù)器傳送數(shù)據(jù)分塊的指紋,存儲服務(wù)器端根據(jù)指紋 查詢該數(shù)據(jù)分塊是否存在;(3. 3)如果該指紋不存在,則備份客戶端傳送該數(shù)據(jù)分塊給存儲服務(wù)器,在存儲服 務(wù)器端動態(tài)分配存儲空間,并完成該數(shù)據(jù)分塊的寫操作;如果存在,則無需傳送數(shù)據(jù),只需 更新存儲服務(wù)器端該數(shù)據(jù)分塊所對應(yīng)的索引信息,將引用計數(shù)加一。(3. 4)轉(zhuǎn)入步驟(2);上述步驟(3. 3)中,可以按照圖3所示的過程動態(tài)分配存儲空間,具體步驟如下(al)判斷在當(dāng)前數(shù)據(jù)空間的P個邏輯數(shù)據(jù)塊中是否有能夠滿足指定大小備份數(shù) 據(jù)塊的剩余可用空間,如果有,進入步驟(a5),否則,進入步驟(a2);(a2)判斷P < W是否成立,若成立進入步驟(a6),否則,進入步驟(a3);(a3)判斷在存儲服務(wù)器主記錄中的其它數(shù)據(jù)空間是否有能夠滿足指定大小的備 份數(shù)據(jù)塊的剩余可用空間,如果有,進入步驟(a5),否則,進入步驟(a4);(a4)判讀V < S是否成立,若成立,則在存儲服務(wù)器上增長一個數(shù)據(jù)空間,為新 的數(shù)據(jù)空間內(nèi)待寫入備份數(shù)據(jù)塊分配一個數(shù)據(jù)索引,然后轉(zhuǎn)入步驟(a8),否則,進入步驟 (a7);(a5)為剩余可用空間內(nèi)待寫入備份數(shù)據(jù)塊分配一個數(shù)據(jù)索弓丨,然后轉(zhuǎn)入步驟 (a8);(a6)在存儲服務(wù)器上為該數(shù)據(jù)空間增長一個備份數(shù)據(jù)塊大小的空間,再為該備份 數(shù)據(jù)塊分配一個數(shù)據(jù)索引,然后轉(zhuǎn)入步驟(a8);(a7)因為找不到有能夠滿足指定大小的備份數(shù)據(jù)塊的剩余可用空間,所以宣布動 態(tài)分配失敗;(a8)結(jié)束動態(tài)分配過程。還可以如圖4所示的過程完成寫操作,其步驟如下(bl)在存儲服務(wù)器端動態(tài)尋找可用存儲空間,查找是否有滿足條件的邏輯數(shù)據(jù) 塊;(b2)如果沒有可用邏輯數(shù)據(jù)塊則返回失?。?b3)如果有滿足新備份數(shù)據(jù)塊大小的可用存儲空間,就創(chuàng)建一個新數(shù)據(jù)索引,將新備份數(shù)據(jù)塊寫入相應(yīng)存儲服務(wù)器位置,然后將相應(yīng)索引頭和數(shù)據(jù)索引元數(shù)據(jù)寫入主記錄 區(qū)。(4)恢復(fù)時,由備份系統(tǒng)軟件中備份服務(wù)器查得待恢復(fù)文件包含的Hash列表,根 據(jù)Hash列表訪問存儲空間元數(shù)據(jù)信息來定位在相應(yīng)數(shù)據(jù)空間中的邏輯位置,然后依次從存儲服務(wù)器端讀待恢復(fù)文件數(shù)據(jù)到內(nèi)存緩沖區(qū),然后通過套接字傳給備份客戶端,并合成 所需文件集,再轉(zhuǎn)入步驟(2)。如圖2所示,根據(jù)Hash列表訪問存儲空間元數(shù)據(jù)信息來定位在相應(yīng)數(shù)據(jù)空間中的 邏輯位置的過程如下(4. 1)設(shè)m為預(yù)先設(shè)定的索引頭的位數(shù),由數(shù)據(jù)Hash值的前m位對索引頭進行索弓丨,索引頭的內(nèi)容構(gòu)成了數(shù)據(jù)索引號。通常,每個索引頭占兩個字節(jié),一共有2m個,m的取值范圍通常為20 30。(4. 2)通過索引頭對數(shù)據(jù)索引尋址。而數(shù)據(jù)索引則對一次操作的數(shù)據(jù)項進行尋址, 具體包括三部分內(nèi)容(4. 2. 1)通過數(shù)據(jù)索引的結(jié)構(gòu)體成員I (I為數(shù)據(jù)空間編號)找到具體的數(shù)據(jù)空間 號;(4. 2. 2)通過數(shù)據(jù)索引的結(jié)構(gòu)體成員J(J為數(shù)據(jù)空間內(nèi)的邏輯數(shù)據(jù)塊編號)找到 數(shù)據(jù)空間中的塊號;(4. 2. 4)通過數(shù)據(jù)索引的結(jié)構(gòu)體成員K(K為數(shù)據(jù)空間內(nèi)的邏輯數(shù)據(jù)塊內(nèi)的偏移地 址)找到數(shù)據(jù)項在邏輯數(shù)據(jù)塊中的偏移地址,相當(dāng)于三級尋址。由此可以定位數(shù)據(jù)項的數(shù) 據(jù)頭和數(shù)據(jù)實體。(4. 4)獲得上面三級邏輯數(shù)據(jù)塊地址信息,就可以定位到相應(yīng)的數(shù)據(jù)區(qū)讀取數(shù)據(jù)。(5)按下述過程刪除已備份文件(5. 1)由備份系統(tǒng)軟件中備份服務(wù)器查得待刪除備份文件包含的Hash列表;(5.2)根據(jù)Hash值查找存儲服務(wù)器端的元數(shù)據(jù)區(qū)的索引頭和數(shù)據(jù)索引映射表,如 果入口參數(shù)Hash值不存在,則立刻返回,返回值為false ;(5. 3)否則將Hash值對應(yīng)的對象元數(shù)據(jù)的引用計數(shù)減1,返回值為true ;(5. 4)再轉(zhuǎn)入步驟(2)。由于我們提供的是一種在線備份服務(wù),所以備份服務(wù)器和存儲服務(wù)器是作為守護 進程始終在后臺運行的,因此不存在結(jié)束情況,始終等待接收用戶的操作請求。而備份客戶 端是用戶使用在線備份服務(wù)的操作界面,用戶可以在任意時候登陸備份客戶端執(zhí)行指定的 操作,如備份、恢復(fù)和刪除等。實例備份服務(wù)系統(tǒng)應(yīng)用的運行支撐環(huán)境為1.硬件環(huán)境與支持環(huán)境備份客戶端要求主機具備512M及以上內(nèi)存,IOMbps及以上網(wǎng)絡(luò)吞吐能力。調(diào)度服務(wù)器要求主機具備2GB及以上內(nèi)存,IOOOMbps及以上網(wǎng)絡(luò)吞吐能力。存儲服務(wù)器要求主機具備4GB及以上內(nèi)存和TB級外存儲能力,1000Mbps級以上網(wǎng) 絡(luò)吞吐能力。調(diào)度服務(wù)器和存儲服務(wù)器軟件所在主機之間具備GB級網(wǎng)絡(luò)交換能力,客戶端與 服務(wù)端軟件所在主機之間具備網(wǎng)絡(luò)連通能力。要求服務(wù)器主機所在環(huán)境具備冗余電源保 障、冗余通信鏈路保障、溫度控制系統(tǒng)、防火系統(tǒng)等確保主機正常運轉(zhuǎn)的基本條件。2.軟件運行環(huán)境備份客戶端程序運行在Windows XP及以后版本操作系統(tǒng)或基于Linux 2. 6內(nèi)核的操作系統(tǒng)平臺下。調(diào)度服務(wù)器及存儲服務(wù)器運行在Windows Server 2003操作系統(tǒng)平臺下。在目前實現(xiàn)并正常運行的在線備份服務(wù)系統(tǒng)中,存儲服務(wù)器端每個數(shù)據(jù)空間大小 為1T,數(shù)據(jù)空間個數(shù)最大為20。每個數(shù)據(jù)空間分為1024個邏輯數(shù)據(jù)塊,每個邏輯數(shù)據(jù)塊大 小為IG。以上所述為本發(fā)明的較佳實施例而已,但本發(fā)明不應(yīng)該局限于該實施例和附圖所公開的內(nèi)容。所以凡是不脫離本發(fā)明所公開的精神下完成的等效或修改,都落入本發(fā)明保 護的范圍。
權(quán)利要求
一種用于備份服務(wù)的數(shù)據(jù)組織方法,其特征在于,該方法包括下述步驟(1)初始化元數(shù)據(jù)信息部分初始化,包括給元數(shù)據(jù)區(qū)的索引頭信息、數(shù)據(jù)索引信息、數(shù)據(jù)區(qū)元數(shù)據(jù)信息賦初始值;在數(shù)據(jù)區(qū)預(yù)分配一個數(shù)據(jù)空間準(zhǔn)備接受用戶的備份請求;(2)接收用戶命令并判斷用戶命令類型判斷用戶命令類型,如果是備份操作,進入步驟(3),如果是恢復(fù)操作,則轉(zhuǎn)入步驟(4),如果是刪除操作,則轉(zhuǎn)入步驟(5);(3)按照下述過程進行備份處理(3.1)首先將用戶待備份的文件分塊,然后對數(shù)據(jù)分塊的內(nèi)容用MD5算法進行哈希,得到一個唯一標(biāo)識數(shù)據(jù)分塊的指紋,數(shù)據(jù)分塊以指紋為索引存儲在存儲服務(wù)器端元數(shù)據(jù)的索引頭和數(shù)據(jù)索引中;(3.2)由備份客戶端向存儲服務(wù)器傳送數(shù)據(jù)分塊的指紋,存儲服務(wù)器端根據(jù)指紋查詢該分塊是否存在;(3.3)如果該指紋不存在,則備份客戶端傳送該數(shù)據(jù)分塊給存儲服務(wù)器,則該數(shù)據(jù)分塊為新備份數(shù)據(jù)塊,在存儲服務(wù)器端動態(tài)分配存儲空間,并完成該新備份數(shù)據(jù)塊的寫操作;如果存在,則只需更新存儲服務(wù)器端該數(shù)據(jù)分塊所對應(yīng)的索引信息,將其引用計數(shù)加一;(3.4)轉(zhuǎn)入步驟(2);(4)恢復(fù)時,由備份服務(wù)器查得待恢復(fù)文件包含的Hash列表,根據(jù)Hash列表訪間存儲空間元數(shù)據(jù)信息來定位在相應(yīng)數(shù)據(jù)空間中的邏輯位置,然后依次從存儲服務(wù)器端讀待恢復(fù)文件數(shù)據(jù)到內(nèi)存緩沖區(qū),然后通過套接字傳給備份客戶端,并合成所需文件集,再轉(zhuǎn)入步驟(2);(5)按下述過程刪除已備份文件(5.1)由備份系統(tǒng)軟件中備份服務(wù)器查得待刪除文件包含的Hash列表;(5.2)根據(jù)Hash值查找存儲服務(wù)器端的元數(shù)據(jù)區(qū)的索引頭和數(shù)據(jù)索引映射表,如果入口參數(shù)Hash值不存在,則立刻返回,返回值為false;(5.3)否則將Hash值對應(yīng)的對象元數(shù)據(jù)的引用計數(shù)減1,返回值為true;(5.4)再轉(zhuǎn)入步驟(2)。
2.根據(jù)權(quán)利要求1所述的用于備份服務(wù)的數(shù)據(jù)組織方法,其特征在于,上述步驟(3.3) 中,令P表示每個數(shù)據(jù)空間預(yù)分配的邏輯數(shù)據(jù)塊個數(shù),W表示每個數(shù)據(jù)空間內(nèi)能夠容納的最 大邏輯數(shù)據(jù)塊個數(shù),V表示使用了的數(shù)據(jù)空間數(shù),S表示數(shù)據(jù)空間總數(shù);動態(tài)分配存儲空間的具體步驟如下(al)判斷在當(dāng)前數(shù)據(jù)空間的P個邏輯數(shù)據(jù)塊中是否有能夠滿足指定大小備份數(shù)據(jù)塊 的剩余可用空間,如果有,進入步驟(a5),否則,進入步驟(a2);(a2)判斷P < W是否成立,若成立進入步驟(a6),否則,進入步驟(a3); (a3)判斷在存儲服務(wù)器主記錄中的其它數(shù)據(jù)空間是否有能夠滿足指定大小的備份數(shù) 據(jù)塊的剩余可用空間,如果有,進入步驟(a5),否則,進入步驟(a4);(a4)判讀V < S是否成立,若成立,則在存儲服務(wù)器上增長一個數(shù)據(jù)空間,為新的數(shù)據(jù) 空間內(nèi)待寫入備份數(shù)據(jù)塊分配一個數(shù)據(jù)索引,然后轉(zhuǎn)入步驟(a8),否則,進入步驟(a7);(a5)為剩余可用空間內(nèi)待寫入備份數(shù)據(jù)塊分配一個數(shù)據(jù)索引,然后轉(zhuǎn)入步驟(a8)。 (a6)在存儲服務(wù)器上為該數(shù)據(jù)空間增長一個邏輯數(shù)據(jù)塊大小的空間,再為備份數(shù)據(jù)塊 分配一個數(shù)據(jù)索引,然后轉(zhuǎn)入步驟(a8); (a7)宣布動態(tài)分配失敗; (a8)結(jié)束動態(tài)分配過程。
3.根據(jù)權(quán)利要求1所述的用于備份服務(wù)的數(shù)據(jù)組織方法,其特征在于,寫操作包括下 述步驟(bl)在存儲服務(wù)端動態(tài)尋找可用存儲空間,查找是否有滿足條件的邏輯數(shù)據(jù)塊; (b2)如果沒有可用邏輯數(shù)據(jù)塊則返回失??;(b3)如果有滿足新備份數(shù)據(jù)塊大小的可用存儲空間,這創(chuàng)建一個新數(shù)據(jù)索引,將新備 份數(shù)據(jù)塊寫入相應(yīng)存儲服務(wù)器位置,然后將相應(yīng)索引頭和數(shù)據(jù)索引元數(shù)據(jù)寫入主記錄區(qū)。
4.根據(jù)權(quán)利要求1所述的用于備份服務(wù)的數(shù)據(jù)組織方法,其特征在于,根據(jù)Hash列表 訪間存儲空間元數(shù)據(jù)信息來定位在相應(yīng)數(shù)據(jù)空間中的邏輯位置的過程如下(4. 1)按照預(yù)先設(shè)定的索引頭的位數(shù)m,由數(shù)據(jù)Hash值的前m位對索引頭進行索引,索 引頭的內(nèi)容構(gòu)成數(shù)據(jù)索引號;(4. 2)通過索引頭對數(shù)據(jù)索引尋址,再通過數(shù)據(jù)索引對一次操作的數(shù)據(jù)項進行尋址,具 體包括三部分內(nèi)容(4. 2. 1)通過數(shù)據(jù)索引的結(jié)構(gòu)體成員中的數(shù)據(jù)空間編號找到具體的數(shù)據(jù)空間號; (4. 2. 2)通過數(shù)據(jù)索引的結(jié)構(gòu)體成員中的數(shù)據(jù)空間內(nèi)的邏輯數(shù)據(jù)塊編號找到數(shù)據(jù)空間 中的塊號;(4. 2. 4)通過數(shù)據(jù)索引的結(jié)構(gòu)體成員中的數(shù)據(jù)空間內(nèi)的邏輯數(shù)據(jù)塊內(nèi)的偏移地址找到 數(shù)據(jù)項在邏輯數(shù)據(jù)塊中的偏移地址,定位數(shù)據(jù)項的數(shù)據(jù)頭和數(shù)據(jù)實體; (4. 4)利用獲得的地址信息,定位到相應(yīng)的數(shù)據(jù)區(qū)讀取數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種備份服務(wù)軟件存儲服務(wù)器端數(shù)據(jù)組織方法,用于提高存儲服務(wù)器端的數(shù)據(jù)組織和數(shù)據(jù)管理效率。方法包括①初始化存儲服務(wù)器存儲空間為元數(shù)據(jù)區(qū)(包括主記錄、索引頭和數(shù)據(jù)索引)和數(shù)據(jù)區(qū);②接受并判斷用戶操作命令,備份操作順序進行,恢復(fù)操作轉(zhuǎn)步驟④,刪除操作轉(zhuǎn)步驟⑤;③處理用戶備份操作,將用戶數(shù)據(jù)備份到存儲服務(wù)器數(shù)據(jù)區(qū),同時利用重復(fù)數(shù)據(jù)刪除技術(shù)避免重復(fù)數(shù)據(jù)備份;轉(zhuǎn)步驟②;④處理恢復(fù)操作,將用戶指定的恢復(fù)數(shù)據(jù)列表在存儲服務(wù)器數(shù)據(jù)區(qū)定位查找,然后傳輸?shù)接脩舳?;轉(zhuǎn)步驟②;⑤處理刪除操作,查找用戶指定刪除的數(shù)據(jù),根據(jù)這些數(shù)據(jù)在存儲服務(wù)器數(shù)據(jù)區(qū)的備份數(shù)據(jù)塊引用計數(shù)進行相應(yīng)的處理;轉(zhuǎn)步驟②。本方法提高了存儲服務(wù)器端的利用率、可管理性和系統(tǒng)的可擴展性,節(jié)省了網(wǎng)絡(luò)帶寬,提高了備份效率。
文檔編號G06F12/06GK101814045SQ20101015239
公開日2010年8月25日 申請日期2010年4月22日 優(yōu)先權(quán)日2010年4月22日
發(fā)明者周可, 張鵬, 王樺 申請人:華中科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1