zpool list コマンドでは、いくつかの方法でプールステータスに関する情報を要求できます。主に 3 つのカテゴリの情報を要求できます。 基本的な使用状況の情報、入出力統計、および健全性ステータスです。このセクションでは、3 つのすべてのタイプのストレージプール情報について説明します。
zpool list コマンドは、プールに関する基本情報を表示します。このコマンドは、次の方法で使用できます。
オプションなし: zpool list [pool]
プールを指定しない場合は、すべてのプールの情報が表示されます。
オプション付き: zpool list options [arguments]
zpool list [pool] コマンドは、次のプール情報を表示します。
プールの名前。
このプールの合計サイズ。最上位レベルのすべての仮想デバイスの合計サイズに等しくなります。
すべてのデータセットおよび内部メタデータに割り当てられている物理容量。この容量は、ファイルシステムレベルで報告されるディスク容量とは異なります。
このプール内の割り当てられていない容量。
使用されているディスク容量。合計ディスク容量の割合 (%) として表されます。
このプールの現在の健全性ステータス。
プールの健全性の詳細については、ZFS ストレージプールの健全性ステータスを調べるを参照してください。
このプールの代替ルート (1 つ存在する場合)。
代替ルートプールの詳細については、代替ルート場所で ZFS プールを使用するを参照してください。
次の例は、サンプルの zpool list コマンド出力を示しています。
$ zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT syspool1 80.0G 22.3G 47.7G 28% ONLINE - syspool2 1.2T 384G 816G 32% ONLINE -
特定のプールの統計を取得するには、このコマンドでプール名を指定します。
zpool list コマンドでオプションと引数を発行することによって、表示される特定のプール情報を選択できます。
–o オプションを使用すると、どの列が表示されるかをフィルタ処理できます。次の例は、各プールの名前とサイズのみを一覧表示する方法を示しています。
$ zpool list -o name,size NAME SIZE syspool1 80.0G syspool2 1.2T
組み合わされた –Ho オプションを発行することによって、シェルスクリプトの一部として zpool list コマンドを使用できます。–H オプションは列見出しの表示を抑制し、代わりにタブで区切られたプール情報を表示します。例:
$ zpool list -Ho name,size syspool1 80.0G syspool2 1.2T
–T オプションを使用すると、プールに関するタイムスタンプ付きの統計を収集できます。構文は次のとおりです。
$ zpool list -T d interval [count]
日付を表示するときに標準の日付の形式を使用するように指定します。
情報が表示される間隔 (秒単位) を指定します。
情報を報告する回数を指定します。count を指定しない場合は、Ctrl - C キーを押すまで、指定された間隔で情報が継続的にリフレッシュされます。
次の例では、報告の間隔を 3 秒にして、プール情報を 2 回表示します。この出力では、標準の形式を使用して日付を表示しています。
$ zpool list -T d 3 2 Tue Nov 2 10:36:11 MDT 2010 NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT pool 33.8G 83.5K 33.7G 0% 1.00x ONLINE - rpool 33.8G 12.2G 21.5G 36% 1.00x ONLINE - Tue Nov 2 10:36:14 MDT 2010 pool 33.8G 83.5K 33.7G 0% 1.00x ONLINE - rpool 33.8G 12.2G 21.5G 36% 1.00x ONLINE -
プールデバイスの物理的な場所に関する情報を表示するには、zpool status –l オプションを使用します。物理的な場所の情報を確認しておけば、ディスクを物理的に除去または交換する必要があるときに役立ちます。
さらに、fmadm add-alias コマンドを使って、環境内でディスクの物理的な位置を特定するのに役立つディスクの別名を含めることもできます。例:
$ fmadm add-alias SUN-Storage-J4400.1002QCQ015 Lab10Rack5disk
$ zpool status -l system1 pool: system1 state: ONLINE scan: scrub repaired 0 in 0h0m with 0 errors on Fri Aug 3 16:00:35 2012 config: NAME STATE READ WRITE CKSUM system1 ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 /dev/chassis/Lab10Rack5.../DISK_02/disk ONLINE 0 0 0 /dev/chassis/Lab10Rack5.../DISK_20/disk ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 /dev/chassis/Lab10Rack5.../DISK_22/disk ONLINE 0 0 0 /dev/chassis/Lab10Rack5.../DISK_14/disk ONLINE 0 0 0 mirror-2 ONLINE 0 0 0 /dev/chassis/Lab10Rack5.../DISK_10/disk ONLINE 0 0 0 /dev/chassis/Lab10Rack5.../DISK_16/disk ONLINE 0 0 0 . . . spares /dev/chassis/Lab10Rack5.../DISK_17/disk AVAIL /dev/chassis/Lab10Rack5.../DISK_12/disk AVAIL errors: No known data errors
zfs および zpool コマンドの使用のログを表示するには、zpool history コマンドを使用します。このログは、プール状態情報を変更したり、エラー状態をトラブルシューティングしたりするためにこれらのコマンドが正常に使用されたときに記録されます。
履歴ログに関する次の情報に注意してください。
このログを無効にすることはできません。このログはディスク上に永続的に保存され、システムのリブート後も保持されます。
ログはリングバッファーとして実装されます。最小サイズは 128K バイトです。最大サイズは 32M バイトです。
小さめのプールの場合、最大サイズはプールサイズの 1% を上限とします。このサイズはプールの作成時に自動的に決定されます。
このログには管理が必要ないため、ログのサイズや場所をチューニングする必要はありません。
次の例は、プール system1 に対する zfs および zpool コマンドの履歴を示しています。
$ zpool history system1 2012-01-25.16:35:32 zpool create -f system1 mirror c3t1d0 c3t2d0 spare c3t3d0 2012-02-17.13:04:10 zfs create system1/test 2012-02-17.13:05:01 zfs snapshot -r system1/test@snap1
–l オプションを使用して、ユーザー名、ホスト名、および操作が実行されたゾーンを含む長形式を表示します。例:
$ zpool history -l system1 History for 'system1': 2012-01-25.16:35:32 zpool create -f system1 mirror c3t1d0 c3t2d0 spare c3t3d0 [user root on host1:global] 2012-02-17.13:04:10 zfs create system1/test [user root on host1:global] 2012-02-17.13:05:01 zfs snapshot -r system1/test@snap1 [user root on host1:global]
–i オプションを使用して、診断に利用できる内部イベント情報を表示します。例:
$ zpool history -i system1 History for 'system1': 2012-01-25.16:35:32 zpool create -f system1 mirror c3t1d0 c3t2d0 spare c3t3d0 2012-01-25.16:35:32 [internal pool create txg:5] pool spa 33; zfs spa 33; zpl 5; uts host1 5.11 11.1 sun4v 2012-02-17.13:04:10 zfs create system1/test 2012-02-17.13:04:10 [internal property set txg:66094] $share2=2 dataset = 34 2012-02-17.13:04:31 [internal snapshot txg:66095] dataset = 56 2012-02-17.13:05:01 zfs snapshot -r system1/test@snap1 2012-02-17.13:08:00 [internal user hold txg:66102] <.send-4736-1> temp = 1 ...
プールまたは特定の仮想デバイスの入出力統計を要求する場合は、zpool iostat コマンドを使用します。iostat コマンドと同様に、このコマンドでは、発生したすべての入出力アクティビティーの静的なスナップショットと、指定した間隔ごとに更新される統計を表示できます。次の統計情報が報告されます。
プールまたはデバイスに現在格納されているデータの量。この容量は、実装の内部的な詳細のために、実際のファイルシステムで利用できるディスク容量とわずかに異なります。
プールまたはデバイスで使用できるディスク容量。used 統計と同様に、この容量はデータセットで使用できるディスク容量と多少異なります。
プールまたはデバイスに送信された入出力読み取り操作の数 (メタデータ要求を含む)。
プールまたはデバイスに送信された入出力書き込み操作の数。
すべての読み取り操作 (メタデータを含む) の帯域幅。単位/秒として表現されます。
すべての書き込み操作の帯域幅。単位/秒として表現されます。
オプションなしで発行された場合、zpool iostat コマンドは、システム上のすべてのプールについてブート以降に累積された統計を表示します。例:
$ zpool iostat capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- rpool 6.05G 61.9G 0 0 786 107 system1 31.3G 36.7G 4 1 296K 86.1K ---------- ----- ----- ----- ----- ----- -----
これらの統計はブートしてから累積されたものなので、プールのアイドル状態が相対的に多い場合には、帯域幅が低く表示されることがあります。間隔を指定すれば、帯域幅の現在の使用状況をより正確に表示できます。例:
$ zpool iostat system1 2 capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ---- ----- ----- ----- system1 18.5G 49.5G 0 187 0 23.3M system1 18.5G 49.5G 0 464 0 57.7M system1 18.5G 49.5G 0 457 0 56.6M system1 18.8G 49.2G 0 435 0 51.3M
この例では、Ctrl - C キーを押すまで、このコマンドによってプール system1 の使用統計が 2 秒ごとに表示されます。または、count 引数を追加で指定することもでき、その場合はコマンドが指定した数だけ繰り返されたあとで終了します。
たとえば、zpool iostat 2 3 の場合は、サマリーが 2 秒ごとに 3 回 (計 6 秒間) 出力されます。
zpool iostat –v コマンドは、仮想デバイスの入出力統計を表示できます。異常に低速なデバイスを識別したり、ZFS によって生成された入出力の分布を監視したりするには、このコマンドを使用します。次の 3 つの例を参照してください。後ろの 2 つの例では複数グループ構成が表示されています。
$ zpool iostat -v tank capacity operations bandwidth pool alloc free read write read write ----------------------- ----- ----- ----- ----- ----- ----- tank 2.69G 1.81T 0 29 252 14.2M c0t5000C5001032271Bd0 1.34G 927G 0 14 130 7.09M c0t5000C50010349387d0 1.34G 927G 0 14 122 7.09M ----------------------- ----- ----- ----- ----- ----- -----
$ zpool iostat -v tank capacity operations bandwidth pool alloc free read write read write ------------------------- ----- ----- ----- ----- ----- ----- tank 810M 1.81T 0 390 536 32.1M mirror-0 405M 928G 0 194 232 16.1M c0t5000C5001032271Bd0 - - 0 37 1.07K 16.2M c0t5000C50010349387d0 - - 0 38 858 16.1M mirror-1 405M 928G 0 195 304 16.1M c0t5000C5001033963Fd0 - - 0 37 1.14K 16.2M c0t5000C5001033024Fd0 - - 0 38 858 16.2M ------------------------- ----- ----- ----- ----- ----- -----
$ zpool iostat -v tank capacity operations bandwidth pool alloc free read write read write ------------------------- ----- ----- ----- ----- ----- ----- tank 258M 5.44T 0 321 876 31.5M raidz1-0 128M 2.72T 0 160 29 15.9M c0t5000C5001032271Bd0 - - 0 33 1.40K 8.07M c0t5000C50010349387d0 - - 0 30 1.37K 8.07M c0t5000C5001033963Fd0 - - 0 30 1.37K 8.07M raidz1-1 130M 2.72T 0 160 847 15.5M c0t5000C5001033024Fd0 - - 1 34 2.20K 8.10M c0t5000C500103C9817d0 - - 0 34 1.37K 7.87M c0t5000C50010324F67d0 - - 0 34 1.37K 8.10M ------------------------- ----- ----- ----- ----- ----- -----
zpool iostat -v コマンドは、プール構成の各レベルについての特定の情報を提供します。
プールレベルはグループレベルデータの合計を表示します。
グループレベルはミラー構成または raidz 構成のコンパイル済みデータを表示します。
リーフレベルは各物理ディスクの情報を表示します。
仮想デバイスの入出力統計を表示するときは、2 つの重要な点に注意してください。
ディスク領域使用に関する統計は、最上位レベルの仮想デバイスに対してのみ使用できます。ミラーおよび RAID-Z 仮想デバイスにディスク領域がどのように割り当てられるかは、実装に固有なので、1 つの数値として表現するのは簡単ではありません。
数値が、期待したほど正確にならないことがあります。特に、RAID-Z デバイスとミラー化されたデバイスの統計は、正確に一致することがありません。この差は、特にプールが作成された直後に顕著です。それは、プール作成の一部として大量の入出力が直接ディスクに対して実行されますが、これがミラーレベルでは数に含まれないためです。時間の経過とともに、これらの数値はしだいに等しくなります。ただし、故障したデバイス、応答しないデバイス、またはオフラインのデバイスも、この対称性に影響する可能性があります。
仮想デバイスの統計を検査するときは、interval と count を使用できます。
プールの仮想デバイスに関する物理的な場所の情報も表示できます。次の例は、切り捨てられたサンプル出力を示しています。
$ zpool iostat -lv capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- export 2.39T 2.14T 13 27 42.7K 300K mirror 490G 438G 2 5 8.53K 60.3K /dev/chassis/lab10rack15/SCSI_Device__2/disk - - 1 0 4.47K 60.3K /dev/chassis/lab10rack15/SCSI_Device__3/disk - - 1 0 4.45K 60.3K mirror 490G 438G 2 5 8.62K 59.9K /dev/chassis/lab10rack15/SCSI_Device__4/disk - - 1 0 4.52K 59.9K /dev/chassis/lab10rack15/SCSI_Device__5/disk - - 1 0 4.48K 59.9K
zpool status コマンドを使用すると、プールとデバイスの健全性を表示できます。さらに、fmd コマンドはまた、プールとデバイスの潜在的な障害もシステムコンソールと /var/adm/messages ファイルに報告します。
このセクションでは、プールとデバイスの健全性を確認する方法についてのみ説明します。正常でないプールからのデータ回復については、Oracle Solaris ZFS のトラブルシューティングとプールの回復を参照してください。
プールの健全性ステータスは、次の 4 つの状態のいずれかで表されます。
1 つ以上のデバイスで障害が発生しているが、冗長構成のためにデータは引き続き使用可能な状態にあるプール。
すべてのデバイスが正常に動作しているプール。
デバイスの接続が復元されるのを待機しているプール。デバイスの問題が解決されるまで、SUSPENDED プールの状態は wait のままです。
メタデータが壊れているか、1 つまたは複数のデバイスが使用できず、動作を継続するための複製が不足しているプール。
各プールデバイスは、次のいずれかの状態になることができます。
仮想デバイスで障害が発生しましたが、デバイスはまだ動作しています。この状態は、ミラーデバイスまたは RAID-Z デバイスを構成するデバイスのうち、1 つ以上のデバイスが失われたときによく発生します。別のデバイスでの以降の障害が回復不可能になることがあるため、プールの耐障害性が危険にさらされる可能性があります。
管理者がデバイスを明示的にオフラインにしています。
一時的なエラーがいくつか引き続き発生する可能性はありますが、デバイスまたは仮想デバイスは正常な動作状態にあります。
システムの稼働中にデバイスが物理的に取り外されました。デバイスの取り外しの検出はハードウェアに依存しており、一部のプラットフォームではサポートされていない場合があります。
デバイスまたは仮想デバイスを開くことができません。場合によっては、デバイスが UNAVAIL であるプールが DEGRADED モードで表示されることがあります。最上位レベルの仮想デバイスが UNAVAIL の場合は、そのプールのデバイスには一切アクセスできません。
プールの健全性は、最上位レベルのすべての仮想デバイスから判断されます。すべての仮想デバイスが ONLINE の場合は、プールも ONLINE になります。仮想デバイスのいずれかが DEGRADED または UNAVAIL の場合は、プールも DEGRADED になります。最上位レベルの仮想デバイスが UNAVAIL または OFFLINE の場合は、プールも UNAVAIL または SUSPENDED になります。UNAVAIL または SUSPENDED 状態のプールには一切アクセスできません。必要なデバイスが接続または修復されるまで、データは回復できません。DEGRADED 状態のプールは引き続き動作しますが、プールがオンラインであった場合と同じレベルのデータ冗長性またはデータスループットを実現できない可能性があります。
zpool status コマンドはまた、次のように、再同期化およびスクラブ操作の状態も表示します。
再同期化またはスクラブ操作が進行中です。
再同期化またはスクラブ操作が完了しました。
再同期化およびスクラブの完了メッセージはシステムのリブート後も保持されます。
操作が取り消されました。
次のいずれかの zpool status コマンドオプションを使用すると、プールの健全性ステータスを確認できます。
zpool status –x [pool] – エラーがあるか、またはそれ以外で使用できないプールのステータスのみを表示します。
zpool status –v [pool] – プールとそのデバイスに関する詳細情報を提供する詳細出力を生成します。
ONLINE 状態にないプールがある場合は、潜在的な問題がないかどうかを調査するようにしてください。
次の例は、プール system1 に関する詳細なステータスレポートを生成する方法を示しています。
$ zpool status -v system1 pool: system1 state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. scan: scrub repaired 0 in 0h0m with 0 errors on Wed Jun 20 15:38:08 2012 config: NAME STATE READ WRITE CKSUM system1 DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 UNAVAIL 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 device details: c0t5000C500335F907Fd0 UNAVAIL cannot open status: ZFS detected errors on this device. The device was missing. see: URL to My Oracle Support knowledge article for recovery errors: No known data errors
READ 列と WRITE 列には、そのデバイスで発生した入出力エラーの数が表示されます。CKSUM 列には、そのデバイスで発生した訂正不可能なチェックサムエラーの数が表示されます。どちらのエラー数も、何らかの修正アクションが必要な潜在的なデバイス障害を示します。最上位レベルの仮想デバイスでエラー数があると報告された場合、データの一部にアクセスできないことがあります。
この出力は、問題だけでなく、このプールの現在の状態の考えられる原因を識別します。この出力にはまた、この問題から回復するための最良の方法に関する最新情報を含むナレッジ記事へのリンクも含まれています。この出力から、どのデバイスが破損しているか、およびプールを修復する方法を特定できます。
UNAVAIL のプールとデータを診断および修復する方法の詳細は、Oracle Solaris ZFS のトラブルシューティングとプールの回復を参照してください。
zpool status の間隔およびカウントオプションを使用して、ある期間にわたっての統計を収集できます。また、–T オプションを使用することによってタイムスタンプを表示できます。例:
$ zpool status -T d 3 2 Wed Jun 20 16:10:09 MDT 2012 pool: pond state: ONLINE scan: resilvered 9.50K in 0h0m with 0 errors on Wed Jun 20 16:07:34 2012 config: NAME STATE READ WRITE CKSUM pond ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 errors: No known data errors pool: rpool state: ONLINE scan: scrub repaired 0 in 0h11m with 0 errors on Wed Jun 20 15:08:23 2012 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335BA8C3d0s0 ONLINE 0 0 0 c0t5000C500335FC3E7d0s0 ONLINE 0 0 0 errors: No known data errors Wed Jun 20 16:10:12 MDT 2012 pool: pond state: ONLINE scan: resilvered 9.50K in 0h0m with 0 errors on Wed Jun 20 16:07:34 2012 config: NAME STATE READ WRITE CKSUM pond ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 errors: No known data errors pool: rpool state: ONLINE scan: scrub repaired 0 in 0h11m with 0 errors on Wed Jun 20 15:08:23 2012 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335BA8C3d0s0 ONLINE 0 0 0 c0t5000C500335FC3E7d0s0 ONLINE 0 0 0 errors: No known data errors