- 產品
- 產品解決方案
- 行業解決方案
- 案例
- 數據資產入表
- 賦能中心
- 伙伴
- 關于
時間:2022-06-15來源:ニ赱過瀏覽數:922次
大數據時代的海量數據管理壓力催生各種方法來治理數據洪流。面對企業數據量的急劇膨脹,需要不斷購置大量的存儲設備來應對不斷增長的存儲需求。然而,單純地提高存儲容量并不能從根本上解決問題。
為阻斷疫情傳播,很多企業選擇居家遠程辦公,多人線上協同辦公也變得流行起來。在協同辦公平臺上,項目負責人將一個文件在工作群進行群發,然后由各個部門人員對所負責的文件內容部分進行編輯,也有用戶需要對文件進行拷貝更名來備份。這會在后臺存儲系統中產生大量該文件的副本與更新版本,由此導致的數據爆炸式增長給線上協同辦公平臺存儲管理帶來極大的技術挑戰。

圖1. 遠程協同辦公
大數據時代的海量數據管理壓力催生各種方法來治理數據洪流。面對企業數據量的急劇膨脹,需要不斷購置大量的存儲設備來應對不斷增長的存儲需求。然而,單純地提高存儲容量并不能從根本上解決問題。
跟隨數據量增長的存儲設備采購開支、存儲管理成本和數據中心能耗使企業越來越難以承擔。特別是海量數據存儲管理的復雜性,容易造成存儲資源浪費和利用效率不高。因此,為解決信息的急劇增長問題,堵住數據“井噴”,基于數據縮減的高效存儲理念由此而生。
數據縮減技術能夠有效地刪除數據冗余提升存儲空間利用率的技術,主要包括:數據壓縮(Data Compression)、差分壓縮(Delta Compression)和重復數據刪除(Data Deduplication)三類技術。
數據壓縮(Data Compression)是指采用編碼方式用更少的比特位來表示數據對象內原始信息的技術。數據壓縮的方式非常多,根據壓縮后是否損失信息可分為無損壓縮和有損壓縮兩大類。無損壓縮是通過確定和刪除統計冗余來減少數據對象存儲的比特位。由于數據統計冗余度的理論限制,無損壓縮的壓縮比一般比較低,被廣泛應用于文本數據、程序和特殊應用場合的圖像數據等需要精確存儲數據的壓縮。
典型的無損壓縮算法有:香農-范諾編碼(Shannon-Fano Coding)、霍夫曼編碼(Huffman Coding)、算術編碼(Arithmetic Coding)、游程編碼(Run-Length Coding)、詞典編碼(Dictionary Coding)等;詞典編碼算法中的Lempel-Ziv(LZ)壓縮方法是最流行的無損壓縮算法,被廣泛地應用于WinRAR、GZIP和GIF等壓縮軟件。
有損壓縮通過發現和刪除數據對象中不重要的信息來減少存儲所需的比特位。它利用了人類視覺、聽覺對圖像、聲音中的某些頻率成分不敏感的特性,允許壓縮的過程中損失一定的信息。雖然不能完全恢復原始數據,但是所損失的部分對理解原始圖像的影響較小,卻換來了比較大的壓縮比,被廣泛應用于語音、圖像和視頻數據的壓縮。由于刪除數據對象內部冗余的本質,數據壓縮僅能獲得有限的數據縮減率。經典的有損壓縮算法有圖像壓縮領域的JPEG標準和視頻壓縮領域的MPEG標準等。
差分壓縮是通過開發數據對象間相似性來壓縮數據對象存儲空間的技術。它能夠定位兩個相似的數據對象中的共同數據內容,并按它們存儲的先后分為舊版本和新版本。
通過差分算法可以獲得反映數據對象新舊版本之間差異數據內容,再通過對差異數據內容進行無損壓縮生成差分對象;數據對象的新版本可以由舊版本和差分對象解壓生成的差異數據內容聯合生成。由于差分對象編碼后往往可以遠小于原數據對象,差分壓縮能夠有效地縮減數據對象的存儲空間。
為了確定兩個數據對象是否相似的算法有很多,比如計算數據對象內多個固定窗口內容中的弱哈希值,選取幾個最小或最大的哈希值作為特征來比較和判斷兩個數據對象是否相似。如果兩個數據對象有相同的相似特征則認為它們的內容十分相似。相比于數據壓縮,差分壓縮通過額外的計算開銷和內存資源開銷能夠發現和消除更多的數據冗余。目前,具有代表性的差分壓縮方法有XDelta算法和ZDelta算法。
重復數據刪除技術是一種大范圍消除粗粒度數據冗余的快速數據縮減技術。它通過將文件或數據流劃分為若干數據對象,并對各個數據對象進行加密哈希指紋計算,基于數據對象指紋的索引查詢檢測出數據流中相同的數據對象,只傳輸或者存儲唯一的數據對象副本,并使用指向唯一副本的指針替換其他副本。我們可以根據操作處理的粒度、位置、時機、節點數、范圍和效果等標準對重復數據刪除技術進行不同的分類。

圖2. 重復數據刪除技術成熟度曲線圖
參考Ganter的存儲技術成熟度曲線,我們畫出了圖2所示的重復數據刪除技術成熟度曲線。重復數據刪除相關技術研究早在上世紀90年代就被各國學者廣泛研究,主要圍繞數字文檔中的副本和重復內容檢測進行深入研究。2000年左右,出現了不少重復數據刪除技術研究工作,不僅有通過檢測重復和相似數據減少數據冗余以節省存儲空間,還有利用重復數據刪除思想提升因特網帶寬受限下的數據傳輸性能。2006年圖靈獎得主Jim Gray提出觀點“磁帶已死,磁盤是新磁帶,閃存是新磁盤,隨機存儲器局部性是為王道”。當隨機訪問的硬盤代替順序訪問的磁帶,備份和歸檔存儲系統可以獲得相當驚人的速度提升,但成本卻很難跟磁帶庫媲美?;谥貜蛿祿h除的磁盤存儲剛好可以彌補這一缺陷,通過節省容量使磁盤備份變得高速又經濟適用,作為新一代數據保護存儲興起并可能代替磁帶庫。近十年來,重復數據刪除技術已經成為存儲與網絡方向的學術研究熱點,在產業界也獲得廣泛應用,幾乎所有存儲企業都有推出重復數據刪除技術相關存儲產品。當前移動終端的普及使得數據上云需求提升明顯,重復數據刪除技術對數據上云也至關重要,不僅能夠節省用戶的數據云存儲成本,還能避免重復數據傳輸提升網絡帶寬利用率。

圖3. 數據縮減技術示例
如圖3所示,數據縮減技術可以將數據集中重復數據塊、相似數據塊甚至重復字節分別通過重復數據刪除、差分壓縮和壓縮分別進行的存儲空間縮減。在邏輯空間內,文件1劃分為1和2號數據塊,文件2劃分為3、4、5號數據塊,塊2和塊3內容相同,塊1和塊5相似,塊4含有大量重復字節。在物理空間里,重復數據刪除可以避免存儲塊2,而差分壓縮可以根據塊5計算出塊1的差分塊。由于塊1與塊5的差異內容壓縮后的差分塊很小,可與塊4壓縮后合并存儲在同一數據塊的空間內。
我們可以將重復數據刪除技術與數據壓縮、差分壓縮進行對比分析。這三種技術在本質上都是通過檢索冗余數據并采用更短的指針來表示來實現縮減數據容量。它們的區別關鍵在于:技術基礎、消除冗余范圍、發現冗余方法、冗余粒度、性能瓶頸、具體實現方法、平均壓縮率和安全隱患等諸多方面的不同,如表1所述。
數據壓縮技術的前提是信息的數據表達存在冗余,以信息論研究作為基礎;而重復數據刪除的實現依賴數據塊的重復出現,差分壓縮的實現依賴于數據塊之間的相似性,都是數據縮減能力由數據集本身決定的實踐性技術。數據壓縮技術主要根據一些固定的模式字符串匹配來編碼減少文件的大小,一般只能對存儲卷內的單個文件起作用;而重復數據刪除技術和差分壓縮均可以作用在文件系統的共享數據集內,但前者是基于數據塊指紋匹配查詢消除在存儲系統中文件之間以及文件內的相同數據對象,后者則是基于數據塊相似性檢測消減存儲系統中相似的數據對象。
數據壓縮是工作在字節級,由于僅在文件內比對處理,統計平均數據縮減率約為2:1。而重復數據刪除和差分壓縮都是對KB級數據塊的粗粒度進行全局文件系統范圍內的分析,但差分壓縮一般為定長分塊,而重復數據刪除可以為變長分塊,使得差分壓縮的統計平均數據縮減率約為3:1,重復數據刪除則約為20:1。從在數據縮減處理性能瓶頸上看,數據壓縮的瓶頸在于字符串匹配;差分壓縮的瓶頸不僅在于相似特征匹配,還有隨著壓縮數據越來越多的數據重建過程也會變得很慢;重復數據刪除處理的數據變長分塊、塊指紋計算及對比都容易成為處理瓶頸。
不同于其他兩種技術,重復數據刪除技術因為使用加密哈希計算塊指紋來標識數據塊,存在因為哈希沖突而丟失數據的安全隱患。具體實現起來數據壓縮已有技術標準,可直接對流式數據進行處理,透明地作用于存儲系統或網絡系統;而重復數據刪除和差分壓縮現在還沒有達成統一標準,需要對應用進行修改,難以做到透明實現,更多地以產品形態出現,如存儲系統、文件系統或應用系統。
表1. 數據縮減技術特征比對
|
特征 |
數據壓縮 |
差分壓縮 |
重復數據刪除 |
|
技術基礎 |
信息論 |
相似數據塊 |
重復數據塊 |
|
消除冗余范圍 |
單個文件 |
文件系統 |
文件系統 |
|
發現冗余方法 |
字符串匹配 |
相似性檢測 |
塊指紋匹配 |
|
冗余粒度大小 |
字節級 |
數據塊級 |
數據塊級 |
|
處理性能瓶頸 |
字符串匹配 |
特征匹配和數據重建 |
數據分塊、塊指紋計算與比對 |
|
數據安全問題 |
數據不丟失 |
數據不丟失 |
存在哈希碰撞而丟失數據的隱患 |
|
具體實現方法 |
有技術標準,可透明地用于存儲系統或網絡系統 |
無技術標準,難以透明實現,以產品形態出現 |
無技術標準,難以透明實現,以產品形態出現 |
|
平均縮減率 |
低(~2:1) |
較低(~3:1) |
高(~20:1) |
在實際應用中,重復數據刪除技術往往結合數據壓縮或差分壓縮以最大限度地縮減數據存儲容量,提高資源利用率。值得一提的是,在同時應用數據壓縮或差分壓縮和重復數據刪除技術時,為了降低對系統的處理需求和提高數據壓縮比率,通常需要先應用重復數據刪除技術,然后再使用數據壓縮技術進一步降低元數據和唯一數據對象的存儲空間。如果順序顛倒會出現什么樣的結果呢?壓縮會對數據進行重新編碼,從而破壞了數據原生的冗余結構,因此再應用重復數據刪除效果則會大打折扣,而且消耗時間也更多。而先執行重復數據刪除則首先消除了冗余數據塊,然后應用數據壓縮對唯一數據塊進行再次壓縮。這樣,兩種技術的數據縮減作用得到疊加,而且數據壓縮的消耗時間大大降低。因此,先進行重復數據刪除處理,再進行數據壓縮或差分壓縮,可以獲得更高的數據壓縮率和性能。