Oracle Solaris ZFS 管理ガイド

ZFS ストレージプールについての情報を表示する

zpool list コマンドを使用して、プールに関する基本的な情報を表示できます。

すべてのストレージプールまたは特定のプールについての情報を一覧表示する

引数を指定しないで zpool list コマンドを実行すると、システム上のすべてのプールについて次の情報が表示されます。


# zpool list
NAME                    SIZE    ALLOC   FREE    CAP  HEALTH     ALTROOT
tank                   80.0G   22.3G   47.7G    28%  ONLINE     -
dozer                   1.2T    384G    816G    32%  ONLINE     -

このコマンド出力には、次の情報が表示されます。

NAME

プールの名前。

SIZE

プールの合計サイズ。最上位レベルにあるすべての仮想デバイスの合計サイズになります。

ALLOC

すべてのデータセットおよび内部メタデータに割り当てられた物理的容量。この容量は、ファイルシステムレベルで報告されるディスク容量とは異なります。

使用可能なファイルシステムの容量を確認する方法については、「ZFS のディスク領域の計上」を参照してください。

FREE

プール内で割り当てられていない容量。

CAP (CAPACITY)

使用されているディスク容量。総ディスク容量に対するパーセントで表現されます。

HEALTH

プールの現在の健全性状態。

プールの健全性の詳細については、「ZFS ストレージプールの健全性状態を調べる」を参照してください。

ALTROOT

プールの代替ルート (存在する場合)。

代替ルートプールの詳細については、「ZFS 代替ルートプールを使用する」を参照してください。

プール名を指定して、特定のプールの統計を収集することもできます。次に例を示します。


# zpool list tank
NAME                    SIZE    ALLOC   FREE    CAP   HEALTH     ALTROOT
tank                   80.0G    22.3G   47.7G    28%  ONLINE     -

特定のストレージプールの統計を表示する

-o オプションを使用して、特定の統計を要求することができます。このオプションを使用して、カスタムレポートを出力したり、必要な情報をすばやく表示したりできます。たとえば、各プールの名前とサイズだけを表示する場合は、次の構文を使用します。


# zpool list -o name,size
NAME                    SIZE
tank                   80.0G
dozer                   1.2T

列の名前は、「すべてのストレージプールまたは特定のプールについての情報を一覧表示する」で説明したプロパティーに対応しています。

ZFS ストレージプールの出力をスクリプトで使えるようにする

zpool list コマンドのデフォルト出力は、読みやすいように設計されているため、シェルスクリプトの一部として使いやすい状態ではありません。このコマンドをプログラムで使いやすくするために、-H オプションを使用して、列見出しを非表示にし、空白文字の代わりにタブでフィールドを区切ることができます。たとえば、システム上のすべてのプール名をリストとして要求するときは、次の構文を使用します。


# zpool list -Ho name
tank
dozer

別の例です。


# zpool list -H -o name,size
tank   80.0G
dozer  1.2T

ZFS ストレージプールのコマンド履歴を表示する

ZFS は、プールの状態に関する情報を変更する zfs コマンドと zpool コマンドが正常に実行された場合にだけ自動的にログを記録します。この情報は、zpool history コマンドを使用して表示することができます。

例えば、ルートプールに関するコマンド出力を表示する場合は、次の構文を使用します。


# zpool history
History for 'rpool':
2010-05-11.10:18:54 zpool create -f -o failmode=continue -R /a -m legacy -o 
cachefile=/tmp/root/etc/zfs/zpool.cache rpool mirror c1t0d0s0 c1t1d0s0
2010-05-11.10:18:55 zfs set canmount=noauto rpool
2010-05-11.10:18:55 zfs set mountpoint=/rpool rpool
2010-05-11.10:18:56 zfs create -o mountpoint=legacy rpool/ROOT
2010-05-11.10:18:57 zfs create -b 8192 -V 2048m rpool/swap
2010-05-11.10:18:58 zfs create -b 131072 -V 1536m rpool/dump
2010-05-11.10:19:01 zfs create -o canmount=noauto rpool/ROOT/zfsBE
2010-05-11.10:19:02 zpool set bootfs=rpool/ROOT/zfsBE rpool
2010-05-11.10:19:02 zfs set mountpoint=/ rpool/ROOT/zfsBE
2010-05-11.10:19:03 zfs set canmount=on rpool
2010-05-11.10:19:04 zfs create -o mountpoint=/export rpool/export
2010-05-11.10:19:05 zfs create rpool/export/home
2010-05-11.11:11:10 zpool set bootfs=rpool rpool
2010-05-11.11:11:10 zpool set bootfs=rpool/ROOT/zfsBE rpool

システムでこれと同じような出力を利用して、エラー状況のトラブルシューティングのために実行された「実際の」ZFS コマンドセットを特定することができます。

履歴ログの特徴を次に示します。

特定のストレージプールのコマンド履歴を確認するには、次のような構文を使用します。


# zpool history tank
History for 'tank':
2010-05-13.14:13:15 zpool create tank mirror c1t2d0 c1t3d0
2010-05-13.14:21:19 zfs create tank/snaps
2010-05-14.08:10:29 zfs create tank/ws01
2010-05-14.08:10:54 zfs snapshot tank/ws01@now
2010-05-14.08:11:05 zfs clone tank/ws01@now tank/ws01bugfix

-l オプションを使用して、ユーザー名、ホスト名、および操作が実行されたゾーンを含む長形式を表示します。次に例を示します。


# zpool history -l tank
History for 'tank':
2010-05-13.14:13:15 zpool create tank mirror c1t2d0 c1t3d0 [user root on neo]
2010-05-13.14:21:19 zfs create tank/snaps [user root on neo]
2010-05-14.08:10:29 zfs create tank/ws01 [user root on neo]
2010-05-14.08:10:54 zfs snapshot tank/ws01@now [user root on neo]
2010-05-14.08:11:05 zfs clone tank/ws01@now tank/ws01bugfix [user root on neo]

-i オプションを使用して、診断に利用できる内部イベント情報を表示します。次に例を示します。


# zpool history -i tank
2010-05-13.14:13:15 zpool create -f tank mirror c1t2d0 c1t23d0
2010-05-13.14:13:45 [internal pool create txg:6] pool spa 19; zfs spa 19; zpl 4;...
2010-05-13.14:21:19 zfs create tank/snaps
2010-05-13.14:22:02 [internal replay_inc_sync txg:20451] dataset = 41
2010-05-13.14:25:25 [internal snapshot txg:20480] dataset = 52
2010-05-13.14:25:25 [internal destroy_begin_sync txg:20481] dataset = 41
2010-05-13.14:25:26 [internal destroy txg:20488] dataset = 41
2010-05-13.14:25:26 [internal reservation set txg:20488] 0 dataset = 0
2010-05-14.08:10:29 zfs create tank/ws01
2010-05-14.08:10:54 [internal snapshot txg:53992] dataset = 42
2010-05-14.08:10:54 zfs snapshot tank/ws01@now
2010-05-14.08:11:04 [internal create txg:53994] dataset = 58
2010-05-14.08:11:05 zfs clone tank/ws01@now tank/ws01bugfix