隨著信息化技術的發展和深入,企業對數據的依賴不斷增強。與此同時,急速增長的數據量也給管理和使用都帶來了全新的挑戰。IDC最新報告顯示,2007年新增數據量(281 ExaByte)已經超過所有可用存儲介質總容量(264 ExaByte)約6%,并預計2011年數據總量將達到2006年的10倍。面對數據的爆炸性增長,僅僅提高系統運算能力和增加存儲介質容量已經不能滿足高速發展的各種數據應用,對高效數據縮減技術的需求已經逐步顯現出來,并且越來越迫切。
目前能夠實現數據縮減的技術主要有兩種:數據壓縮(Data Compression)和重復數據刪除(Data De-duplication)。簡單來說,數據壓縮技術通過對數據重新編碼來降低其冗余度(redundancy);而重復數據刪除技術則著眼于刪除重復出現的數據塊。
數據壓縮
數據壓縮的起源可以追溯到信息論之父香農(Shannon)在1947年提出的香農編碼。1952年霍夫曼(Huffman)提出了第一種實用性的編碼算法實現了數據壓縮,該算法至今仍在廣泛使用。1977年以色列數學家Jacob Ziv 和Abraham Lempel提出了一種全新的數據壓縮編碼方式,Lempel-Ziv系列算法(LZ77和LZ78,以及若干變種)憑借其簡單高效等優越特性,最終成為目前主要數據壓縮算法的基礎。
Lempel-Ziv系列算法的基本思路是用位置信息替代原始數據從而實現壓縮,解壓縮時則根據位置信息實現數據的還原,因此又被稱作“字典式”編碼。目前存儲應用中壓縮算法的工業標準(ANSI、QIC、IETF、FRF、TIA/EIA)是LZS(Lempel-Ziv-Stac),由Stac公司提出并獲得專利,當前該專利權的所有者是Hifn, Inc.
LZS算法基于LZ77(如圖一)實現,主要由兩部分構成,滑窗(Sliding Window)和自適應編碼(Adaptive Coding)。壓縮處理時,在滑窗中查找與待處理數據相同的塊,并用該塊在滑窗中的偏移值及塊長度替代待處理數據,從而實現壓縮編碼。如果滑窗中沒有與待處理數據塊相同的字段,或偏移值及長度數據超過被替代數據塊的長度,則不進行替代處理。LZS算法的實現非常簡潔,處理比較簡單,能夠適應各種高速應用。
![]() |
圖一 LZ77算法示意圖
|
數據壓縮的應用可以顯著降低待處理和存儲的數據量,一般情況下可實現2:1 ~ 3:1的壓縮比。
重復數據刪除
在備份、歸檔等實際的存儲實踐中,人們發現有大量的重復數據塊存在,既占用了傳輸帶寬又消耗了相當多的存儲資源:有些新文件只是在原有文件上作了部分改動,還有某些文件存在著多份拷貝,如果對所有相同的數據塊都只保留一份實例,實際存儲的數據量將大大減少——這就是重復數據刪除技術的基礎。
這一做法最早由普林斯頓大學李凱教授(DataDomain的三位創始人之一)提出,稱之為全局壓縮(Global Compression),并作為容量優化存儲(Capacity Optimized Storage, COS)推廣到商業應用。目前,除了DataDomain等專門廠商外,各主要存儲廠商如EMC、IBM、Symantec、FalconStor等等也都通過收購或研發等途徑擁有了各自的重復數據刪除技術,有的還并冠以別名,如單示例存儲(Single Instance Repository,SIR)等。
重復數據刪除的實現由三個基本操作組成,如圖二。首先,待處理數據(文件)被分割成固定或可變大小的數據塊,同時生成一張“結構圖”顯示這些數據塊怎樣組成完整的原數據(文件);然后計算各數據塊的“指紋”(標識),并根據“指紋”確認該數據塊是否與其它數據塊相同;最后,丟棄重復出現的數據塊,并將“結構圖”作為原始數據(文件)存儲。
重復數據刪除的實現由三個基本操作組成,如圖二。首先,待處理數據(文件)被分割成固定或可變大小的數據塊,同時生成一張“結構圖”顯示這些數據塊怎樣組成完整的原數據(文件);然后計算各數據塊的“指紋”(標識),并根據“指紋”確認該數據塊是否與其它數據塊相同;最后,丟棄重復出現的數據塊,并將“結構圖”作為原始數據(文件)存儲。
![]() |
圖二 重復數據刪除原理 |
重復數據刪除技術的關鍵在于數據塊“指紋”的生成和鑒別。數據塊“指紋”是鑒別數據塊是否重復的依據,如果不同數據塊的“指紋”相同,就會造成內容丟失,產生不可恢復的嚴重后果。在目前的實際應用中,一般都選擇MD5或SHA-1等標準雜湊(hash)算法生成的數據塊的摘要(digest)作為“指紋”,以區分不同數據塊間存在的差異,從而保證不同數據塊之間不會發生沖突。但是,MD5,SHA-1等算法的計算過程非常復雜,純軟件計算很難滿足存儲應用的性能需求,“指紋”的計算往往成為重復數據刪除應用的性能瓶頸。
目前,各廠商對各自重復數據刪除技術的效用都有不同描述,一般都聲稱能將數據量減少到原數據的3% ~ 5%,即具有20:1 ~ 30:1的壓縮比。
數據壓縮和重復數據刪除技術都著眼于減少數據量,其差別在于數據壓縮技術的前提是信息的數據表達存在冗余,以信息論研究作為基礎;而重復數據刪除的實現依賴數據塊的重復出現,是一種實踐性技術。這兩種技術具有不同層面的針對性,并能夠結合起來使用,從而實現更高的數據縮減比例(40:1 ~ 90:1)。需要注意的是,如果同時應用數據壓縮和重復數據刪除技術,為了降低對系統的處理需求,通常需要先應用數據刪除技術,然后再使用數據壓縮技術進一步降低“結構圖”和基本數據塊的體積。
在歸檔應用中,存儲的數據主要是文件在不同時間的各個歷史版本,版本間的差異通常并不是很大,文件中往往有相當一部分內容并未發生改變,重復數據刪除技術因而具有較大的應用空間和效能;同時,作為有特定意義的文件內容,使用數據壓縮技術通常也可以獲得2:1以上的壓縮比。因此,針對歸檔應用,集成重復數據刪除和數據壓縮技術將可帶來顯著且可以預期的好處,實現90%以上的整體數據量縮減。
需要注意的是,由于數據壓縮和重復數據刪除技術都系統處理能力有較高要求,為了保證整體性能,在預算允許的范圍內,應該注意選擇具有相關硬件加速的方案。目前,市場上能夠同時具有壓縮和雜湊算法的解決方案并不多,主要由LZS算法的專利擁有者Hifn, Inc提供。除了常見的標準加密和摘要算法,Hifn的安全處理器和相應加速卡基本都集成有壓縮處理能力,提供20MB/s ~ 250MB/s的處理能力。最近還專門推出了DR 250/255數據縮減加速卡,通過PCI-X和PCI-Express接口為存儲系統提供250MB/s的數據壓縮和摘要計算加速,并能夠同時進行加密或解密處理,使系統能夠在實現數據縮減的同時,提高對數據的保護級別。據稱,Hifn下一代數據縮減產品處理能力將達到1.6GB/s,并支持IEEE P1619/1619.1標準的磁盤/磁帶加密,計劃將于今年下半年正式推向市場。
本文出自 51CTO.COM技術博客