SourceForge上發布dedup util

來源:互聯網
上載者:User

 

[dedup util]

dedup util是一款開源的輕量級檔案打包工具,它基於塊級的重複資料刪除技術,可以有效縮減資料容量,節省使用者儲存空間。目前已經在Sourceforge上建立項目,並且源碼正在不斷更新中。該工具產生的資料包內部資料部局(layout)如下:

--------------------------------------------------
|  header  |  unique block data |  file metadata |
--------------------------------------------------

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

 

邏輯檔案的中繼資料表示:

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

邏輯檔案的實體頭中記錄著檔案名稱長度、資料區塊數量、資料區塊ID大小和最後一個資料區塊大小等資訊。緊接著是檔案名稱資料,長度在實體頭中定義。檔案名稱資料之後,儲存著一組唯一資料區塊的編號,編號與唯一資料區塊集中的資料區塊一一對應。最後儲存著檔案最後一個資料區塊,由於這個資料區塊大小通常比正常資料區塊小,重複機率非常小,因此單獨儲存。

 

更詳細資料請參見 http://blog.csdn.net/liuben/archive/2010/01/09/5166538.aspx

 

dedup util目前處於pre-alpha開發階段,支援檔案打包、解包、追加檔案、刪除檔案、羅列包中檔案等功能。初步的測試結果顯示,即使在不明確資料是否具備較高重複率的情況下,dedup技術也能較明顯地減少資料包的資料量,產生的資料包比Tar工具的要小。

 

[源碼]

項目URL: https://sourceforge.net/projects/deduputil

SVN程式碼程式庫URL: https://deduputil.svn.sourceforge.net/svnroot/deduputil

 

[編譯]

1.擷取源碼

  svn co https://deduputil.svn.sourceforge.net/svnroot/deduputil deduputil

 

2.安裝libz-dev

  apt-get install libz-dev

  如果不支援apt-get,請採用其他途徑安裝。

 

3.編譯安裝

  ./gen.sh

  ./configure

  make

  make install

 

[命令列]

Usage: dedup [OP
TION...] [FILE]...

dedup tool packages files with deduplicaton technique.

 

Examples:

  dedup -c foobar.ded foo bar    # Create foobar.ded from files foo and bar.

  dedup -a foobar.ded foo1 bar1  # Append files foo1 and bar1 into foobar.ded.

  dedup -r foobar.ded foo1 bar1  # Remove files foo1 and bar1 from foobar.ded.

  dedup -t foobar.ded            # List all files in foobar.ded.

  dedup -x foobar.ded            # Extract all files from foobar.ded.

 

Options:

  -c, --creat      create a new archive

  -x, --extract    extrace files from an archive

  -a, --append     append files to an archive

  -r, --remove     remove files from an archive

  -t, --list       list files in an archive

  -z, --compress   filter the archive through zlib compression

  -b, --block      block size for deduplication, default is 4096

  -H, --hashtable  hashtable backet number, default is 10240

  -d, --directory  change to directory, default is PWD

  -v, --verbose    print verbose messages

  -h, --help       give this help list

 

[運行平台]

目前僅在Linux平台開發測試,其他平台未作評測。

 

[TODO]

1. 資料區塊碰撞問題

  雖然MD5產生的碰撞的機率非常小,但仍然存在發生小機率事件的可能性。需要採用技術手段解決碰撞問題,這樣才能保證資料安全,讓使用者放心使用。

 

2. 變長資料區塊

  目前是定長資料區塊的實現,技術上較為簡單,變長資料區塊可能會獲得更高的資料壓縮率。

 

3. 相似檔案識別

  如果兩個檔案只有很小的差別,比如在某處插入了若干位元組,找出這些資料區塊並單獨處理,可能會提高資料壓縮率。

 

[作者]

劉愛貴,專註於儲存技術,關注資料採礦和分散式運算,Aigui.Liu@gmail.com

 

2010.06.02

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.