fc2ブログ

ZFS の Compression ON/OFF のときの表示

ざるそば

ZFS のオプションに compression があり、これにより ZFS の層で自動的に圧縮してくれるという素敵機能なのですが、いつもサイズ表示が圧縮後なのかそうでないのかわからなくなるので、確認することにしました。初心者丸出しですが…。

まず、テスト用の ZFS を作ります。片方は圧縮 ON、片方は圧縮 OFF です。

# zfs create rpool/export/test/compress-on
# zfs set compression=on rpool/export/test/compress-on
# zfs create rpool/export/test/compress-off
# zfs set compression=off rpool/export/test/compress-off

念のため確認すると以下のようになります。

# zfs list -o name,used,compression -r rpool/export/test
NAME                            USED  COMPRESS
rpool/export/test                95K       off
rpool/export/test/compress-off   31K       off
rpool/export/test/compress-on    31K        on

今度は、手元の Windows で 100MB ほどのダミーファイルを作ります。

fsutil file createnew dummy.dat 104857600

ちなみに、このファイルを ZIP で圧縮すると 101KB ほどになりました。圧縮のよく効くファイルです。

このファイルをそれぞれのディレクトリに置いて確認します。ちなみにもちろんですが dedup は OFF です。

zfs get

当然ですが、表示されるサイズは圧縮後です。めちゃめちゃ効いてますね、圧縮。

# zfs get -p name,used rpool/export/test/compress-off
NAME                            PROPERTY  VALUE                           SOURCE
rpool/export/test/compress-off  name      rpool/export/test/compress-off  -
rpool/export/test/compress-off  used      104905728

# zfs get -p name,used rpool/export/test/compress-on 
NAME                           PROPERTY  VALUE                          SOURCE
rpool/export/test/compress-on  name      rpool/export/test/compress-on  -
rpool/export/test/compress-on  used      31744

du

du コマンドも圧縮後のサイズです。

# du -sh /export/test/*
 100M   /export/test/compress-off
   2K   /export/test/compress-on

ls

ls コマンドではファイルサイズが表示されました。

# ls -lR
.:
total 6
drwxr-xr-x   2 user   root           3  4月 28日  16:13 compress-off
drwxr-xr-x   2 user   root           3  4月 28日  16:13 compress-on

./compress-off:
total 204833
-rw-r--r--   1 user   staff    104857600  4月 28日  16:11 dummy.dat

./compress-on:
total 1
-rw-r--r--   1 user   staff    104857600  4月 28日  16:11 dummy.dat

-s オプションでブロックサイズを表示すると、圧縮 ON の使用ブロックは 1 になりました。

# ls -lRs      
.:
total 6
   3 drwxr-xr-x   2 user   root           3  4月 28日  16:13 compress-off
   3 drwxr-xr-x   2 user   root           3  4月 28日  16:13 compress-on

./compress-off:
total 204833
204833 -rw-r--r--   1 user   staff    104857600  4月 28日  16:11 dummy.dat

./compress-on:
total 1
   1 -rw-r--r--   1 user   staff    104857600  4月 28日  16:11 dummy.dat

結論

  • zfs コマンドや du コマンドでは圧縮後のサイズが表示される。
  • ls ではファイルサイズそのものが表示される

よく考えたら当たり前ですね…(笑)

Posted byざるそば

Comments 0

There are no comments yet.

Leave a reply