但是今天,我們的磁盤備份設備的容量已經(jīng)趨于飽和,在數(shù)據(jù)中心已經(jīng)沒有足夠的空間來備份PT級的數(shù)據(jù),在這種情況下,當我們希望將備份數(shù)據(jù)保存一個月時,卻只能保存兩到三天。問題是在我們的備份設備中有太多的重復數(shù)據(jù)。現(xiàn)在終于有了解決這個問題的辦法,善于抓住機會賺錢的廠商們聲稱他們的新一代“刪除重復數(shù)據(jù)”產(chǎn)品可以按20:1,甚至300:1的比例縮減我們需要存儲的數(shù)據(jù)量。果真如此嗎?讓我們仔細看看。
重復數(shù)據(jù)刪除技術支持在已有的磁盤設備上存儲更多的備份數(shù)據(jù)。因此采用“重復數(shù)據(jù)刪除”技術可以增加您保存?zhèn)浞輸?shù)據(jù)的時間,減少數(shù)據(jù)中心的消耗,降低成本。如果您刪除重復數(shù)據(jù)后再通過WAN發(fā)送,那么您就能夠節(jié)省大量的帶寬,并且可以取代磁帶實現(xiàn)網(wǎng)上離線備份。重復數(shù)據(jù)刪除技術唯一的缺點是備份速度變慢。
源起
當您的備份程序在網(wǎng)絡中多次從同一目錄下備份相同的文件,或者從多個地址處備份相同的文件時,重復的數(shù)據(jù)在臨時區(qū)域進行備份。大部分網(wǎng)絡上的重復數(shù)據(jù)量令人吃驚,這些數(shù)據(jù)從56個用戶保存在他們本地目錄下的假日聚會的PDF格式邀請函,到每個服務器的系統(tǒng)驅動器上3GB Windows文件,真是包羅萬象,應有盡有。
解決臨時區(qū)域內文件重復的方案是增量備份。盡管我們很喜歡這樣做,尤其是喜歡選擇Tivoli Storage Manager 采用的永久增量備份的方法,但當我們考慮到RAID災難恢復時,我們想到的是重復數(shù)據(jù)刪除,而不是增量備份。增量備份主要是避免重復。
重復數(shù)據(jù)刪除最基本的形式是出現(xiàn)在CAS(內容尋址存儲)設備中的單一實例存儲(single-instance store),例如,EMC的 Centera。當每個文件存儲到CAS系統(tǒng)上時,CAS系統(tǒng)會為存儲的文件內容生成一個散列(hash);如果系統(tǒng)中已經(jīng)存在具有相同散列(hash)的文件,系統(tǒng)就會再創(chuàng)建一個表示副本的指針指向已存在的文件,而不是保存另一個副本。
微軟Windows Storage Server的最新版本,Windows服務器的OEM NAS(網(wǎng)絡附加存儲)版本,采用了與刪除重復文件略微不同的方法。當寫入數(shù)據(jù)時,WSS不識別重復文件,而是運行一個后臺程序SIS (單一實例存儲) Groveler,該程序通過部分文件散列函數(shù)(采用二進制比較法)識別重復文件,將重復文件移到公用存儲區(qū),原始位置上的文件用連接到公用存儲區(qū)文件的鏈接代替。
盡管文件級SIS能夠節(jié)省一些空間,但是如果我們不只消除重復文件而且還消除了文件內存儲的重復數(shù)據(jù),那事情可就變得讓人有興趣了。想想Outlook的 .PST文件。例如一個典型的Outlook用戶可以擁有300-MB或更大的.PST文件,文件上保存著他過去所有的電子郵件;每天他都會收到一個或更多新的郵件,就因為那天他的.PST文件改變了,你的備份程序就把這個.PST文件包括在增量備份里了,即使這個300MB的文件只有25 KB 的改變。
重復數(shù)據(jù)刪除產(chǎn)品能夠識別這個25 KB的新數(shù)據(jù),并且剔除其余沒有改變的舊的數(shù)據(jù),只保存25 KB的新數(shù)據(jù),從而節(jié)省大量磁盤空間。再進一步設想一下,550KB的附件在20個用戶的 .PST文件內,如果它們能夠被消除,您就可以縮減大量的數(shù)據(jù)。象下述這樣的一組解決方案是Data Domain倡導的采用“重復數(shù)據(jù)刪除”技術進行備份的目標。即這些采用“重復刪除”技術的設備管理 VTL (虛擬磁帶庫) 或 NAS等備份設備,它們從這些備份應用設備(VTL或NAS設備等)中獲取數(shù)據(jù),透明地執(zhí)行“重復刪除”處理。
執(zhí)行重復數(shù)據(jù)刪除的方法
廠商采納的執(zhí)行重復數(shù)據(jù)刪除的基本方法有三種。第一種是基于散列(hash)的方法,Data Domain、飛康、昆騰的DXi系列設備都是采用SHA-1, MD-5 等類似的算法將這些進行備份的數(shù)據(jù)流斷成塊并且為每個數(shù)據(jù)塊生成一個散列(hash)。如果新數(shù)據(jù)塊的散列(hash)與備份設備上散列索引中的一個散列匹配,表明該數(shù)據(jù)已經(jīng)被備份,設備只更新它的表,以說明在這個新位置上也存在該數(shù)據(jù)。
基于散列(hash)的方法存在內置的可擴展性問題。為了快速識別一個數(shù)據(jù)塊是否已經(jīng)被備份,這種基于散列(hash)的方法會在內存中擁有散列(hash)索引。當被備份的數(shù)據(jù)塊數(shù)量增加時,該索引也隨之增長。一旦索引增長超過了設備在內存中保存它所支持的容量,性能會急速下降,同時磁盤搜索會比內存搜索更慢。因此,目前大部分基于散列(hash)的系統(tǒng)都是獨立的,可以保持存儲數(shù)據(jù)所需的內存量與磁盤空間量的平衡,這樣,散列(hash)表就永遠不會變得太大。
第二種方法是基于內容識別的重復刪除,這種方法主要是識別記錄的數(shù)據(jù)格式。它采用內嵌在備份數(shù)據(jù)中的文件系統(tǒng)的元數(shù)據(jù)識別文件;然后與其數(shù)據(jù)存儲庫中的其它版本進行逐字節(jié)地比較,找到該版本與第一個已存儲的版本的不同之處并為這些不同的數(shù)據(jù)創(chuàng)建一個增量文件。這種方法可以避免散列(hash)沖突(請參閱下面的“不要懼怕沖突”),但是需要使用支持的備份應用設備以便設備可以提取元數(shù)據(jù)。
ExaGrid Systems的InfiniteFiler就是一個基于內容識別的重復刪除設備,當備份數(shù)據(jù)時,它采用CommVault Galaxy 和Symantec Backup Exec等通用的備份應用技術從源系統(tǒng)中識別文件。完成備份后,它找出已經(jīng)被多次備份的文件,生成增量文件(deltas)。多個 InfiniteFilers合成一個網(wǎng)格,支持高達30 TB的備份數(shù)據(jù)。采用重復刪除方法的ExaGrid在存儲一個1GB的 .PST文件類的新信息時表現(xiàn)優(yōu)異,但它不能為多個不同的文件消除重復的數(shù)據(jù),例如在四個.PST文件具有相同的附件的情況下。
Sepaton 的用于它的VTL 的DeltaStor也采用內容識別方法,但是它將新文件既與相同位置上的以前的文件版本進行比較,同時也與從其它位置上備份的文件版本進行比較,因此它能夠消除所有位置上的重復數(shù)據(jù)。
第三種方法是Diligent Technologies用于其ProtecTier VTL的技術,它像基于散列(hash)的產(chǎn)品那樣將數(shù)據(jù)分成塊,并且采用自有的算法決定給定的數(shù)據(jù)塊是否與其它的相似。然后與相似塊中的數(shù)據(jù)進行逐字節(jié)的比較,以判斷該數(shù)據(jù)塊是否已經(jīng)被備份。
硬件或軟件
各大廠商除了采用的方法不同外,他們物理架構的備份目標也不同。Data Domain、ExaGrid 和昆騰是包含磁盤陣列的monolithic appliances(單塊集成電路設備)。 Data Domain和昆騰有NAS或VTL接口,而ExaGrid就是一個NAS設備。Diligent和FalconStor銷售的是軟件產(chǎn)品,運行在Intel 或 Opteron服務器上。
盡管帶有VTL接口的備份設備看起來更高級并且更易于與現(xiàn)存的基于磁帶的備份環(huán)境集成,但是采用NAS 接口,會為您的備份應用提供更多的控制。當備份文件過了保存期時,一些像賽門鐵克的NetBackup之類的備份產(chǎn)品能夠從它們的磁盤存儲庫中刪除這些過了保存期的備份文件。當重復刪除的NAS設備發(fā)現(xiàn)這個刪除行為時,它可以重新分配它的自由空間和散列(hash)索引。而對于VTL接口的設備來說,因為您沒有刪除磁帶,所以無法在VTL上釋放出空間,直到虛擬磁帶被復寫,空間才能得以釋放。
當然,在1TB的空間內容納25TB的數(shù)據(jù)是要付出一些代價的,不只是在金錢方面。將數(shù)據(jù)切成塊并進行索引來消除重復數(shù)據(jù)的所有工作會使備份速度減慢。Overland REO 9000 等中級VTL的數(shù)據(jù)備份速度是300 MBps甚至更快些。Diligent在其ProtecTier上已經(jīng)具有200-MBps的備份速度,但是需要一個四核Opteron服務器來實現(xiàn),該服務器前端是裝有100多個磁盤驅動器的陣列。
其它廠商解決該問題的辦法是把重復數(shù)據(jù)刪除當做一個獨立的過程在備份后運行。在一個系統(tǒng)上運行FalconStor的 VTL 軟件,進行備份的數(shù)據(jù)被寫到一個壓縮的虛擬磁帶文件而不是一個刪除重復的虛擬磁帶文件上。然后在后臺將數(shù)據(jù)流切成塊,消除重復數(shù)據(jù)并且創(chuàng)建虛擬磁帶,該虛擬磁帶是執(zhí)行刪除重復數(shù)據(jù)塊在原虛擬磁帶上的索引。一旦虛擬磁帶的數(shù)據(jù)執(zhí)行了刪除重復處理,它所占有的空間就返回到可用的空間池。Sepaton的DeltaStor和 ExaGrid也把它們的重復刪除當成一個后備份過程來執(zhí)行。
盡管后處理能夠提高備份速度,但同樣也要消耗成本。執(zhí)行后處理重復刪除的系統(tǒng)必須有足夠的磁盤空間,因為除了刪除重復的數(shù)據(jù)外,它還需要保存全部標準的備份。如果您希望繼續(xù)執(zhí)行每周的全天增量備份的計劃,那么一個在后臺進行重復刪除處理的系統(tǒng)上,你可能需要雙倍多的磁盤空間來保存全部的備份直到處理完成為止。
正因為重復刪除在后臺運行,所以千萬不要忽視重復刪除的性能。例如,如果到星期一的晚上您開始再次備份您的服務器時,您的VTL還沒有完成對周末備份的處理,這時您會遇到您不想看到的情況,如磁盤空間不可用或重復刪除處理使您的備份速度變慢等。
節(jié)省帶寬
子文件重復刪除技術不僅用于在備份應用中節(jié)省磁盤空間。新一代的備份應用,包括Asigra的 Televaulting,EMC的 Avamar Axion和賽門鐵克的NetBackup PureDisk都采用基于散列(hash)的重復數(shù)據(jù)刪除技術來減少通過WAN發(fā)送備份所需要的帶寬。
首先,像生成增量備份的傳統(tǒng)備份應用技術一樣,新一代的備份應用技術也采用常用的辦法如歸檔位,最后修改的日期,并且文件系統(tǒng)更改從最后一次備份起已經(jīng)發(fā)生改變的文件ID日志。然后它們將文件切成更小的塊并且為每個塊生成散列(hash)。
然后,將這些散列(hash)與已經(jīng)備份在本地的數(shù)據(jù)塊的散列(hash)對象進行比較。沒有出現(xiàn)在本地緩存和文件系統(tǒng)元數(shù)據(jù)中的散列(hash)被發(fā)送到中央備份服務器,再將數(shù)據(jù)與散列(hash)表進行比較。如果沒有發(fā)現(xiàn)相同的散列,備份服務器發(fā)回一個散列表;然后被備份的服務器發(fā)送那些散列代表的數(shù)據(jù)塊到中央服務器進行保存。
與對被備份到多個目標的服務器數(shù)據(jù)(它們甚至被備份到整個企業(yè)的各個目標)進行“重復刪除”的備份方案相比,上述這些備份方案縮減數(shù)據(jù)的程度更高。例如,如果CEO發(fā)送100 MB的PowerPoint文件到500個分支機構,只有第一個會被備份,所有其它的只會發(fā)送散列到總部并且告知“我們已經(jīng)收到,謝謝。”
這種方法幾乎避免了影響基于散列的系統(tǒng)的可擴展性問題。因為每個遠程服務器只保存其本地數(shù)據(jù)的散列(hash),散列表不會增長到超出可用的空間,中心位置的磁盤I/O系統(tǒng)比傳送備份的WAN 的速度快得多,在磁盤上搜索一個巨大的散列索引也比發(fā)送數(shù)據(jù)快得多。
盡管Televaulting, Avamar Axion 和 NetBackup PureDisk 共享一個相似的架構,并且都是根據(jù)重復數(shù)據(jù)刪除存儲的大小進行定價,但是還是存在一些不同的地方。NetBackup PureDisk采用固定的128KB的數(shù)據(jù)塊,而elevaulting 和 Avamar Axion采用可改變大小的數(shù)據(jù)塊,這會使重復刪除技術性能更好。PureDisk 支持NetBackup,賽門鐵克承諾未來進行更好的整合,即提供我們希望的可以將重復刪除與數(shù)據(jù)中心備份工作整合的設備。Asigra也向服務提供商銷售Televaulting產(chǎn)品,以便不想建立自己架構的小企業(yè)也可以利用重復刪除技術。
有幾個客戶的報告中都寫到,他們在不對備份流程做大改動的情況下,的確獲得了20:1的縮減比例。小企業(yè)可以采用 Asigra, EMC 和賽門鐵克的新一代備份軟件取代傳統(tǒng)的備份方案。中型企業(yè)可以采用面向數(shù)據(jù)中心的備份設備。需要很高備份性能的大型企業(yè)可能不得不等待下一代產(chǎn)品了。
不要懼怕沖突
我們之前一直聽說用戶害怕使用基于散列的重復刪除,因為有可能發(fā)生散列沖突—-兩組數(shù)據(jù)生成相同的散列,從而導致數(shù)據(jù)損毀。盡管有因為散列沖突導致數(shù)據(jù)損毀的風險,但是它發(fā)生的概率與每天存在的存儲管理風險相比是非常小的。
重復刪除技術通常采用MD-5 (a 128 字節(jié)的散列) 或 SHA-1 (a 160字節(jié)的散列) 算法。生成相同的MD5散列的兩個隨機數(shù)據(jù)塊的可能性大約是1/1037。如果一個PB的數(shù)據(jù)采用 MD-5算法,以平均大小為4KB的數(shù)據(jù)塊進行“重復刪除”處理,兩個塊生成相同MD-5散列的可能性大約是1/1020。
通過比較,具有一百萬小時MTBF(平均故障間隔時間)的兩個互為鏡像的驅動器在彼此一小時內發(fā)生故障的可能性是都是1/1020—比發(fā)生散列沖突的機會幾乎高10億倍。通過以太網(wǎng)或FC發(fā)送的數(shù)據(jù)受CRC-32檢驗和的保護,其未檢出數(shù)據(jù)差錯的概率大約是1/4×109。
記住存在散列沖突是很重要,但并不意味著數(shù)據(jù)會全部丟失。如果重復刪除系統(tǒng)錯誤地把兩個數(shù)據(jù)塊識別成含有相同數(shù)據(jù)的塊,當它們不被存儲時,系統(tǒng)會繼續(xù)執(zhí)行操作。但當存儲數(shù)據(jù)時,數(shù)據(jù)被錯誤識別的這個文件會被破壞。所有其它的數(shù)據(jù)會被正確地恢復。發(fā)生散列沖突的概率應該小于行星碰撞或黃石公園大火山噴發(fā)的概率。
存在于數(shù)據(jù)重復刪除中更大的風險是來自硬件故障的災難性的數(shù)據(jù)損失。因為任何特定的備份工作的數(shù)據(jù),實事上,是任何特定的大文件被切成塊,分散在整個重復數(shù)據(jù)刪除設備中,它不關心你備份了那個服務器多少次,如果你在重復刪除設備中損失了一個RAID設置,你會損失很多數(shù)據(jù)。于是增強的數(shù)據(jù)保護功能,例如電池備份緩存和RAID 6,對重復刪除目標來說,比對基本的存儲應用更重要。