もぐてっく

人は1つ歳をとるたび、1ビットづつ大きくなれると信じてた。

squeezeにzfs-fuseを入れて重複を排除ってみた。

HDDが買えないならZFSを使えばいいのに
http://itpro.nikkeibp.co.jp/article/Watcher/20120208/380453/?top_rcmd


なる記事がうpされて、Linux界隈の有識者TLがザワつくと言う事件が起きましたw


でも、こんな記事が出るくらいzfs-fuseが安定して来てるなら、WORMなファイル置き場に使えるんじゃね?
とか、色々面白そうだったので、Debian squeezeで重複排除対応の最新版(0.7.0)をコンパイルしてみました。


# よく調べたらリポジトリ0.6.9-1でも重複排除対応してた。。。
# 取り敢えずdebianディレクトリのあるソースからdeb作る手順として備忘。

最新版のダウンロード

# wget http://zfs-fuse.net/releases/0.7.0/zfs-fuse-0.7.0.tar.bz2

必要なパッケージのインストール

# apt-get install libaio-dev
# apt-get install openssl-dev
# apt-get install libfuse-dev
# apt-get install libattr1-dev
# apt-get install scons

パッケージのビルド

# tar xvjf zfs-fuse-0.7.0.tar.bz2
# cd zfs-fuse-0.7.0
# dpkg-buildpackage -b -uc -us

パッケージのインストール

# cd ../
# dpkg -i zfs-fuse_0.7.0-1_amd64.deb

zfsプールの作成

記事の内容とおんなじ。

# zpool create pool /dev/sdb
# zfs create pool/archive
# zfs dedup=verify pool/archive


これで/pool/archiveに重複排除な領域ができました。

効果の確認

まずは出来立ての領域のdf。

root@Atora:/pool/archive# df -h
Filesystem            Size  Used Avail Use% マウント位置
pool                  914G   22K  914G   1% /pool
pool/archive          914G   21K  914G   1% /pool/archive


ddで0埋めファイルを作ってみる。
(VirtualBox4.1.8、Windows7 Pro(64bit)、Core i3 2100T(割当1個)、メモリ8GB(割当512MB)。ちなみにpoolは物理ディスク。)

root@Atora:/pool/archive# dd if=/dev/zero of=test.img bs=8192 count=`expr 1024 \* 1024`
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 134.9 s, 63.7 MB/s


そこそこ速い。
結果を確認。

root@Atora:/pool/archive# df -h
Filesystem            Size  Used Avail Use% マウント位置
pool                  914G   22K  914G   1% /pool
pool/archive          922G  8.1G  914G   1% /pool/archive


おお、排除された分だけSizeが増えてる。面白い。