Mac OS X 資料一覧

ZFSプロパティ設定

2008/4/19更新

対応バージョン: 102A

ZFSのストレージプールに作成したファイルシステムには様々なプロパティが設定されており、これを操作することで細かい制御ができる。

現在のプロパティの設定情報を参照するにはgetサブコマンドに続いて参照したいプロパティ名を指定する。

% zfs get <プロパティ> <ファイルシステム>

全てのプロパティを参照するにはプロパティ名に「all」を指定する。

例)

% sudo zfs get all foo/home/bar
NAME          PROPERTY       VALUE                  SOURCE
foo/home/bar  type           filesystem             -
foo/home/bar  creation       Wed Jan 23 10:14 2008  -
foo/home/bar  used           19K                    -
foo/home/bar  available      928M                   -
foo/home/bar  referenced     19K                    -
foo/home/bar  compressratio  1.00x                  -
foo/home/bar  mounted        yes                    -
foo/home/bar  quota          none                   default
foo/home/bar  reservation    none                   default
foo/home/bar  recordsize     128K                   default
foo/home/bar  mountpoint     /Volumes/foo/home/bar  default
foo/home/bar  sharenfs       off                    default
foo/home/bar  checksum       on                     default
foo/home/bar  compression    off                    default
foo/home/bar  atime          on                     default
foo/home/bar  devices        on                     default
foo/home/bar  exec           on                     default
foo/home/bar  setuid         on                     default
foo/home/bar  readonly       off                    default
foo/home/bar  zoned          off                    default
foo/home/bar  snapdir        hidden                 default
foo/home/bar  aclmode        groupmask              default
foo/home/bar  aclinherit     secure                 default
foo/home/bar  canmount       on                     default
foo/home/bar  shareiscsi     off                    default
foo/home/bar  xattr          on                     default
foo/home/bar  copies         1                      default
foo/home/bar  version        2                      -

以下、いくつかのプロパティの設定手順を紹介する。

quota

ディスククォータを設定する。

例えば以下のように一つのストレージプールを複数のファイルシステムに分割して使用している場合を考える。

% zfs list
NAME           USED  AVAIL  REFER  MOUNTPOINT
foo            444K   928M   274K  /Volumes/foo
foo/home        60K   928M    22K  /Volumes/foo/home
foo/home/bar    19K   928M    19K  /Volumes/foo/home/bar
foo/home/baz    19K   928M    19K  /Volumes/foo/home/baz

この中でfoo/home/barに対して100MBのクォータを設定する場合は以下のようにする。

% sudo zfs set quota=100m foo/home/bar

これによりfoo/home/barの使用可能サイズは100MBになる。それ以外は以前と同じままである。

% zfs list
NAME           USED  AVAIL  REFER  MOUNTPOINT
foo            444K   928M   274K  /Volumes/foo
foo/home        60K   928M    22K  /Volumes/foo/home
foo/home/bar    19K   100M    19K  /Volumes/foo/home/bar
foo/home/baz    19K   928M    19K  /Volumes/foo/home/baz

クォータの解除はサイズに「none」を指定して再設定すればよい。

% sudo zfs set quota=none foo/home/bar

reservation

ディスク領域を予約する。

これは前述のクォータのようにファイルシステムの最大サイズを制限するのとは逆に、あらかじめ指定したサイズの領域を確保する方法である。

例えば以下のように一つのストレージプールに2ユーザのホームディレクトリが確保されている場合を考える。

% zfs list
NAME           USED  AVAIL  REFER  MOUNTPOINT
foo            444K   928M   274K  /Volumes/foo
foo/home        60K   928M    22K  /Volumes/foo/home
foo/home/bar    19K   928M    19K  /Volumes/foo/home/bar
foo/home/baz    19K   928M    19K  /Volumes/foo/home/baz

この中でfoo/home/barに対して100MBの領域を確保する場合は以下のようにする。

% sudo zfs set reservation=100m foo/home/bar

これによりfoo/homeの使用サイズが100MBになりbarのホームディレクトリのために100MBが確保されたことになる。

% zfs list
NAME           USED  AVAIL  REFER  MOUNTPOINT
foo            100M   828M   274K  /Volumes/foo
foo/home       100M   828M    22K  /Volumes/foo/home
foo/home/bar    19K   928M    19K  /Volumes/foo/home/bar
foo/home/baz    19K   828M    19K  /Volumes/foo/home/baz

領域の予約解除はサイズに「none」を指定して再設定すればよい。

% sudo zfs set reservation=none foo/home/bar

compression

プール内を圧縮モードにする。

% sudo zfs set compression=on foo