wiki:linux/btrfs

btrfs

重複排除機能

ファイルサーバの用途として利用しているときに、同じファイルがコピーされて別のフォルダに置かれたり、たまたま同じファイルを別の人が個々の個人フォルダに持っていたりということが多々あります。

そのようなときに、btrfsの重複排除機能を利用すると、重複したファイルがあっても利用するディスク領域を1つ分にでき、ディスクスペースを節約できます。 特に不特定多数のユーザが大量にデータを保存する共有サーバなどで効果的です。

btrfsで重複排除を利用するには、bedupというツールを利用します。

bedupのインストール

# apt-get install python-pip  build-essential libffi-dev python-dev
# pip install --user cffi
# git clone  https://github.com/g2p/bedup
# cd bedup
# python setup.py install --user

以上で、~/.local/binにbedupがインストールされます。重複排除を実行するには、

# ~/.local/bin/bedup dedup

を実行します。例えば、test1.img、test2.img、test3.imgと同じファイルがある場合、 下記のように実行されます。

# .local/bin/bedup dedup 
Not scanning /mnt, generation is still 89
Deduplicating filesystem {d8c2f01b-be6d-4262-8a4e-6f4bd6130b12}
Deduplicated:
- u'/mnt/lv/test1.img'
- u'/mnt/lv/test2.img'
Deduplicated:
- u'/mnt/lv/test1.img'
- u'/mnt/lv/test3.img'
00.79 Size group 1/1 sampled 3 hashed 3 freed 104857600
00.01 Committing tracking state