什麼是重複資料刪除技術(轉帖)
一種資料縮減技術,通常用於基於磁碟的備份系統,旨在減少儲存系統中使用的儲存容量。它的工作方式是在某個時間週期內查詢不同檔案中不同位置的重複可變大小資料塊。重複的資料塊用指示符取代。高度冗餘的資料集(例如備份資料)從資料重複刪除技術的獲益極大;使用者可以實現10比1至50比1的縮減比。而且,重複資料刪除技術可以允許使用者的不同站點之間進行高效,經濟的備份資料複製。[@more@]
備份裝置中總是充斥著大量的冗餘資料。為了解決這個問題,節省更多空間,“重複刪除”技術便順理成章地成了人們關注的焦點。採用“重複刪除”技術可以將儲存的資料縮減為原來的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,對重複刪除目標來說,比對基本的儲存應用更重要。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-1011700/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- T-SQL技術收集——刪除重複資料SQL
- 刪除重複資料
- mongodb刪除重複資料MongoDB
- MySQL刪除重複資料MySql
- 刪除重複資料的幾個方法(轉)
- 刪除表裡重複資料
- sqlserver中刪除重複資料SQLServer
- PostgreSQL刪除表中重複資料SQL
- 解析postgresql 刪除重複資料案例SQL
- Oracle查詢重複資料與刪除重複記錄Oracle
- oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄) 轉Oracle
- 【轉】oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄)Oracle
- MS SQL Server 刪除重複行資料SQLServer
- T-SQL 刪除重複資料SQLSQL
- 海量資料處理_刪除重複行
- 根據rowid刪除重複資料
- 通過ROWID刪除重複資料
- Oracle中刪除重複資料的SqlOracleSQL
- mysql 刪除表中重複的資料MySql
- excel刪除重複資料保留一條 如何刪掉重複資料只留一條Excel
- image是什麼資料夾可以刪除嗎
- mysql查詢表裡的重複資料方法和刪除重複資料MySql
- Oracle查詢重複資料與刪除重複記錄方法Oracle
- 資料網格技術是什麼
- ORACLE批量刪除無主鍵重複資料Oracle
- Python 字串,list排序,刪除重複資料Python字串排序
- Mongodb 刪除重複資料的幾個方法MongoDB
- oracle重複資料的查詢及刪除Oracle
- oracle 刪除重複資料的幾種方法Oracle
- Oracle 刪除重複資料只留一條Oracle
- Oracle中刪除表中的重複資料Oracle
- users是什麼資料夾可以刪除嗎 可以複製到D盤嗎
- perflogs是什麼資料夾可以刪除嗎
- customemotions是什麼資料夾可以刪除嗎
- documents是什麼資料夾 documents資料夾可以刪除嗎
- drivers是什麼資料夾 drivers資料夾可以刪除嗎
- oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄)Oracle
- 使用Java Stream API中DistinctBy刪除重複資料JavaAPI