一種提高重復數據刪除備份系統恢復性能的數據布局方法
【專利摘要】本發明提出一種基于數據塊存儲地址的數據布局方法,用于提高重復數據刪除備份系統的恢復性能。該方法充分考慮每個數據塊的具體存儲位置,并結合磁盤的帶寬和尋道時間,在備份時計算數據的恢復速度,若恢復速度滿足用戶需求,則認為對應的數據不是數據碎片,反之則是數據碎片。與已有方法不同的是,該方法是一種基于數據塊存儲地址的數據布局方法,碎片識別時使用更加細粒度的碎片識別方式,能精確定位每一個碎片。通過這種方法,可以獲得比其他方法更高的重刪率和數據恢復性能。
【專利說明】
-種提高重復數據刪除備份系統恢復性能的數據布局方法
技術領域
[0001] 本發明屬于計算機信息存儲技術領域,設及一種提高重復數據刪除備份系統恢復 性能的,基于數據塊存儲地址的數據布局方法。
【背景技術】
[0002] 隨著信息時代的來臨,數據呈現爆炸式地增長,IDC預測到2020年將會產生44ZB的 數據。備份系統需要存儲的備份數據越來越多,如何利用有限的存儲資源,高效地存儲PB級 甚至邸級的數據是亟待解決的問題。重復數據刪除技術是一種通過大規模消除冗余數據, 降低數據存儲成本的重要技術。重復數據刪除技術常用于數據備份系統中,用來刪除備份 系統中重復存儲的數據塊,W節約存儲空間。不過,該技術雖然能夠節約存儲成本,但其在 重復數據塊被刪除之后,邏輯上連續的數據塊在物理空間上被分散存儲,導致在恢復數據 的過程中需要大量的數據塊隨機讀取操作和磁盤尋道操作,使恢復性能嚴重降低。例如,在 重復數據塊被刪除之后,組成一個文件的N個連續的數據塊很可能存儲在N個不同的地方, 數據恢復時讀取運個文件需要腳欠的磁盤隨機讀取操作,導致該文件的讀取性能非常低。運 些在邏輯上連續但物理空間上不連續的數據塊被稱為數據碎片,數據碎片是導致數據恢復 性能嚴重降低的最主要的原因。
[0003] 解決碎片的主要思想是改變數據的布局,具體方法是重寫適量的碎片數據,使大 部分邏輯上連續的數據塊在物理存儲空間上也連續,從而減少碎片的數量。W犧牲少量存 儲空間為代價,換取恢復性能的提升。目前,主流識別碎片的方法是W固定大小的連續物理 空間為基本識別單位(容器),碎片識別程序檢測每個容器內的有效數據量,即恢復或讀取 某個數據對象(數據對象可W指一個備份文件或一個備份數據流)時需要從該容器中讀取 的數據量,若該容器內的有效數據量達到一定的闊值,則認為在此次數據讀取或恢復過程 中,該容器內的有效數據不是數據碎片,反之是則被認定為數據碎片,例如帽子算法(CAP, the ca郵ing algorithm)和基于上下文重寫算法(CBR,The Context-Based Rewriting algorithm)等。雖然通過重寫該類碎片能夠在一定程度上提升數據恢復性能,但是運種碎 片識別方法只關注容器中有效數據塊的總量,不考慮每個有效數據塊的具體存儲地址,無 法精確定位數據碎片,導致重寫過多的數據,并且恢復性能得不到有效的提升。
[0004] 針對已有解決方案存在的問題,我們提出一種全新的用于提高重復數據刪除備份 系統恢復性能的數據布局方法。該方法充分考慮每個數據塊的具體存儲位置,并結合磁盤 的帶寬和尋道時間,在備份時計算數據的恢復速度,若恢復速度滿足用戶需求,則認為對應 的數據不是數據碎片,反之則是數據碎片。與已有方法不同的是,該方法是一種基于數據塊 存儲地址的數據布局方法,碎片識別時使用更加細粒度的碎片識別方式,不再使用固定大 小的容器,不再忽視容器內部數據塊的數據布局,精確定位每一個碎片。通過運種方法,可 W獲得比其他方法更高的重刪率和數據恢復性能。
【發明內容】
[0005] 本發明提出一種基于數據塊存儲地址的數據布局方法,用于提高重復數據刪除備 份系統的恢復性能。該方法充分考慮每個數據塊的具體存儲位置,并結合磁盤的帶寬和尋 道時間,在備份時計算數據的恢復速度,若恢復速度滿足用戶需求,則認為對應的數據不是 數據碎片,反之則是數據碎片。與已有方法不同的是,該方法是一種基于數據塊存儲地址的 數據布局方法,碎片識別時使用更加細粒度的碎片識別方式,能精確定位每一個碎片。通過 運種方法,可W獲得比其他方法更高的重刪率和數據恢復性能。
[0006] 本發明的核屯、思想之一是數據碎片識別。碎片識別的基本單位為數據組。每個數 據組由一定量的存儲地址相鄰的數據塊組成。若在一個組中,恢復或讀取某個數據集對象 (數據對象可W指一個備份文件或一個備份數據流)時,該組內的有效數據塊的傳輸速度低 于用戶所期望的傳輸速度,則該組內的有效數據塊被認定為數據碎片,反之,則該組內的有 效數據塊不是數據碎片。如公式1所示,不等號左側是有效數據傳輸速度,右側為用戶所期 望的傳輸速度。若滿足公式1,則說明有效數據的傳輸速度高于或等于用戶期望速度,組內 的有效數據塊不是數據碎片。
[0007]
[000引在上述公式1中,不等號左側的分子X指有效數據塊的總大小,分母t+y/B表示讀取 該有效數據所需要的傳輸時間,x/(t+y/B)則表示有效數據X的傳輸速度,其中t表示磁盤尋 道時間,y表示讀取該有效數據X所需讀取的數據總量,即有效數據塊的最小存儲地址和最 大存儲地址之間所存儲的數據量總和;不等號右側的分子B表示磁盤帶寬(即磁盤的傳輸速 度),分母η用于限定用戶期望的數據讀取速度,B/n表示用戶期望有效數據的讀取速度為磁 盤最大傳輸速度的1/n倍。因此,公式1表示用戶期望有效數據的讀取速度至少為磁盤最大 傳輸速度的1/η倍。
[0009] 本發明核屯、思想之二是數據塊分組。首先把有效數據塊按照存儲地址進行排序, 然后把相鄰的存儲地址間隔小于分組闊值(gap)的數據塊分為一個組,而相鄰的存儲地址 間隔大于或等于分組闊值的數據塊則被分到兩個不同的組。分組闊值的定義如公式2所示, 其中gap為分組闊值,gap表示滿足公式1的有效數據X的最小值。
[0010]
[00川上述公式袖公式1推導得出。在公示1中,nx別t+y,因為y>x,所Wx別t/(n-l)。
[0012] 本發明的一種基于數據塊存儲地址的數據布局方法,主要包括四個模塊:數據分 塊與指紋管理模塊、組劃分模塊、碎片識別模塊、數據刪除與存儲模塊。數據分塊與指紋管 理模塊主要對備份數據集采用數據塊變長算法進行不定長分塊,W及采用哈希函數計算每 個數據塊的指紋,并對整個備份數據集的數據塊指紋進行管理,該模塊維護一個指紋查找 表用于判斷某個數據塊是否為重復數據塊,指紋查找表的每一項包括數據塊的指紋和該數 據塊的存儲地址。組劃分模塊和碎片識別模塊用來進行數據布局的相關操作,其中組劃分 模塊主要使用公式2對數據進行分組操作,碎片識別模塊主要使用公式1判斷待識別組中的 數據是否為碎片數據。數據刪除與存儲模塊主要用于刪除非碎片的重復數據塊,存儲新數 據塊和碎片數據塊。
[0013] 數據布局的主要流程為:
[0014] (1)數據分塊與指紋管理模塊對需要備份的數據集使用數據塊變長算法進行不定 長分塊,然后采用哈希算法計算每個數據塊的指紋,如采用RabinFingerprint算法進行數 據分塊,采用SHA-1哈希算法計算每個數據塊的指紋。
[0015] (2)數據分塊與指紋管理模塊在指紋查找表中查詢步驟(1)中計算得到的數據塊 指紋,若不存在該指紋,則標記對應的數據塊為新數據塊;反之若存在該指紋,則說明對應 的數據塊已經被存儲過,標記該數據塊為重復數據塊,并記錄該數據塊的存儲地址。
[0016] (3)組劃分模塊對步驟(2)得到的重復數據塊根據公式2進行分組操作,即把運些 重復數據塊按照數據塊的存儲地址進行排序,將相鄰的存儲地址間隔小于分組闊值(gap) 的數據塊分為一個組,而相鄰的存儲地址間隔大于或等于分組闊值的數據塊則被分到兩個 不同的組。
[0017] (4)碎片識別模塊根據公式1對步驟(3)所得到的每個組進行碎片識別。若組內數 據是碎片,將該組中的數據塊標記為碎片數據塊。否則,則將該組中的數據塊標記為非碎片 數據塊。
[0018] (5)數據刪除和存儲模塊刪除步驟(4)中識別出的非碎片數據塊,存儲步驟(4)中 識別出的碎片數據塊W及步驟(2)中標記出的新數據塊并記錄該數據塊的存儲地址。
[0019] (6)數據分塊與指紋管理模塊根據新數據塊W及碎片數據塊在步驟(5)獲得的存 儲地址更新指紋查找表。
[0020] 本發明具有如下的特點:
[0021] (1)本發明相比已有的數據布局方法,使用數據塊存儲地址進行數據布局,碎片識 別時使用更加細粒度的碎片識別方式,能精確定位每一個數據碎片,實現更精細化的碎片 管理,獲得更高的重刪率和更好的恢復性能。
[0022] (2)本發明所能獲得的重刪率和恢復性能是可配置的。根據不同的使用場景,不同 的性能需求,可通過調整公式2中的相關參數,獲得用戶理想中的恢復速度。例如,若存儲空 間比較緊缺,則可W增大公式2中的η值,W降低少量恢復性能為代價獲得更高的重刪率,節 約存儲空間;若存儲空間比較充足,則可W減小公式2的η值,W犧牲較小的重刪率為代價, 獲得更好的恢復性能。
[0023] 綜上所述,本發明是一種用于提高重復數據刪除系統恢復性能的基于數據塊存儲 地址的數據布局方法。該方法利用存儲地址進行分組并進行碎片識別,實現了更加精細化 地管理,與已有的數據布局解決方法相比擁有更高重刪率和恢復性能。同時,本發明還能針 對不同的使用場景,通過調整參數獲得與場景相適應的重刪率和恢復性能。
【附圖說明】
[0024] 圖1為碎片識別示意圖
[0025] 圖2為分組示意圖
[0026] 圖3為模塊結構示意圖
[0027] 圖4為數據布局流程圖
【具體實施方式】
[0028] 圖1為本發明的碎片識別示意圖。碎片識別的基本單位為數據組。每個數據組由一 定量的存儲地址相鄰的數據塊組成。若在一個組中,恢復或讀取某個數據集對象(數據對象 可W指一個備份文件或一個備份數據流)時,該組內的有效數據塊的傳輸速度低于用戶所 期望的傳輸速度,則該組內的有效數據塊被認定為數據碎片,反之,則該組內的有效數據塊 不是數據碎片。圖1中陰影部分之和是組內有效數據塊的總大小X,包括Xl、x2、x3、x4,x = xl +x2+x3+x4"y表示讀取有效數據X所需要讀取的數據總量,即有效數據塊的最小存儲地址和 最大存儲地址之間所存儲的數據量總和。
[0029] 圖2為本發明的分組示意圖。首先把有效數據塊按照存儲地址進行排序,然后把相 鄰的存儲地址間隔小于分組闊值(gap)的數據塊分為一個組,而相鄰的存儲地址間隔大于 或等于分組闊值的數據塊則被分到兩個不同的組。
[0030] 圖3為本發明的模塊結構示意圖。本發明的一種基于數據存儲地址的數據布局方 法包括四個模塊,數據分塊與指紋管理模塊110、組劃分模塊120、碎片識別模塊130、數據刪 除與存儲模塊140。數據分塊與指紋管理模塊110主要對備份數據集采用數據塊變長算法進 行不定長分塊,W及采用哈希函數計算每個數據塊的指紋,并對整個備份數據集的數據塊 指紋進行管理,該模塊維護一個指紋查找表用于判斷某個數據塊是否為重復數據塊,指紋 查找表的每一項包括數據塊的指紋和該數據塊的存儲地址。組劃分模塊120和碎片識別模 塊130用來進行數據布局的相關操作,其中組劃分模塊120主要使用公式2對數據進行分組 操作,碎片識別模塊130主要使用公式1判斷待識別組中的數據是否為碎片數據。數據刪除 與存儲模塊140主要用于刪除非碎片的重復數據塊,存儲新數據塊和碎片數據塊。
[0031] 圖4為本發明的數據布局流程圖,具體步驟如下:
[0032] (1)數據分塊與指紋管理模塊110對需要備份的數據集使用數據塊變長算法進行 不定長分塊,然后采用哈希算法計算每個數據塊的指紋,如采用RabinFingerprint算法進 行數據分塊,采用SHA-1哈希算法計算每個數據塊的指紋。
[0033] (2)數據分塊與指紋管理模塊110在指紋查找表中查詢步驟(1)中計算得到的數據 塊指紋,若不存在該指紋,則標記對應的數據塊為新數據塊;反之若存在該指紋,則說明對 應的數據塊已經被存儲過,標記該數據塊為重復數據塊,并記錄該數據塊的存儲地址。
[0034] (3)組劃分模塊120對步驟(2)得到的重復數據塊根據公式2進行分組操作,即把運 些重復數據塊按照數據塊的存儲地址進行排序,將相鄰的存儲地址間隔小于分組闊值 (gap)的數據塊分為一個組,而相鄰的存儲地址間隔大于或等于分組闊值的數據塊則被分 到兩個不同的組。
[0035] (4)碎片識別模塊130根據公式1對步驟(3)所得到的每個組進行碎片識別。若組內 數據是碎片,將該組中的數據塊標記為碎片數據塊。否則,則將該組中的數據塊標記為非碎 片數據塊。
[0036] (5)數據刪除和存儲模塊140刪除步驟(4)中識別出的非碎片數據塊,存儲步驟(4) 中識別出的碎片數據塊W及步驟(2)中標記出的新數據塊并記錄該數據塊的存儲地址。
[0037] (6)數據分塊與指紋管理模塊110根據新數據塊W及碎片數據塊在步驟(5)獲得的 存儲地址更新指紋查找表。
【主權項】
1. 本發明一種提高重復數據刪除備份系統恢復性能的基于數據塊存儲地址的數據布 局方法,具體步驟為: (1) 對需要備份的數據集使用數據塊變長算法進行不定長分塊,然后采用哈希算法計 算每個數據塊的指紋。 (2) 在指紋查找表中查詢步驟(1)中計算得到的數據塊指紋,若不存在該指紋,則標記 對應的數據塊為新數據塊;反之若存在該指紋,則說明對應的數據塊已經被存儲過,標記該 數據塊為重復數據塊,并記錄該數據塊的存儲地址。 (3) 對步驟(2)得到的重復數據塊進行分組操作,即把這些重復數據塊按照數據塊的存 儲地址進行排序,將相鄰的存儲地址間隔小于分組閾值的數據塊分為一個組,而相鄰的存 儲地址間隔大于或等于分組閾值的數據塊則被分到兩個不同的組。 (4) 對步驟(3)所得到的每個組進行碎片識別。若在一個組中,恢復或讀取某個數據集 對象(數據對象可以指一個備份文件或一個備份數據流)時,該組內的有效數據塊的傳輸速 度低于用戶所期望的傳輸速度,則該組內的有效數據塊被標記為數據碎片,反之,則該組內 的有效數據塊被標記為非碎片數據塊。 (5) 刪除步驟(4)中識別出的非碎片數據塊,存儲步驟(4)中識別出的碎片數據塊以及 步驟(2)中標記出的新數據塊并記錄該數據塊的存儲地址。 (6) 根據新數據塊以及碎片數據塊在步驟(5)獲得的存儲地址更新指紋查找表。2. 根據權利要求1所述的數據布局方法,其特征在于: (1) 本發明一種基于數據塊存儲地址的碎片識別方法,具體為:碎片識別的基本單位為 數據組,每個數據組由一定量的存儲地址相鄰的數據塊組成。若在一個組中,恢復或讀取某 個數據集對象(數據對象可以指一個備份文件或一個備份數據流)時,該組內的有效數據塊 的傳輸速度低于用戶所期望的傳輸速度,則該組內的有效數據塊被認定為數據碎片,反之, 則該組內的有效數據塊不是數據碎片。如公式1所示,不等號左側是有效數據傳輸速度,右 側為用戶所期望的傳輸速度。若滿足公式1,則說明有效數據的傳輸速度高于或等于用戶期 望速度,組內的有效數據塊不是數據碎片。在上述公式1中,不等號左側的分子X指有效數據塊的總大小,分母t+y/B表示讀取該有 效數據所需要的傳輸時間,x/(t+y/B)則表示有效數據X的傳輸速度,其中t表示磁盤尋道時 間,y表示讀取該有效數據X所需讀取的數據總量,即有效數據塊的最小存儲地址和最大存 儲地址之間所存儲的數據量總和;不等號右側的分子B表示磁盤帶寬(即磁盤的傳輸速度), 分母η用于限定用戶期望的數據讀取速度,B/n表示用戶期望有效數據的讀取速度為磁盤最 大傳輸速度的1/n倍。因此,公式1表示用戶期望有效數據的讀取速度至少為磁盤最大傳輸 速度的1/η倍。 (2) 本發明一種基于數據塊存儲地址的數據分組方法,具體為:首先把有效數據塊按照 存儲地址進行排序,然后把相鄰的存儲地址間隔小于分組閾值(gap)的數據塊分為一個組, 而相鄰的存儲地址間隔大于或等于分組閾值的數據塊則被分到兩個不同的組。分組閾值的 定義如公式2所示,其中gap為分組閾值,gap表示滿足公式1的有效數據X的最小值。上述公式2由公式1推導得出。在公示1中,nx彡Bt+y,因為y彡x,所以x彡Bt/(n-l)。
【文檔編號】G06F11/14GK106066818SQ201610351498
【公開日】2016年11月2日
【申請日】2016年5月25日 公開號201610351498.5, CN 106066818 A, CN 106066818A, CN 201610351498, CN-A-106066818, CN106066818 A, CN106066818A, CN201610351498, CN201610351498.5
【發明人】譚玉娟, 文艦, 晏志超
【申請人】重慶大學