您好,登錄后才能下訂單哦!
2.重刪的基本概念
重刪是一門非常老的學問,歷史上有很多人研究過數據重刪,這里就不介紹了。
這里我們借用維基百科來快速了解一下重刪技術:
詳見https://en.wikipedia.org/wiki/Data_deduplication {在計算中,重復數據刪除是一種專門的數據壓縮技術,用于消除重復數據的重復副本。相關和稍微同義的術語是智能(數據)壓縮和單實例(數據)存儲。此技術用于提高存儲利用率,還可以應用于網絡數據傳輸,以減少必須發送的字節數。在重復數據刪除過程中,在分析過程中識別并存儲唯一的數據塊或字節模式。隨著分析的繼續,將其他塊與存儲的副本進行比較,并且每當匹配發生時,冗余塊被替換為指向存儲的塊的小引用。鑒于相同的字節模式可能會發生數十次,數百次甚至數千次(匹配頻率取決于塊大小),所以必須存儲或傳輸的數據量可以大大減少。此類重復數據刪除與標準文件壓縮工具(如LZ77和LZ78)執行的重復數據刪除不同。雖然這些工具識別單個文件中的短重復子串,但基于存儲的重復數據刪除的目的是檢查大量數據并識別相同的大型部分(例如整個文件或大部分文件),以便僅存儲一份副本。可以通過單文件壓縮技術另外壓縮該副本。例如,典型的電子郵件系統可能包含100個相同1 MB(兆字節)文件附件的實例。每次備份電子郵件平臺時,都會保存所有100個附件實例,需要100 MB的存儲空間。通過重復數據刪除,實際只存儲了一個附件實例;后續實例被引用回保存的副本,重復數據刪除率大約為100比1。}
從維基百科的介紹可以看出,重刪在特定的應用場景下有著非常大的作用(如:郵件系統)。
3.開源的重刪技術
目前開源的deduplication有大致如下幾種:
dm dedup 、openzfs、btrfs、opendedup等。
除了dm dedup外其他的都是文件系統級別的重刪功能。
所以dm dedup也是我知道的塊級重刪的唯一開源項目。
4.文件級重刪和塊級重刪的區別
文件和塊級重刪在本質上是沒有區別,他們的目的都是去比較重復的數據,用引用來代替實例來節省空間的方法,但是從stack的角度,他們有很大的區別。眾所周知,我們構建一個存儲系統,其中功能的完備性在 I/O stack的越底層,那么它的作用范圍就會越大,兼容性就會越好,但應用感知能力也會越差。我們知道在一般的linux系統中文件系統一般都是構建在塊設備之上,所以重刪的功能如果在塊級,那么就可以兼容那些缺少重刪功能的穩定文件系統,比如ext4,xfs等。所以我認為這是重刪功能在塊級非常重要的一點。還有一點是,針對那些直接需要塊存儲的導出系統(openstack cinder,vmware exsi,和一些集群文件系統),不管是server san還是標準san內部實現塊級重刪也是再好不過了,如果使用openzfs/btrfs支持塊級子卷的導出在性能上必會有大的損失,所以能在塊級直接實現重刪功能是非常有意義的事情。
【本文只在51cto博客作者 “底層存儲技術” https://blog.51cto.com/12580077 個人發布,公眾號發布:存儲之谷】,如需轉載,請于本人聯系,謝謝。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。