名前 | 形式 | 機能説明 | 使用例 | 終了ステータス | 属性 | 関連項目
zpool [-?]
zpool create [-fn] [-R root] [-m mountpoint] pool vdev ...
zpool destroy [-f] pool
zpool add [-fn] pool vdev
zpool remove pool vdev
zpool list [-H] [-o field[,field]*] [pool] ...
zpool iostat [-v] [pool] ... [interval [count]]
zpool status [-xv] [pool] ...
zpool offline [-t] pool device ...
zpool online pool device ...
zpool clear pool [device] ...
zpool attach [-f] pool device new_device
zpool detach pool device
zpool replace [-f] pool device [new_device]
zpool scrub [-s] pool ...
zpool export [-f] pool
zpool import [-d dir] [-D]
zpool import [-d dir] [-D] [-f] [-o opts] [-R root] pool | id [newpool]
zpool import [-d dir] [-D] [-f] -a
zpool upgrade
zpool upgrade -v
zpool upgrade [-a | pool]
zpool history [pool] ...
zpool コマンドは、ZFS ストレージプールを構成します。ストレージプールは、ZFS データセット用の物理ストレージおよびデータ複製を提供するデバイスの集合体です。
ストレージプール内部のすべてのデータセットは、同一の領域を共有します。データセットの管理については、zfs(1M) を参照してください。
「仮想デバイス」とは、特定のパフォーマンスおよびフォルト特性に従って編成された単一のデバイスまたはデバイスの集合体を指します。次の仮想デバイスがサポートされています。
ブロックデバイス。通常は「/dev/dsk」内に存在します。ZFS では、個別のスライスまたはパーティションを使用することが可能です。ただし、推奨されているのは、ディスク全体を使用する操作モードです。ディスクは、フルパスで指定することも、短縮名 (「/dev/dsk」以下のパスの相対部分) を使用することもできます。スライスやパーティションの指定を省略すると、ディスク全体を指定できます。たとえば、「c0t0d0」は「/dev/dsk/c0t0d0s2」と等価です。ディスク全体を指定すると、ZFS によりディスクのラベルが必要に応じて自動的に設定されます。
通常のファイル。ファイルをバッキングストアとして使用することは決してお勧めできません。ファイルのフォルトトレランスは、それが存在するファイルシステムと同程度に過ぎません。これは、主に実験用途を念頭に置いて設計されています。ファイルは、フルパスで指定する必要があります。
2 つ以上のデバイスのミラー。データの複製方法は、ミラーのすべてのコンポーネントで同じです。サイズ X のディスク N 台で構成されるミラーは、X バイトの格納が可能であり、(N-1) 台のデバイスで障害が発生してもデータの完全性が保たれます。
RAID-5 の一種。これを使用すると、パリティー分配の向上、および「RAID-5 書き込みホール」(電力喪失によりデータおよびパリティーに矛盾が発生する) の除去が可能になります。データおよびパリティーは、raidz グループ内の全ディスク間でストライプ化されます。
raidz グループは、シングルパリティー、ダブルパリティーのいずれかを持つことができます。これはそれぞれ、raidz グループがデータを一切失うことなく、1 つの障害または 2 つの障害に耐えられることを意味します。raidz1 vdev タイプはシングルパリティーの raidz グループを、raidz2 vdev タイプはダブルパリティーの raidz グループを、それぞれ指定します。raidz vdev タイプは raidz1 の別名です。
サイズ X のディスク N 台 (パリティーディスク P 台を含む) で構成される raidz グループには、約 (N-P)*X バイトを格納可能です。また、1 台のデバイスに障害が発生してもデータの完全性は損なわれません。raidz グループ内のデバイスの最小数は、パリティーディスクの数に 1 を加えたものです。推奨の数は、3 から 9 までです。
特定のプールで使用可能なホットスペアを追跡する特殊な擬似 vdev。詳細は、「ホットスペア」節を参照してください。
仮想デバイスを入れ子にすることはできません。このため、ミラーまたは raidz 仮想デバイスに含めることができるのは、ファイルまたはディスクだけです。ミラーをミラー (またはその他の組み合わせを使用) することはできません。
プールでは、構成の最上位に任意の数の仮想デバイス (「ルート vdevs」と呼ばれる) を含めることができます。最上位の全デバイス間でデータが動的に配分されることで、デバイス間のデータ均衡が保たれます。新しい仮想デバイスが追加されると、ZFS は使用可能になった新規デバイスにデータを自動的に格納します。
コマンド行で、複数の仮想デバイスを 1 つずつ空白で区切って指定できます。キーワード「mirror」や「raidz」は、グループが終了し、別のグループが開始することを示す場合に使用します。たとえば、次のコマンドは、それぞれが 2 台のディスクのミラーである 2 つのルート vdevs を作成します。
# zpool create mypool mirror c0t0d0 c0t1d0 mirror c1t0d0 c1t1d0 |
ZFS では、デバイス障害およびデータ破壊を処理するための豊富な機構がサポートされています。すべてのメタデータおよびデータのチェックサムが実行され、破壊が検出されると、ZFS により不正なデータが正常なコピーを使って自動的に修復されます。
これらの機能を活用するため、プールでミラー化グループまたは raidz グループを使って、なんらかの形式の冗長性を利用する必要があります。ZFS では、非冗長設定 (各ルート vdev は単なるディスクまたはファイル) での実行がサポートされていますが、この方法は決してお勧めできません。ビット破壊が 1 回発生するだけで、データの一部またはすべてが使用不可になる可能性があるためです。
プールの健全性状態は、次の 3 つの状態のいずれかで表されます。オンライン、機能低下、またはフォルトです。オンラインプールでは、すべてのデバイスが正常に動作しています。機能低下プールでは、1 つ以上のデバイスで障害が発生していますが、冗長性設定のためにデータを引き続き使用できます。フォルトプールでは、1 つ以上のデバイスで障害が発生しており、冗長性が不十分であるために欠落したデータを複製できません。
ZFS では、デバイスを「ホットスペア」としてプールに関連付けることができます。これらのデバイスはプール内でアクティブには使用されませんが、特定のアクティブデバイスで障害が発生すると、そのデバイスは特定のホットスペアで自動的に置き換えられます。ホットスペアを含むプールを作成するには、「spare」 vdev と任意の数のデバイスを指定します。たとえば、
# zpool create pool mirror c0d0 c1d0 spare c2d0 c3d0 |
スペアは複数のプール間で共有できます。スペアを追加するには「zpool add」コマンドを、削除するには「zpool remove」コマンドを、それぞれ使用します。スペア置換が起動されると新しい「spare」vdev が構成内に作成されますが、元のデバイスが交換されるとそのスペアは削除されます。この時点で、別のデバイスで障害が発生すると、そのホットスペアは再度使用可能となります。
処理中のスペア置換を取り消すには、そのホットスペアを切り離します。障害の発生した元のデバイスが切り離されると、そのデバイスが構成内で占めていた位置にホットスペアが配置され、そのホットスペアがすべてのアクティブプールのスペアリストから削除されます。
「zpool create -R」および「zpool import -R」コマンドを使用すると、異なるルートパスを持つプールの作成およびインポートを実行できます。デフォルトでは、システムでプールを作成またはインポートする際、プールが永続的に追加され、システムのブート時に常に使用できるようになります。リムーバブルメディアを使用する場合や復旧を行う場合には、この動作は望ましくないこともあります。代替ルートプールは、システム上で持続しません。エクスポートされるか、システムがリブートするまでの間だけ存在します。その時点で、代替ルートプールを再度インポートする必要があります。
また、プール内のすべてのマウントポイントに、指定したルートが接頭辞として付加されるため、プールをファイルシステム内の特定の領域に制限できます。これがもっとも役立つのは、リムーバブルメディアから未知のプールをインポートする場合です。どのファイルシステムのマウントポイントも信頼することができないためです。
代替ルートプール作成時のデフォルトマウントポイントは、通常のデフォルト「/pool」ではなく「/」です。
状態を変更するサブコマンドはすべて、元の形式でプールに永続的に記録されます。
zpool コマンドの提供するサブコマンドを使用すると、ストレージプールの作成と破棄、ストレージプールへの容量の追加、およびストレージプールに関する情報提供を行えます。サポートされているサブコマンドは次のとおりです。
ヘルプメッセージを表示します。
コマンド行で指定した仮想デバイスを含む新規ストレージプールを作成します。プール名の先頭は文字でなければなりません。また、プール名に含めることができるのは、英数字、下線(「_」)、ダッシュ (「-」)、およびピリオド (「.」) です。プールは予約されている「mirror」、「raidz」、および「spare」と、パターン「c[0-9]」で始まるデバイスを設定できます。vdev の仕様については、「仮想デバイス」の節を参照してください。
このコマンドは、指定された各デバイスがアクセス可能であり、現在別のサブシステムにより使用されていないことを確認します。ある種の用法 (現在マウントされている、専用のダンプデバイスとして指定されているなど) では、ZFS によるデバイスの使用が妨げられます。-f オプションを使用すると、その他の用法 (既存の UFS ファイルシステムの使用など) を上書きできます。
このコマンドは、プールの複製方法が一貫しているかどうかもチェックします。-f を指定せずに、単一のプール内で冗長ストレージと非冗長ストレージの結合を試みたり、ディスクとファイルの混在を試みると、エラーが発生します。-f を指定せずに、単一の raidz またはミラーグループ内でサイズの異なるデバイスを使用しても、エラーのフラグが付けられます。
-R オプションを指定しない場合の、デフォルトのマウントポイントは「/pool」です。このマウントポイントは存在しないか、空でなければなりません。さもないと、ルートデータセットをマウントすることはできません。これは、-m オプションを使って上書きできます。
使用中と表示されていたり、競合する複製レベルが指定されていたとしても、vdev の使用を強制します。この方法で、すべてのデバイスを上書きできるわけではありません。
使用する設定を、実際にプールを作成せずに表示します。実際のプール作成は、権限の不足またはデバイス共有のために失敗する可能性があります。
代替 root を使ってプールを作成します。「代替ルートプール」の節を参照してください。この操作の一環として、ルートデータセットのマウントポイントが「/」に設定されます。
ルートデータセットのマウントポイントを設定します。デフォルトのマウントポイントは、「/pool」です。このマウントポイントは絶対パス、「legacy」または「none」でなければなりません。データセットマウントポイントの詳細は、zfs(1M) を参照してください。
指定したプールを破棄し、すべてのデバイスを解放してほかの用途で使用できるようにします。このコマンドは、プールを破棄する前に、アクティブなデータセットすべてのマウント解除を試みます。
プール内に含まれるアクティブなデータセットすべてのマウント解除を強制的に行います。
指定された仮想デバイスを指定したプールに追加します。vdev の仕様については、「仮想デバイス」の節を参照してください。-f オプションの動作、および実行されるデバイス検査については、「zpool create」サブコマンドを参照してください。
使用中と表示されていたり、競合する複製レベルが指定されていたとしても、vdev の使用を強制します。この方法で、すべてのデバイスを上書きできるわけではありません。
vdev を実際に追加することなく、使用される設定を表示します。実際のプール作成は、権限の不足またはデバイス共有のために失敗する可能性があります。
現在設定されているディスクは、定足数デバイスとして zpool に追加しないでください。ディスクがいったん zpool に追加されると、そのディスクは定足数デバイスとして設定可能になります。
指定された vdev をプールから削除します。このコマンドが現在サポートしているのは、ホットスペアの削除だけです。ミラーの一部となっているデバイスは、「zpool detach」コマンドを使用して削除できます。raidz と最上位 vdev は、プールから削除できません。
指定したプールについて、健全性状態および領域使用状況を一覧表示します。引数を指定しない場合、システム内のすべてのプールが表示されます。
スクリプトモード。ヘッダーを表示せず、フィールドを任意の空白文字ではなく単一のタブで区切ります。
表示するフィールドのコンマ区切りのリスト。各フィールドには、次のいずれかを指定する必要があります。
name Pool name size Total size used Amount of space used available Amount of space available capacity Percentage of pool space used health Health status |
デフォルトはすべてのフィールドです。
このコマンドにより、ストレージプールで使用可能な実際の物理容量がレポートされます。物理容量は、内部の全データセットが実際に使用可能な総容量とは異なる場合があります。raidz 設定で使用される容量は、書き込まれるデータの特性により異なります。また、ZFS は、zfs(1M) コマンドが考慮に入れる内部アカウンティングのための容量を確保します。しかし、zpool コマンドでは内部アカウンティングを考慮しません。容量に余裕のある適切なサイズのプールの場合、これらの影響は見えません。小さなプールまたは容量全体がほぼ使用されているプールの場合、これらの相違はより目立つようになります。
指定したプールの I/O 統計を表示します。間隔を指定した場合、Ctrl-C キーを押すまで、統計が interval 秒ごとに出力されます。pools を指定しない場合、システム内のすべてのプールの統計が表示されます。count を指定した場合、このコマンドは count レポートの出力後に配置されます。
詳細な統計。プール全体の統計と共に、プール内の各 vdevs の使用状況統計をレポートします。
指定したプールの詳細な健全性状態を表示します。pool を指定しない場合、システムの各プールの状態が表示されます。
消し込みまたは再同期化が進行中の場合、このコマンドは、実行済みの割合 (パーセント) および推定完了時間をレポートします。プール内のデータ量およびシステムのその他のワークロードは変化する場合があるため、これらはどちらも概算値に過ぎません。
エラーが発生しているか、使用不可能なプールの状態だけを表示します。
詳細なデータエラー情報を表示し、前回のプール消し込みが完了して以降のデータエラーすべての完全なリストを出力します。
指定した物理デバイスをオフラインにします。オフライン状態にある device に対して、読み取りや書き込みは行われません。
このコマンドは、スペアには適用されません。
「temporary」。リブートすると、指定した物理デバイスは以前の状態に戻ります。
指定した物理デバイスをオンラインにします。
このコマンドは、スペアには適用されません。
プール内のデバイスエラーをクリアします。引数を指定しない場合、プール内のすべてのデバイスエラーがクリアされます。1 つ以上のデバイスを指定すると、指定したデバイスに関連するエラーだけがクリアされます。
new_device を既存の zpool デバイスに接続します。既存のデバイスを、raidz 構成の一部にすることはできません。device が現在ミラー構成の一部ではない場合、device は device および new_device の 2 方向のミラーに自動的に変換されます。device が 2 方向ミラーの一部である場合、new_device を接続すると 3 方向ミラーが作成され、以下同様に作成されます。どの場合でも、new_device の再同期化がすぐに開始されます。
new_device が使用中と表示されている場合でも、これを強制的に使用します。この方法で、すべてのデバイスを上書きできるわけではありません。
device をミラーから切り離します。データの有効な複製がほかに存在しない場合、この操作は拒否されます。
old_device を new_device で置き換えます。これは、new_device を接続し、再同期化の実行まで待機してから old_device を切り離す操作と同じです。
new_device のサイズは、ミラーまたは raidz 構成内の全デバイスの最小サイズ以上でなければなりません。
new_device を指定しない場合、デフォルトの old_device が使用されます。この置換形式は、既存のディスクで障害が発生したためにディスクを物理的に交換したあとで実行する場合に役立ちます。この場合、実際には別のディスクであっても、新規ディスクには以前のデバイスと同じ /dev/dsk パスが使用されます。これは、ZFS により認識されます。
new_device が使用中と表示されている場合でも、これを強制的に使用します。この方法で、すべてのデバイスを上書きできるわけではありません。
消し込みを開始します。消し込みにより、指定したプール内のすべてのデータが検査され、チェックサムが適正に検証されます。複製された (ミラーまたは raidz) デバイスの場合、消し込み中に検出されたすべての損傷は、ZFS により自動的に修復されます。「zpool status」コマンドは、消し込みの進捗状況をレポートします。また、完了時には消し込み結果の概要を出力します。
消し込みおよび再同期化は、非常に類似した操作です。相違点は、再同期化では ZFS が期限切れであることを認識しているデータだけが検査されますが (新規デバイスをミラーに接続する場合や、既存のデバイスを置換する場合など)、消し込みではすべてのデータが検査されるため、ハードウェア障害やディスク障害に起因する非表示のエラーも検出されます。
消し込みと再同期化は、I/O 集約的な操作であるため、 ZFS では一度に 1 つの操作だけが許可されます。進行中の消し込みが存在する場合に「zpool scrub」コマンドを実行すると、進行中の消し込みが終了して、新規消し込みが開始されます。進行中の再同期化が存在する場合、ZFS は、再同期化が完了するまで書き込みの開始を許可しません。
消し込みを停止します。
指定したプールをシステムからエクスポートします。すべてのデバイスにエクスポート済みのマークが付けられますが、別のサブシステムからは引き続き使用中と見なされます。十分な数のデバイスが存在するかぎり、このデバイスをシステム間 (エンディアンの異なるシステムを含む) で移動またはインポートすることが可能です。
プールをエクスポートする前に、プール内のすべてのデータセットがマウント解除されます。
プールを可搬性のあるものにするため、zpool コマンドに単なるスライスではなく、ディスク全体を指定する必要があります。これにより、ZFS は可搬性のある EFI ラベルをディスクに設定します。これを行わない場合、エンディアンの異なるプラットフォーム上のディスクドライバは、ディスクを認識しません。
「unmount -f」コマンドを使用して、すべてのデータセットを強制的にマウント解除します。
インポートに使用可能なプールを一覧表示します。-d オプションを指定しない場合、このコマンドは「/dev/dsk」内のデバイスを検索します。-d オプションは、複数回指定できます。このオプションを指定すると、すべてのディレクトリが検索されます。デバイスがエクスポートされたプールの一部として表示される場合、このコマンドは、プールの名前、数値識別子、および各デバイスやファイルの vdev レイアウトと現在の健全性を含むプールの概要を表示します。-D オプションを指定しないかぎり、破棄されるプールや「-zpool destroy」コマンドを使って以前に破棄されたプールは表示されません。
数値識別子は一意であり、エクスポートされた同名のプールを複数利用可能な場合にプール名の代わりに使用できます。
デバイスまたはファイルを dir 内で検索します。-d オプションは複数回指定できます。
破棄されたプールだけを一覧表示します。
特定のプールをインポートします。プールは、名前または数値識別子を使って識別できます。newpool を指定すると、名前 newpool を使ってプールがインポートされます。それ以外の場合は、エクスポートされた名前と同じ名前を使ってインポートが行われます。
「zpool export」を最初に実行せずにシステムからデバイスを削除すると、そのデバイスは潜在的にアクティブな状態として表示されます。これがエクスポートの失敗を示すのか、デバイスが別のホストにより実際に使用されていることを示すのかを見分けることはできません。この状態のプールをインポートするには、-f オプションを指定する必要があります。
デバイスまたはファイルを dir 内で検索します。-d オプションは複数回指定できます。
破棄されたプールをインポートします。-f オプションも指定する必要があります。
プールが潜在的にアクティブであると表示されている場合でも、インポートを強制的に実行します。
プール内のデータセットのマウント時に使用するマウントオプションのコンマ区切りのリスト。データセットのプロパティーとマウントオプションの説明については、zfs(1M) を参照してください。
代替 root を使ってプールをインポートします。「代替ルートプール」の節を参照してください。
検索ディレクトリ内で検出されたプールをすべてインポートします。十分な数のデバイスを使用可能なプールがすべてインポートされることを除き、前のコマンドと同じです。-D オプションを指定しないかぎり、破棄されるプールや「-zpool destroy」コマンドを使って以前に破棄されたプールはインポートされません。
デバイスまたはファイルを dir 内で検索します。-d オプションは複数回指定できます。
破棄されたプールだけをインポートします。-f オプションも指定する必要があります。
プールが潜在的にアクティブであると表示されている場合でも、インポートを強制的に実行します。
ディスク上にある ZFS とは別のバージョンを使ってフォーマットされたプールをすべて表示します。以前のバージョンは引き続き使用できますが、一部の機能は利用できない場合があります。これらのプールは、「zpool upgrade -a」を使用してアップグレードできます。より新しいバージョンでフォーマットされたプールも表示されますが、システム上でこれらのプールにアクセスすることはできません。
現在のソフトウェアでサポートされている ZFS バージョンを表示します。現在の ZFS バージョンおよびサポートされる以前のバージョンすべてが、各バージョンで提供される機能に関する説明と共に表示されます。
指定したプールを最新のオンディスクバージョンにアップグレードします。これを実行すると、以前のバージョンのソフトウェアを実行するシステム上で、プールにアクセスすることはできなくなります。
すべてのプールをアップグレードします。
指定したプール (プールを指定しない場合はすべてのプール) のコマンド履歴を表示します。
# zpool create tank raidz c0t0d0 c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0
次のコマンドは、2 つのミラーを持つプールを作成します。各ミラーには 2 台のディスクが含まれます。
# zpool create tank mirror c0t0d0 c0t1d0 mirror c0t2d0 c0t3d0
次のコマンドは、2 つのディスクスライスを使ってミラー化されていないプールを作成します。
# zpool create tank /dev/dsk/c0t0d0s1 c0t1d0s4
次のコマンドは、ファイルを使ってミラー化されていないプールを作成します。推奨される使用法ではありませんが、実験目的で使用する場合にファイルを使って作成したプールは便利です。
# zpool create tank /path/to/file/a /path/to/file/b
次のコマンドは、2 つのミラー化ディスクをプール「tank」に追加します。ただし、プールは 2 方向ミラーで構成済みであるものとします。プール内のすべてのデータセットは、追加された領域をすぐに利用できます。
# zpool add tank mirror c1t0d0 c1t1d0
次のコマンドは、システムで使用可能なすべてのプールを一覧表示します。ここでは、デバイスの欠落が原因で、プール zion に障害が発生しています。
このコマンドを実行すると、次のような結果が表示されます。
# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT pool 67.5G 2.92M 67.5G 0% ONLINE - tank 67.5G 2.92M 67.5G 0% ONLINE - zion - - - 0% FAULTED -
次のコマンドは、プール「tank」およびその内部のデータセットをすべて破棄します。
# zpool destroy -f tank
次のコマンドは、プール tank 内のデバイスをエクスポートします。エクスポートされたデバイスは、再配置したり、あとでインポートしたりすることが可能です。
# zpool export tank
次のコマンドは、使用可能なプールを表示してから、プール「tank」をインポートしてシステムで使用できるようにします。
このコマンドを実行すると、次のような結果が表示されます。
# zpool import pool: tank id: 15451357997522795478 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: tank ONLINE mirror ONLINE c1t2d0 ONLINE c1t3d0 ONLINE # zpool import tank
次のコマンドは、すべての ZFS ストレージプールを最新バージョンのソフトウェアにアップグレードします。
# zpool upgrade -a This system is currently running ZFS version 2.
次のコマンドは、使用可能なホットスペアを 1 つ含む新しいプールを作成します。
# zpool create tank mirror c0t0d0 c0t1d0 spare c0t2d0
いずれかのディスクで障害が発生すると、このプールは機能低下状態に陥ります。障害が発生したデバイスを交換するには、次のコマンドを使用します。
# zpool replace tank c0t0d0 c0t3d0
いったんデータが回復されると、スペアは自動的に削除され、障害が発生した別のデバイスで使用可能となります。ホットスペアをプールから完全に削除するには、次のコマンドを使用します。
# zpool remove tank c0t2d0
次の属性についての詳細は、マニュアルページの attributes(5) を参照してください。
属性タイプ |
属性値 |
---|---|
使用条件 |
SUNWzfsu |
インタフェースの安定性 |
開発中 |