Oracle® Solaris 11.2 での ZFS ファイルシステムの管理

印刷ビューの終了

更新: 2014 年 12 月
 
 

ZFS プロパティーのクエリー検索を行う

プロパティー値のクエリー検索を行うもっとも簡単な方法は、zfs list コマンドを使用することです。詳細については、基本的な ZFS 情報を表示するを参照してください。ただし、複雑なクエリーおよびスクリプトについては、zfs get コマンドを使用して、より詳しい情報をカスタマイズされた形式で提供してください。

zfs get コマンドを使用して、任意のデータセットプロパティーを取得できます。次の例は、データセット上の 1 つのプロパティー値を取得する方法を示しています。

# zfs get checksum tank/ws
NAME             PROPERTY       VALUE                      SOURCE
tank/ws          checksum       on                         default

4 番目の列 SOURCE は、このプロパティー値の起点を示します。次の表は、表示される可能性のあるソース値を定義したものです。

表 5-3  出力される可能性のある SOURCE 値 (zfs get コマンド)
ソース値
説明
default
このプロパティー値は、このデータセットまたはその祖先 (存在する場合) で明示的に設定されたことが一度もありません。このプロパティーのデフォルト値が使用されています。
inherited from dataset-name
このプロパティー値は、dataset-name に指定されている親データセットから継承されます。
local
このプロパティー値は、zfs set を使って、このデータセットに明示的に設定されました。
temporary
このプロパティー値は、zfs mount – o オプションを使って設定され、マウントの有効期間だけ有効です。一時的なマウントポイントプロパティーの詳細については、一時的なマウントプロパティーを使用するを参照してください。
- (なし)
このプロパティーは読み取り専用です。値は ZFS によって生成されます。

特殊キーワード all を使って、すべてのデータセットプロパティー値を取得できます。all キーワードの使用例を次に示します。

# zfs get all tank/home
NAME       PROPERTY              VALUE                  SOURCE
tank/home  type                  filesystem             -
tank/home  creation              Mon Dec  3 13:10 2012  -
tank/home  used                  291K                   -
tank/home  available             58.7G                  -
tank/home  referenced            291K                   -
tank/home  compressratio         1.00x                  -
tank/home  mounted               yes                    -
tank/home  quota                 none                   default
tank/home  reservation           none                   default
tank/home  recordsize            128K                   default
tank/home  mountpoint            /tank/home             default
tank/home  sharenfs              off                    default
tank/home  checksum              on                     default
tank/home  compression           off                    default
tank/home  atime                 on                     default
tank/home  devices               on                     default
tank/home  exec                  on                     default
tank/home  setuid                on                     default
tank/home  readonly              off                    default
tank/home  zoned                 off                    default
tank/home  snapdir               hidden                 default
tank/home  aclmode               discard                default
tank/home  aclinherit            restricted             default
tank/home  canmount              on                     default
tank/home  shareiscsi            off                    default
tank/home  xattr                 on                     default
tank/home  copies                1                      default
tank/home  version               5                      -
tank/home  utf8only              off                    -
tank/home  normalization         none                   -
tank/home  casesensitivity       mixed                  -
tank/home  vscan                 off                    default
tank/home  nbmand                off                    default
tank/home  sharesmb              off                    default
tank/home  refquota              none                   default
tank/home  refreservation        none                   default
tank/home  primarycache          all                    default
tank/home  secondarycache        all                    default
tank/home  usedbysnapshots       0                      -
tank/home  usedbydataset         291K                   -
tank/home  usedbychildren        0                      -
tank/home  usedbyrefreservation  0                      -
tank/home  logbias               latency                default
tank/home  sync                  standard               default
tank/home  rekeydate             -                      default
tank/home  rstchown              on                     default

zfs get–s により、表示するプロパティーをソースタイプによって指定できます。このオプションには、必要なソースの種類をコンマ区切りのリストとして指定します。指定したソースの種類のプロパティーだけが表示されます。有効なソースの種類は、localdefaultinheritedtemporary、および none です。次の例は、tank/ws でローカルに設定されているすべてのプロパティーを表示します。

# zfs get -s local all tank/ws
NAME     PROPERTY              VALUE                  SOURCE
tank/ws  compression           on                     local

前述のどのオプションの場合にも、–r オプションを組み合わせて、指定したファイルシステムのすべての子に設定されている特定のプロパティーを再帰的に表示できます。次の例では、tank/home に含まれるすべてのファイルシステムについてのすべての一時的なプロパティーが再帰的に表示されます。

# zfs get -r -s temporary all tank/home
NAME             PROPERTY       VALUE                      SOURCE
tank/home          atime          off                      temporary
tank/home/jeff     atime          off                      temporary
tank/home/mark     quota          20G                      temporary

zfs get コマンドでは、ターゲットのファイルシステムを指定せずにプロパティー値のクエリーを行うことが可能です。これは、すべてのプールやファイルシステムがコマンドの処理対象となることを意味します。例:

# zfs get -s local all
tank/home               atime          off                    local
tank/home/jeff          atime          off                    local
tank/home/mark          quota          20G                    local

zfs get コマンドの詳細については、zfs(1M) を参照してください。

スクリプトで使用できるように ZFS プロパティーのクエリー検索を行う

zfs get コマンドでは、スクリプトで使用できるように設計された –H および – o オプションを利用できます。–H オプションを使用すると、ヘッダー情報を省略し、空白をタブ文字で置き換えることができます。空白が揃うことで、データが見やすくなります。–o オプションを使用して、次の方法で出力をカスタマイズできます。

  • リテラル name は、ZFS のプロパティーの概要セクションで定義したプロパティーのコンマ区切りリストと組み合わせて使用できます。

  • 出力対象となるリテラルフィールド namevalueproperty、および source のコンマ区切りリストのあとに、空白 1 つと引数 1 つ。この引数は、プロパティーのコンマ区切りリストとなります。

次の例では、–zfs get–H および o オプションを使用して、1 つの値を取得する方法を示しています。

# zfs get -H -o value compression tank/home
on

–p オプションを指定すると、数値が正確な値として出力されます。たとえば、1M バイトは 1000000 として出力されます。このオプションは、次のように使用できます。

# zfs get -H -o value -p used tank/home
182983742

前述のどのオプションの場合にも、–r オプションを使用して、要求した値をすべての子孫について再帰的に取得できます。次の例では、–H–o、および –r オプションを使用して、export/home およびその子孫のファイルシステム名と used プロパティーの値を取得しています。ヘッダー出力は省略されています。

# zfs get -H -o name,value -r used export/home