文件打包工具 dedup util 簡介
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工具的要小。
- 授權協議: GPLv3
- 開發語言: C/C++
- 操作系統: Linux
- 項目地址:http://sourceforge.net/projects/deduputil/