もはや、ZFSしかウリがなくなって先細りのSolarisですが、
ZFSのzvolおかげで、iSCSIのディスクとして簡単に使えるようになってます。
で、容量の少ないSSDを使っている身として余分なファイルを
このiSCSIで作ったディスクに移しておくという構成を使ってます。
100BaseレベルのリンクでもSMB/CIFSでつなぐよりは格段に速い
ディスクとして使えます。
Solaris→OpenSolarisと変えてきたマシンをOpenIndianaに移行させたときに
iSCSIを導入したんですが、ふと「最近のZFSで重複を省く仕組みできてなかったっけ?」
と思い立ち、iSCSIで使っているzvolにdedupをセットしてみた。
# zfs set dedup=on 名前
だけでOK
# zpool list
で、圧縮率が見える。プロパティをセットしただけじゃ圧縮されなくて
あくまでdedupが働くのは新しく書きこむときのみ。
しばらく使ってみると、たしかに圧縮率が上がっていく。
ファイル単位じゃなくてブロック単位で重複判定しているとのことなので
zvolに対しても圧縮は働いていくらしい。
このあたりが、アプリレベルのファイル単位の重複判定では実現できないとこだろう。
が・・・
どうも最近気がついた。これ重い。
調べてみると、dedupが同期処理なのが問題ではないかと・・・
ある程度連続したファイル処理をすると、途中からガクンと処理速度が落ちる。
キャッシュ範囲から外れたら速度が落ちる感じらしい。
ZFSは非同期処理でパフォーマンスを稼いでいるところがあったと思うからそのせい?
それとも、dedup判定が重いから結果として処理がたまってキャッシュを食いつぶしやすいのか?
仕方が無いのでdedupを外してみることにした。
別に容量的に困ってたわけじゃないから困らんのよねぇ。
# zfs set dedeup=off 名前
オンラインで全部できるのはすごいと思うわ。実際。
せっかくだからZFSだけは抱え込まないで、
Linuxに引き渡すかAppleにでも引き渡して有効活用してほしい・・・
コメントを残す