ubuntu NAS に dedup(重複排除)を入れてみた
lessfs というパッケージがすごいらしい
参考元サイト
http://diary-of-paddy.blogspot.com/2011/06/lessfs.html
http://hpv.cc/~maty/pukiwiki1/index.php?Linux%2F%B0%C5%B9%E6%B2%BDfs%2FLessfs
linuxで重複排除
このfuseを使うとlinuxで重複排除機能を実現できる
ブロック単位の重複排除だけじゃなく
データの透過的圧縮とレプリケーション機能も付いてる
しかもzfsと違い膨大なメモリを要求しない
導入方法
リンク先にもある通りかなり手軽に導入できる
ppa から導入.
$ sudo add-apt-repository ppa:brandonsnider/lessfs
$ sudo apt-get update
$ sudo apt-get install lessfs設定ファイルをパッケージのベースから作成.パスだけ環境に合わせて編集した.
$ cp /usr/share/doc/lessfs/examples/lessfs.cfg /media/lessfs
$ mkdir /media/lessfs/{dta,mta}マウント
$ mkdir /media/lessfs/mnt
$ lessfs /media/lessfs/lessfs.cfg /media/lessfs/mnt
同様のパッケージにopendedupという物もあるが
こちらはjava7を要求するなど敷居が高かった
圧縮形式の変更
デフォルトの圧縮形式(qlz)にはバグがあって
無制限にメモリを食いつぶしてしまう
このバグを回避するため圧縮形式にlzoに設定する
設定ファイル(lessfs.cfg)の変更は以下の部分を変更する
コメントを付けはずしするだけだ
#COMPRESSION=qlz COMPRESSION=lzo
これでメモリ利用量は
指定したキャッシュ量付近が上限になった
キャッシュ量デフォルトは512Mで
これも設定ファイル(lessfs.cfg)で変更できる
読み書き性能について
100MB単位のファイルのシーケンシャルな書きこみでは
バッファに貯めこんで一気に書きこむような動作をした
バッファ作成時にはcpuを使い切り
書きこみ時にはHDDの限界性能くらいの書き込みをする
平均をとるとびみょーな性能だった
書き込み35MB/s
読み込み55MB/s
シーケンシャルアクセスならそこそこの性能のように思えるが
たとえば数kb程度の大量のファイルの書き込みで4MB/s程度になる様子
ランダムアクセスはかなり遅い
データ削減効果について
普通のファイルサーバーの場合はあまり容量削減効果が期待できない様子
我が家では10%前後のデータ削減効果しかなかった