摘要:本文討論了目前數據備份系統中的幾種數據去重技術,并分析了去重技術將面臨的挑戰,以期對數據去重技術做一個總結和展望。
關鍵詞:數據備份;數據去重;數據碎片;去重技術
中圖分類號:TP309.3 文獻標識碼:A 文章編號:1674-7712 (2012) 18-0043-01
一、數據去重技術
(一)全局去重和局部去重技術??煞譃槿秩ブ睾途植咳ブ丶夹g。全局去重主要應用在有多個去重設備的環境里,它會對多個已去重的庫、目標和站點進行數據的比對,然后對重復數據進行刪除。它可以刪除多節點間的冗余數據。使用全局去重后,如果數據從第一個節點傳遞到第二個節點,那么第一個節點存儲過的數據,第二個節點將不再存儲。
局部去重則不考慮多個節點間的冗余數據,它僅刪除同一臺機器、同一個客戶端、或同一個存儲節點上的冗余數據。
這兩種去重方式,全局去重的壓縮率要比局部去重的壓縮率高,因為全局去重比局部去重所刪除掉的重復數據要多;但是局部去重的開銷要比全局去重的開銷少,因為全局去重需要對多個存儲節點上的數據進行查詢,刪除多個節點之間存在的重復數據,其帶來的開銷也會比局部去重大很多。也正是因為這一點,很多公司,實現的全局去重所關注的存儲節點數也非常有限的。
(二)文件級和數據塊級(字節級)去重技術。根據重復數據的鑒別粒度,數據去重可分為文件級的去重技術(單實例存儲技術)和數據塊級(字節級)去重技術。
文件級的重復數據去重技術使用哈希函數計算每個文件內容的哈希值,然后根據索引檢查需要備份的文件屬性,并與已經存儲的文件進行比較,如果兩個文件的哈希值相同,則刪除相同內容的文件來減少數據存儲量,節約存儲空間,如果哈希值不同,就將其存儲。
數據塊級的重復數據去重技術是在子文件的級別上運行的,主要通過刪除內容相同的數據塊來減少數據量。正如它的名字,文件或數據流通常在這里會被分割為較小的數據塊(每個供應商檢查的數據塊大小不一,一些供應商固定數據塊的大小,一些則使用不同大小的塊,數據塊的平均大小一般在4KB~8KB左右),然后使用哈希函數求取每個數據塊的哈希值,這些哈希值常被稱為數據塊指紋。數據塊指紋是用來唯一標識一個數據塊的,具有相同指紋的兩個數據塊即為重復數據塊。
這兩種去重技術,其中文件級的重復數據去重技術能達到的壓縮率較低,因為它不能刪除相似文件之間的重復數據。而數據塊級的數據去重技術由于不僅能刪除相同的文件,還能刪除相似文件中的相同數據塊因此有較高的壓縮率,它是目前為止使用最廣泛的數據去重技術。但是,由于數據塊級去重技術的鑒別和刪除粒度更細,因此它帶來的開銷也比文件級的更大。
(三)在線去重技術和離線去重技術。根據重復數據的刪除時間劃分,數據去重技術可分為在線去重和離線去重技術。
在線去重技術是指在數據到達存儲設備之前就對重復數據進行查找和刪除,存儲設備上不存儲重復的數據塊。由于査找和刪除重復數據這一過程發生在數據寫的關鍵路徑上,因而數據去重會對存儲系統的存儲性能產生一定的影響,嚴重的會影響存儲系統的數據寫性能。
離線去重需要額外的存儲空間做緩沖,是屬于后處理的去重模式,在運行時不影響上層應用程序的存儲性能,但需要額外的存儲空間做緩沖區。
目前,數據備份系統一般都使用在線去重技術,因為當前的數據備份系統都不是實時應用系統,對存儲的性能要求也不高。如果是實時關鍵應用或對存儲系統存儲性能要求很高,離線去重技術更合適。
(四)源端去重和目標端去重技術。依據重復數據的刪除地點,數據去重可以分為源端去重技術和目標端去重技術。
源端去重技術即在數據的發送端,一般指客戶端,對數據進行查找并刪除重復的數據。這種去重技術非常適合廣域網寬帶較低的網絡環境下的備份系統,由于重復的數據不參與傳輸和運輸,它可以減少傳輸的數據量,加快數據傳輸。但由于源端去重需要現在發送端進行查找和刪除重復數據,所以會占用源端機器資源,進而影響源端機器的應用性能。
目標端去重即在數據的接收端、存儲端,查找并刪除重復的數據。由于目標端去重只需要在目標端,即服務器端對重復數據進行查找和刪除,不需要源端進行任何去重處理。因此在數據傳輸帶寬較高的情況下,目標端去重更占優勢。
二、數據去重技術面臨的挑戰
(一)數據去重的可擴展性尚待提高。隨著數據量的不斷增長,數據備份系統仍需要應對超大數據量這一問題。因此如何在多個存儲節點之間快速去重仍然是熱點研究問題。如何充分利用現有的存儲設備、建立多層次索引、減少去重開銷,快速查找重復數據仍是數據去重技術面臨的最大的問題。
(二)如何減少數據去重引起的數據碎片有待解決。數據去重需要刪除多個文件之間的重復數據,首先由于現有大多數去重方法都傾向于利用數據冗余局部性來緩解數據去重過程中所遇到的磁盤瓶頸,提高數據去重吞吐率,但是隨著數據碎片逐漸增多,備份數據流之間出現的數據冗余局部性會減弱,從而導致依賴數據冗余局部性來緩解數據去重中磁盤瓶頸的數據去重方法失去其有效性,嚴重影響數據去重的性能。
其次由于數據去重的處理,一個文件產生的大量數據碎片將導致一個文件的讀取需要大量的磁盤1/0,甚至可能每讀取一個數據塊都需要一次磁盤1/0,大大降低了系統的數據讀性能。
(三)數據去重技術有待規范化。數據去重方法是否有效性取決于數據集中重復數據的特征,目前有很多種數據去重方法。然而,要使數據去重技術能廣泛應用,無疑需要對目前所使用的數據去重技術以及對應數據集的特征通過一個統一的標準來規范,給研究者提供一個標準,給存儲用戶提供規范的接口,以便于未來數據去重技術的推廣。
本文通過探討當前數據備份系統中的幾種數據去重技術的原理及其優缺點,分析目前數據去重技術所面臨的挑戰,希望能為數據備份系統中的數據去重技術做一個總結和展望,以期未來更好的去應對去重技術面臨的挑戰。
參考文獻:
[1]譚玉娟.數據備份系統中數據去重技術研究[D].華中科技大學,2012.