重複數據刪除

重複數據刪除

重複數據刪除是計算機術語,是指一種數據縮減技術,通常用於基於磁碟的備份系統,旨在減少存儲系統中使用的存儲容量。它的工作方式是在某個時間周期內查找不同檔案中不同位置的重複可變大小數據塊。

重複數據刪除定義

一種數據縮減技術,通常用於基於磁碟的備份系統,旨在減少存儲系統中使用的存儲容量。它的工作方式是在某個時間周期內查找不同檔案中不同位置的重複可變大小數據塊。重複的數據塊用指示符取代。高度冗餘的數據集(例如備份數據)從數據重複刪除技術的獲益極大;用戶可以實現10比1至50比1的縮減比。而且,重複數據刪除技術可以允許用戶的不同站點之間進行高效,經濟的備份數據複製。
備份設備中總是充斥著大量的冗餘數據。為了解決這個問題,節省更多空間,“重複刪除”技術便順理成章地成了人們關注的焦點。採用“重複刪除”技術可以將存儲的數據縮減為原來的1/20,從而讓出更多的備份空間,不僅可以使磁碟上的備份數據保存更長的時間,而且還可以節約離線存儲時所需的大量的頻寬。
就在幾年前,D2D備份似乎還好得令人難以置信。受價格低廉的 ATA(以及稍後的SATA)硬碟的影響,很多人會選擇用D2D取代虛擬磁帶庫或做備份到磁碟的工作,使備份速度變得更快,不必再擔心在磁帶驅動器和磁帶庫上產生的機械故障,並且使檔案恢復變得更加輕鬆。
但是今天,我們的磁碟備份設備的容量已經趨於飽和,在數據中心已經沒有足夠的空間來備份PT級的數據,在這種情況下,當我們希望將備份數據保存一個月時,卻只能保存兩到三天。問題是在我們的備份設備中有太多的重複數據。現在終於有了解決這個問題的辦法,善於抓住機會賺錢的廠商們聲稱他們的新一代“刪除重複數據”產品可以按20:1,甚至300:1的比例縮減我們需要存儲的數據量。果真如此嗎?讓我們仔細看看。
重複數據刪除技術支持在已有的磁碟設備上存儲更多的備份數據。因此採用“重複數據刪除”技術可以增加您保存備份數據的時間,減少數據中心的消耗,降低成本。如果您刪除重複數據後再通過WAN傳送,那么您就能夠節省大量的頻寬,並且可以取代磁帶實現網上離線備份。重複數據刪除技術唯一的缺點是備份速度變慢。

源起

當您的備份程式在網路中多次從同一目錄下備份相同的檔案,或者從多個地址處備份相同的檔案時,重複的數據在臨時區域進行備份。大部分網路上的重複數據量令人吃驚,這些數據從56個用戶保存在他們本地目錄下的假日聚會的PDF格式邀請函,到每個伺服器的系統驅動器上3GB Windows檔案,真是包羅萬象,應有盡有。
解決臨時區域內檔案重複的方案是增量備份。儘管我們很喜歡這樣做,尤其是喜歡選擇Tivoli Storage Manager 採用的永久增量備份的方法,但當我們考慮到RAID災難恢復時,我們想到的是重複數據刪除,而不是增量備份。增量備份主要是避免重複。
重複數據刪除最基本的形式是出現在CAS(內容定址存儲)設備中的單一實例存儲(single-instance store),例如,EMC的 centera。當每個檔案存儲到CAS系統上時,CAS系統會為存儲的檔案內容生成一個散列(hash);如果系統中已經存在具有相同散列(hash)的檔案,系統就會再創建一個表示副本的指針指向已存在的檔案,而不是保存另一個副本。
微軟Windows Storage Server的最新版本,Windows伺服器的OEM NAS(網路附加存儲)版本,採用了與刪除重複檔案略微不同的方法。當寫入數據時,WSS不識別重複檔案,而是運行一個後台程式SIS (單一實例存儲) Groveler,該程式通過部分檔案散列函式(採用二進制比較法)識別重複檔案,將重複檔案移到公用存儲區,原始位置上的檔案用連線到公用存儲區檔案的連結代替。
儘管檔案級SIS能夠節省一些空間,但是如果我們不只消除重複檔案而且還消除了檔案記憶體儲的重複數據,那事情可就變得讓人有興趣了。想想Outlook的 .PST檔案。例如一個典型的Outlook用戶可以擁有300-MB或更大的.PST檔案,檔案上保存著他過去所有的電子郵件;每天他都會收到一個或更多新的郵件,就因為那天他的.PST檔案改變了,你的備份程式就把這個.PST檔案包括在增量備份里了,即使這個300MB的檔案只有25 KB 的改變。
重複數據刪除產品能夠識別這個25 KB的新數據,並且剔除其餘沒有改變的舊的數據,只保存25 KB的新數據,從而節省大量磁碟空間。再進一步構想一下,550KB的附屬檔案在20個用戶的 .PST檔案內,如果它們能夠被消除,您就可以縮減大量的數據。象下述這樣的一組解決方案是Data Domain倡導的採用“重複數據刪除”技術進行備份的目標。即這些採用“重複刪除”技術的設備管理 VTL (虛擬磁帶庫) 或 NAS等備份設備,它們從這些備份套用設備(VTL或NAS設備等)中獲取數據,透明地執行“重複刪除”處理。

執行重複數據刪除的方法

廠商採納的執行重複數據刪除的基本方法有三種。第一種是基於散列(hash)的方法,Data Domain、飛康昆騰的DXi系列設備都是採用SHA-1, MD-5 等類似的算法將這些進行備份的數據流斷成塊並且為每個數據塊生成一個散列(hash)。如果新數據塊的散列(hash)與備份設備上散列索引中的一個散列匹配,表明該數據已經被備份,設備只更新它的表,以說明在這個新位置上也存在該數據。
基於散列(hash)的方法存在內置的可擴展性問題。為了快速識別一個數據塊是否已經被備份,這種基於散列(hash)的方法會在記憶體中擁有散列(hash)索引。當被備份的數據塊數量增加時,該索引也隨之增長。一旦索引增長超過了設備在記憶體中保存它所支持的容量,性能會急速下降,同時磁碟搜尋會比記憶體搜尋更慢。因此,目前大部分基於散列(hash)的系統都是獨立的,可以保持存儲數據所需的記憶體量與磁碟空間量的平衡,這樣,散列(hash)表就永遠不會變得太大。
第二種方法是基於內容識別的重複刪除,這種方法主要是識別記錄的數據格式。它採用內嵌在備份數據中的檔案系統的元數據識別檔案;然後與其數據存儲庫中的其它版本進行逐位元組地比較,找到該版本與第一個已存儲的版本的不同之處並為這些不同的數據創建一個增量檔案。這種方法可以避免散列(hash)衝突(請參閱下面的“不要懼怕衝突”),但是需要使用支持的備份套用設備以便設備可以提取元數據。
ExaGrid Systems的InfiniteFiler就是一個基於內容識別的重複刪除設備,當備份數據時,它採用CommVault Galaxy 和Symantec Backup Exec等通用的備份套用技術從源系統中識別檔案。完成備份後,它找出已經被多次備份的檔案,生成增量檔案(deltas)。多個 InfiniteFilers合成一個格線,支持高達30 TB的備份數據。採用重複刪除方法的ExaGrid在存儲一個1GB的 .PST檔案類的新信息時表現優異,但它不能為多個不同的檔案消除重複的數據,例如在四個.PST檔案具有相同的附屬檔案的情況下。
Sepaton 的用於它的VTL 的DeltaStor也採用內容識別方法,但是它將新檔案既與相同位置上的以前的檔案版本進行比較,同時也與從其它位置上備份的檔案版本進行比較,因此它能夠消除所有位置上的重複數據。
第三種方法是Diligent Technologies用於其ProtecTier VTL的技術,它像基於散列(hash)的產品那樣將數據分成塊,並且採用自有的算法決定給定的數據塊是否與其它的相似。然後與相似塊中的數據進行逐位元組的比較,以判斷該數據塊是否已經被備份。

硬體或軟體

各大廠商除了採用的方法不同外,他們物理架構的備份目標也不同。Data Domain、ExaGrid 和昆騰是包含磁碟陣列的monolithic appliances(單塊積體電路設備)。 Data Domain和昆騰有NAS或VTL接口,而ExaGrid就是一個NAS設備。Diligent和FalconStor銷售的是軟體產品,運行在Intel 或 Opteron伺服器上。
儘管帶有VTL接口的備份設備看起來更高級並且更易於與現存的基於磁帶的備份環境集成,但是採用NAS 接口,會為您的備份套用提供更多的控制。當備份檔案過了保存期時,一些像賽門鐵克的NetBackup之類的備份產品能夠從它們的磁碟存儲庫中刪除這些過了保存期的備份檔案。當重複刪除的NAS設備發現這個刪除行為時,它可以重新分配它的自由空間和散列(hash)索引。而對於VTL接口的設備來說,因為您沒有刪除磁帶,所以無法在VTL上釋放出空間,直到虛擬磁帶被複寫,空間才能得以釋放。
當然,在1TB的空間內容納25TB的數據是要付出一些代價的,不只是在金錢方面。將數據切成塊並進行索引來消除重複數據的所有工作會使備份速度減慢。Overland REO 9000 等中級VTL的數據備份速度是300 MBps甚至更快些。Diligent在其ProtecTier上已經具有200-MBps的備份速度,但是需要一個四核Opteron伺服器來實現,該伺服器前端是裝有100多個磁碟驅動器的陣列。
其它廠商解決該問題的辦法是把重複數據刪除當做一個獨立的過程在備份後運行。在一個系統上運行FalconStor的 VTL 軟體,進行備份的數據被寫到一個壓縮的虛擬磁帶檔案而不是一個刪除重複的虛擬磁帶檔案上。然後在後台將數據流切成塊,消除重複數據並且創建虛擬磁帶,該虛擬磁帶是執行刪除重複數據塊在原虛擬磁帶上的索引。一旦虛擬磁帶的數據執行了刪除重複處理,它所占有的空間就返回到可用的空間池。Sepaton的DeltaStor和 ExaGrid也把它們的重複刪除當成一個後備份過程來執行。
儘管後處理能夠提高備份速度,但同樣也要消耗成本。執行後處理重複刪除的系統必須有足夠的磁碟空間,因為除了刪除重複的數據外,它還需要保存全部標準的備份。如果您希望繼續執行每周的全天增量備份的計畫,那么一個在後台進行重複刪除處理的系統上,你可能需要雙倍多的磁碟空間來保存全部的備份直到處理完成為止。
正因為重複刪除在後台運行,所以千萬不要忽視重複刪除的性能。例如,如果到星期一的晚上您開始再次備份您的伺服器時,您的VTL還沒有完成對周末備份的處理,這時您會遇到您不想看到的情況,如磁碟空間不可用或重複刪除處理使您的備份速度變慢等。

節省頻寬

子檔案重複刪除技術不僅用於在備份套用中節省磁碟空間。新一代的備份套用,包括Asigra的 Televaulting,EMC的 Avamar Axion和賽門鐵克的NetBackup PureDisk都採用基於散列(hash)的重複數據刪除技術來減少通過WAN傳送備份所需要的頻寬。
首先,像生成增量備份的傳統備份套用技術一樣,新一代的備份套用技術也採用常用的辦法如歸檔位,最後修改的日期,並且檔案系統更改從最後一次備份起已經發生改變的檔案ID日誌。然後它們將檔案切成更小的塊並且為每個塊生成散列(hash)。
然後,將這些散列(hash)與已經備份在本地的數據塊的散列(hash)對象進行比較。沒有出現在本地快取和檔案系統元數據中的散列(hash)被傳送到中央備份伺服器,再將數據與散列(hash)表進行比較。如果沒有發現相同的散列,備份伺服器發回一個散列表;然後被備份的伺服器傳送那些散列代表的數據塊到中央伺服器進行保存。
與對被備份到多個目標的伺服器數據(它們甚至被備份到整個企業的各個目標)進行“重複刪除”的備份方案相比,上述這些備份方案縮減數據的程度更高。例如,如果CEO傳送100 MB的PowerPoint檔案到500個分支機構,只有第一個會被備份,所有其它的只會傳送散列到總部並且告知“我們已經收到,謝謝。”
這種方法幾乎避免了影響基於散列的系統的可擴展性問題。因為每個遠程伺服器只保存其本地數據的散列(hash),散列表不會增長到超出可用的空間,中心位置的磁碟I/O系統比傳送備份的WAN 的速度快得多,在磁碟上搜尋一個巨大的散列索引也比傳送數據快得多。
儘管Televaulting, Avamar Axion 和 NetBackup PureDisk 共享一個相似的架構,並且都是根據重複數據刪除存儲的大小進行定價,但是還是存在一些不同的地方。NetBackup PureDisk採用固定的128KB的數據塊,而elevaulting 和 Avamar Axion採用可改變大小的數據塊,這會使重複刪除技術性能更好。PureDisk 支持NetBackup,賽門鐵克承諾未來進行更好的整合,即提供我們希望的可以將重複刪除與數據中心備份工作整合的設備。Asigra也向服務提供商銷售Televaulting產品,以便不想建立自己架構的小企業也可以利用重複刪除技術。
有幾個客戶的報告中都寫到,他們在不對備份流程做大改動的情況下,的確獲得了20:1的縮減比例。小企業可以採用 Asigra, EMC 和賽門鐵克的新一代備份軟體取代傳統的備份方案。中型企業可以採用面向數據中心的備份設備。需要很高備份性能的大型企業可能不得不等待下一代產品了。
不要懼怕衝突
我們之前一直聽說用戶害怕使用基於散列的重複刪除,因為有可能發生散列衝突----兩組數據生成相同的散列,從而導致數據損毀。儘管有因為散列衝突導致數據損毀的風險,但是它發生的機率與每天存在的存儲管理風險相比是非常小的。
重複刪除技術通常採用MD-5 (a 128 位元組的散列) 或 SHA-1 (a 160位元組的散列) 算法。生成相同的MD5散列的兩個隨機數據塊的可能性大約是1/1037。如果一個PB的數據採用 MD-5算法,以平均大小為4KB的數據塊進行“重複刪除”處理,兩個塊生成相同MD-5散列的可能性大約是1/1020。
通過比較,具有一百萬小時MTBF(平均故障間隔時間)的兩個互為鏡像的驅動器在彼此一小時內發生故障的可能性是都是1/1020---比發生散列衝突的機會幾乎高10億倍。通過乙太網或FC傳送的數據受CRC-32檢驗和的保護,其未檢出數據差錯的機率大約是1/4x109。
記住存在散列衝突是很重要,但並不意味著數據會全部丟失。如果重複刪除系統錯誤地把兩個數據塊識別成含有相同數據的塊,當它們不被存儲時,系統會繼續執行操作。但當存儲數據時,數據被錯誤識別的這個檔案會被破壞。所有其它的數據會被正確地恢復。發生散列衝突的機率應該小於行星碰撞或黃石公園大火山噴發的機率。
存在於數據重複刪除中更大的風險是來自硬體故障的災難性的數據損失。因為任何特定的備份工作的數據,實事上,是任何特定的大檔案被切成塊,分散在整個重複數據刪除設備中,它不關心你備份了那個伺服器多少次,如果你在重複刪除設備中損失了一個RAID設定,你會損失很多數據。於是增強的數據保護功能,例如電池備份快取和RAID 6,對重複刪除目標來說,比對基本的存儲套用更重要。

分類

按照部署位置的不同,重複數據刪除可分為源端重複數據刪除和目標端重複數據刪除。源端重複數據刪除是先刪除重複數據,再將數據傳到備份設備。目標端重複數據刪除是先將數據傳到備份設備,存儲時再刪除重複數據。
按照檢查重複數據的算法不同,重複數據刪除可以分為對象/檔案級和塊級的重複數據刪除。對象級的重複數據刪除保證檔案不重複。塊級重複數據刪除則將檔案分成數據塊進行比較。
根據切分數據塊方法的不同,又可分為定長塊和變長塊的重複數據刪除技術。變長塊的重複數據刪除,數據塊的長度是變動的。定長塊的重複數據刪除,數據塊的長度是固定的。
根據套用場合的不同,可以分為通用型重複數據刪除系統和專用型重複數據刪除系統。通用型重複數據刪除系統是指廠商提供通用的重複數據刪除產品,而不是和特定虛擬磁帶庫或備份設備相聯繫。專用型重複數據刪除系統是和特定虛擬磁帶或備份設備相聯繫,一般採取目標端重複數刪除方式。

相關詞條

熱門詞條

聯絡我們