文件打包工具 dedup util 簡介

openkk 13年前發布 | 11K 次閱讀 文件打包工具

dedup util是一款開源的輕量級文件打包工具,它基于塊級的重復數據刪除技術,可以有效縮減數據容量,節省用戶存儲空間。該工具生成的數據包內部數據部局(layout)如下:
--------------------------------------------------
|  header  |  unique block data |  file metadata |
--------------------------------------------------

數據包由三部分組成:文件頭(header)、唯一數據塊集(unique block data)和邏輯文件元數據(file metadata)。其中,header為一個結構體,定義了數據塊大小、唯一數據塊數量、數據塊ID大小、包中文件數量、元數據在包中的位置等元信息。文件頭后緊接就存儲著所有唯一的數據塊,大小和數量由文件頭中元信息指示。在數據塊之后,就是數據包中文件的邏輯表示元數據,由多個實體組成,結構如下所示,一個實體表示一個文件。解包時根據文件的元數據,逐一提取數據塊,還原出當初的物理文件。
邏輯文件的元數據表示:
-----------------------------------------------------------------

|  entry header  |  pathname  |  entry data  |  last block data |

-----------------------------------------------------------------

邏輯文件的實體頭中記錄著文件名長度、數據塊數量、數據塊ID大小和最后一個數據塊大小等信息。緊接著是文件名數據,長度在實體頭中定義。文件名數據之后,存儲著一組唯一數據塊的編號,編號與唯一數據塊集中的數據塊一一對應。最后存儲著文件最后一個數據塊,由于這個數據塊大小通常比正常數據塊小,重復概率非常小,因此單獨保存。
dedup util目前處于pre-alpha開發階段,支持文件打包、解包、追加文件、刪除文件、羅列包中文件等功能。初步的測試結果顯示,即使在不明確數據是否具備較高重復率的情況下,dedup技術也能較明顯地減少數據包的數據量,產生的數據包比Tar工具的要小。

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!