ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
マニュアルページセクション 1M: システム管理コマンド Oracle Solaris 11 Information Library (日本語) |
- ZFS ストレージプールの構成
zpool [-?]
zpool help command | help | property property-name
zpool add [-f] [-n [-l]] pool vdev ...
zpool attach [-f] pool device new_device
zpool clear [-F [-n]] pool [device]
zpool create [-f] [-n [-l]] [-o property=value] ... [-O file-system-property=value] ... [-m mountpoint] [-R root] pool vdev ...
zpool destroy [-f] pool
zpool detach pool device
zpool export [-f] pool ...
zpool get "all" | property[,...] pool ...
zpool history [-il] [pool] ...
zpool import [-d path ...] [-D]
zpool import [-o mntopts] [-o property=value] ... [-d path ... | -c cachefile] [-D] [-f] [-m] [-N] [-R root] [-F [-n [-l]]] -a
zpool import [-o mntopts] [-o property=value] ... [-d path ... | -c cachefile] [-D] [-f] [-m] [-R root] [-F [-n [-l]]] pool | id [newpool]
zpool iostat [-T d|u ] [-v [-l]] [pool] ... [interval[count]]
zpool list [-H] [-o property[,...]] [-T d|u ] [pool] ... [interval[count]]
zpool offline [-t] pool device ...
zpool online [-e] pool device ...
zpool remove pool device ...
zpool replace [-f] pool device [new_device]
zpool scrub [-s] pool ...
zpool set property=value pool
zpool split [-R altroot] [-n [-l]] [-o mntopts] [-o property=value] pool newpool [device ...]
zpool status [-l] [-v] [-x] [-T d|u ] [pool] ... [interval[count]]
zpool upgrade
zpool upgrade -v
zpool upgrade [-V version] -a | pool ...
zpool コマンドは、ZFS ストレージプールを構成します。ストレージプールは、ZFS データセット用の物理ストレージおよびデータ複製を提供するデバイスの集合体です。
ストレージプール内部のすべてのデータセットは、同一の領域を共有します。データセットの管理については、zfs(1M) を参照してください。
「仮想デバイス」とは、特定のパフォーマンスおよび障害特性に従って編成された単一のデバイスまたはデバイスの集合体を指します。次の仮想デバイスがサポートされています。
ブロックデバイス。通常は /dev/dsk 内に存在します。ZFS では、個別のスライスまたはパーティションを使用することが可能です。ただし、推奨されているのは、ディスク全体を使用する操作モードです。ディスクは、フルパスで指定することも、短縮名 (「/dev/dsk」以下のパスの相対部分) を使用することもできます。スライスやパーティションの指定を省略すると、ディスク全体を指定できます。また、ディスクの現在の場所を指定する /dev/chassis/.../disk パスを使って、ディスク全体を指定することもできます。ディスク全体を指定すると、ZFS によりディスクのラベルが必要に応じて自動的に設定されます。
通常のファイル。ファイルをバッキングストアとして使用することは決してお勧めできません。ファイルのフォルトトレランスは、それが存在するファイルシステムと同程度に過ぎません。これは、主に実験用途を念頭に置いて設計されています。ファイルは、フルパスで指定する必要があります。
2 つ以上のデバイスのミラー。データの複製方法は、ミラーのすべてのコンポーネントで同じです。サイズ X のディスク N 台で構成されるミラーは、X バイトの格納が可能であり、(N-1) 台のデバイスで障害が発生してもデータの整合性が保たれます。
RAID-5 の一種。これを使用すると、パリティー分配の向上、および「RAID-5 書き込みホール」(電力喪失によりデータおよびパリティーに矛盾が発生する) の除去が可能になります。データおよびパリティーは、raidz グループ内の全ディスク間でストライプ化されます。
raidz グループは、シングルパリティー、ダブルパリティー、トリプルパリティーのいずれかを持つことができます。これはそれぞれ、raidz グループがデータを一切失うことなく、1 つ、2 つ、または 3 つの障害に耐えられることを意味します。raidz1 vdev タイプはシングルパリティー raidz グループを、raidz2 vdev タイプはダブルパリティー raidz グループを、raidz3 vdev タイプはトリプルパリティー raidz グループを指定します。raidz vdev タイプは raidz1 の別名です。
サイズ X のディスク N 台 (パリティーディスク P 台を含む) で構成される raidz グループには、約 (N-P)*X バイトを格納可能です。また、P 台のデバイスに障害が発生してもデータの整合性は損なわれません。raidz グループ内のデバイスの最小数は、パリティーディスクの数に 1 を加えたものです。パフォーマンス向上のために推奨される数は、3 から 9 までです。
特定のプールで使用可能なホットスペアを追跡する特殊な擬似 vdev。詳細は、「ホットスペア」節を参照してください。
別個のインテントログデバイス。複数のログデバイスを指定すると、書き込みの負荷がデバイス間で分散されます。ログデバイスはミラー化できます。ただし、インテントログで raidz vdev タイプはサポートされていません。詳細は、「インテントログ」の節を参照してください。
ストレージプールのデータをキャッシュするために使用するデバイス。キャッシュデバイスをミラーまたは raidz グループとして構成することはできません。詳細は、「キャッシュデバイス」の節を参照してください。
仮想デバイスを入れ子にすることはできません。このため、ミラーまたは raidz 仮想デバイスに含めることができるのは、ファイルまたはディスクだけです。ミラーをミラー (またはその他の組み合わせを使用) することはできません。
プールでは、構成の最上位に任意の数の仮想デバイス (「ルート vdevs」と呼ばれる) を含めることができます。最上位の全デバイス間でデータが動的に配分されることで、デバイス間のデータ均衡が保たれます。新しい仮想デバイスが追加されると、ZFS は使用可能になった新規デバイスにデータを自動的に格納します。
コマンド行で、複数の仮想デバイスを 1 つずつスペースで区切って指定できます。キーワード「mirror」や「raidz」は、グループが終了し、別のグループが開始することを示す場合に使用します。たとえば、次のコマンドは、それぞれが 2 台のディスクのミラーである 2 つのルート vdevs を作成します。
# zpool create mypool mirror c0t0d0 c0t1d0 mirror c1t0d0 c1t1d0
また、次のコマンドも使用可能です。
# zpool create tank \ mirror \ /dev/chassis/RACK29.U01-04/DISK_00/disk \ /dev/chassis/RACK29.U05-08/DISK_00/disk \ mirror \ /dev/chassis/RACK29.U01-04/DISK_01/disk \ /dev/chassis/RACK29.U05-08/DISK_01/disk
ZFS では、デバイス障害およびデータ破壊を処理するための豊富なメカニズムがサポートされています。すべてのメタデータおよびデータのチェックサムが実行され、破壊が検出されると、ZFS により不正なデータが正常なコピーを使って自動的に修復されます。
これらの機能を活用するため、プールでミラー化グループまたは raidz グループを使って、なんらかの形式の冗長性を利用する必要があります。ZFS では、非冗長構成 (各ルート vdev は単なるディスクまたはファイル) での実行がサポートされていますが、この方法は決してお勧めできません。ビット破壊が 1 回発生するだけで、データの一部またはすべてが使用不可になる可能性があるためです。
プールの健全性ステータスは、次の 3 つのステータスのいずれかで表されます。 オンライン、機能低下、または障害ステータスです。オンラインプールでは、すべてのデバイスが正常に動作しています。機能低下プールでは、1 つ以上のデバイスで障害が発生していますが、冗長性構成のためにデータを引き続き使用できます。障害が発生したプールでは、メタデータが壊れているか、1 つ以上のデバイスで障害が発生しており、動作を継続するための複製が不足しています。
ミラーや raidz デバイスなどの最上位 vdev の健全性は、それに関連付けられた vdev (コンポーネントデバイス) の状態に影響される可能性があります。最上位 vdev とコンポーネントデバイスの状態は、次のいずれかになります。
1 つ以上のコンポーネントデバイスがオフラインであるため、1 つ以上の最上位 vdev が機能低下状態になっています。動作を継続するための十分な複製が存在します。
1 つ以上のコンポーネントデバイスが機能低下または障害状態になっていますが、動作を継続するための十分な複製が存在します。その元となる条件は次のとおりです。
チェックサムエラーの数が許容レベルを超え、デバイスの機能低下が発生してなんらかの障害の可能性を示しています。必要に応じて、ZFS はそのデバイスを引き続き使用します。
入出力エラーの数が許容レベルを超えています。動作を継続するための複製が不足しているため、デバイスを障害状態としてマークできませんでした。
1 つ以上のコンポーネントデバイスがオフラインであるため、1 つ以上の最上位 vdev が障害状態になっています。動作を継続するための複製が不足しています。
1 つ以上のコンポーネントデバイスが障害状態になっており、動作を継続するための複製が不足しています。その元となる条件は次のとおりです。
デバイスを開くことはできましたが、内容が期待された値と一致しませんでした。
入出力エラーの数が許容レベルを超え、デバイスは障害発生のため、今後使用できなくなりました。
デバイスは「zpool offline」コマンドによって明示的にオフラインになりました。
デバイスはオンライン状態で動作しています。
システムの稼働中にデバイスが物理的に取り外されました。デバイスの取り外しの検出はハードウェアに依存しており、一部のプラットフォームではサポートされていない場合があります。
デバイスがオープンできないデバイスが使用不可状態のときにプールをインポートすると、デバイスのパスは最初から間違っているため、デバイスはパスの代わりに一意の識別子によって識別されます。
デバイスを削除したあとでシステムに再度接続すると、ZFS は自動的にデバイスをオンラインにしようと試みます。デバイスの接続の検出はハードウェアに依存しており、一部のプラットフォームではサポートされていない場合があります。
ZFS では、デバイスを「ホットスペア」としてプールに関連付けることができます。これらのデバイスはプール内でアクティブには使用されませんが、特定のアクティブデバイスで障害が発生すると、そのデバイスは特定のホットスペアで自動的に置き換えられます。ホットスペアを含むプールを作成するには、「spare」 vdev と任意の数のデバイスを指定します。たとえば、次のように指定します。
# zpool create pool mirror c0d0 c1d0 spare c2d0 c3d0
スペアは zpool add コマンドで追加し、zpool remove コマンドで削除することができます。スペア置換が開始されると新しい「spare」vdev が構成内に作成されますが、元のデバイスが交換されるとそのスペアは削除されます。この時点で、別のデバイスで障害が発生すると、そのホットスペアは再度使用可能となります。
処理中のスペア置換を取り消すには、そのホットスペアを切り離します。障害の発生した元のデバイスが切り離されると、そのデバイスが構成内で占めていた位置にホットスペアが配置され、そのホットスペアがすべてのアクティブプールのスペアリストから削除されます。
障害が発生した元のデバイスが物理的に置き換えられてオンラインに戻るか、またはエラーが FMA イベントを通して、あるいは zpool online コマンドまたは zpool clear コマンドを使用してクリアーされ、かつ元のデバイスの状態が正常になった場合は、INUSE スペアデバイスが再度 AVAIL になります。
ログデバイスをスペアで置き換えることはできません。
ZFS インテントログ (ZIL) は、同期トランザクションの POSIX 要件を満たしています。たとえば、多くの場合、データベースがシステムコールから戻るときは、そのトランザクションが安定したストレージデバイス上に置かれている必要があります。NFS やその他のアプリケーションでは、データの安定性を確保するために fsync() も使用できます。デフォルトでは、インテントログはメインプール内のブロックから割り当てられます。ただし、NVRAM や専用ディスクなどの別個のインテントログデバイスを使用することにより、パフォーマンスを向上できる可能性があります。例:
# zpool create pool c0d0 c1d0 log c2d0
複数のログデバイスを指定することもでき、それらをミラー化することもできます。複数のログデバイスをミラー化する例については、「使用例」の節を参照してください。
ログデバイスは、より大規模なプールの一部として、追加、置き換え、接続、切り離し、インポート、およびエクスポートできます。ミラー化されたログデバイスは、ログの最上位レベルのミラーを指定することによって削除できます。
ストレージプールに「キャッシュデバイス」としてデバイスを追加できます。これらのデバイスにより、メインメモリーとディスクの間にキャッシュレイヤーが追加されます。集中的に読み取りを行う作業負荷の場合、作業セットのサイズがメインメモリーにキャッシュできるサイズを大きく超えますが、キャッシュデバイスを使用すると、この作業セットの大部分を低遅延メディアから提供できるようになります。キャッシュデバイスを使用すると、ほぼ静的なコンテンツをランダムに読み込む作業負荷のパフォーマンスが大幅に向上します。
キャッシュデバイスを含むプールを作成するには、「cache」vdev と任意の数のデバイスを指定します。例:
# zpool create pool c0d0 c1d0 cache c2d0 c3d0
キャッシュデバイスは、ミラー化することも、raidz 構成に含めることもできません。キャッシュデバイスで読み取りエラーが検出されると、ミラー化構成または raidz 構成に含まれている可能性があるオリジナルのストレージプールデバイスに対して、その読み取り I/O が再発行されます。
キャッシュデバイスの内容は、他のシステムキャッシュによるキャッシュと同様、揮発性であるとみなされます。
インポートされたそれぞれのプールには、zpool-poolname という名の関連プロセスがあります。このプロセスのスレッドはプールの入出力処理スレッドで、プールに関連付けられたすべての入出力に対して、圧縮、チェックサム、およびそのほかのタスクを処理します。このプロセスは、システムのストレージプールの CPU 使用状況を確認するために用意されています。このプロセスがあるため、インタフェースは不安定になっています。
各プールには、いくつかのプロパティーが関連付けられています。一部のプロパティーは読み取り専用の統計ですが、その他はプールの動作を変更する構成可能なプロパティーです。次のプロパティーは読み取り専用です。
物理的に割り当てられているプール内の記憶容量。このプロパティーは、列の短縮名 alloc で参照することもできます。
プール内で使用されている領域の割合。このプロパティーは、列名の短縮形「cap」を使用しても参照できます。
プールに対して指定された複製解除率。乗数で表記されます。この値は単一の 10 進数として表記されます。たとえば、dedupratio 値が 1.76 の場合、1.76 単位のデータが格納されていたものの、実際には 1 単位のディスク容量だけが消費されていたことを示します。このプロパティーは、列の短縮名 dedup を使用して参照することもできます。
複製解除を有効にするには、次のように指定します。
# zfs set dedup=on pool/dataset
デフォルト値は off です。
複製解除機能についての詳細は、zfs(1M) を参照してください。
プール内の割り当てられないブロック数。
プールの一意の識別子。
プールの現在の健全性。健全性は、「ONLINE」、「DEGRADED」、「FAULTED」のいずれかです。
ストレージプールの合計サイズ。
これらの領域使用状況プロパティーでは、ストレージプールで使用可能な実際の物理容量が報告されます。物理容量は、内部の全データセットが実際に使用可能な総容量とは異なる場合があります。raidz 構成で使用される容量は、書き込まれるデータの特性により異なります。また、ZFS は、zfs(1M) コマンドが考慮に入れる内部アカウンティングのための容量を確保します。しかし、zpool コマンドでは内部アカウンティングを考慮しません。容量に余裕のある適切なサイズのプールの場合、これらの影響は見えません。小さなプールまたは容量全体がほぼ使用されているプールの場合、これらの相違はより目立つようになります。
次のプロパティーは、作成時およびインポート時に設定できます。
代替ルートディレクトリ。設定されている場合、プール内のすべてのマウントポイントの先頭にこのディレクトリが付加されます。このプロパティーは、マウントポイントが信頼できない不明なプールを調べるときや、通常のパスが有効でない代替ブート環境で使用できます。altroot は永続的プロパティーではありません。システムが稼働しているときにのみ有効です。altroot を設定すると、デフォルトで cachefile=none が使用されます。ただし、これは明示的な設定を使用して上書きできます。
次のプロパティーは、インポート時に設定できます。
このプールを変更できるかどうかを制御します。有効になっている場合は、そのプールが読み取り/書き込みモードでインポートされるまで、インテントログ内にのみ存在するどの同期データにもアクセスできません。
読み取り専用モードでのプールのインポートには、次の制限事項があります。
インポート中に追加のプールプロパティーを設定しようとしても無視されます。
ファイルシステムのマウントはすべて、読み取り専用 (ro) マウントオプションを含むように変換されます。
読み取り専用モードでインポートされたプールは、そのプールをエクスポートおよびインポートすることによって読み取り/書き込みモードに戻すことができます。
次のプロパティーは作成時とインポート時に設定でき、あとで zpool set コマンドを使用して変更できます。
基本となる LUN が増えたときに、自動プール拡張を制御します。on に設定すると、拡張されたデバイスのサイズに応じてプールのサイズが変更されます。デバイスがミラーまたは raidz に含まれている場合、プールで新しい容量を使用できるようにするには、そのミラー/raidz グループ内のすべてのデバイスを拡張する必要があります。デフォルトの動作は off です。このプロパティーは、列の短縮名 expand を使用して参照することもできます。
自動デバイス交換を制御します。「off」に設定されている場合、管理者が「zpool replace」コマンドを使ってデバイス交換を開始する必要があります。「on」に設定されている場合、そのプールに以前属していたデバイスと物理的に同じ位置にある新しいデバイスは、いずれも自動的にフォーマットされ、置き換えられます。デフォルトの動作は「off」です。このプロパティーは、列名の短縮形「replace」を使用しても参照できます。
ルートプールのデフォルトのブート可能データセットを示します。このプロパティーは、主にインストールプログラムとアップグレードプログラムによって設定されるものと想定されています。
プール構成をキャッシュする場所を制御します。システムの起動時にすべてのプールを見つけるには、ルートファイルシステムに保存されている構成データのキャッシュされたコピーが必要です。システムのブート時に、このキャッシュ内のすべてのプールが自動的にインポートされます。インストール環境やクラスタ化環境などの一部の環境では、プールが自動的にインポートされないようにするために、この情報を別の場所にキャッシュする必要があります。このプロパティーを設定すると、プール構成を別の場所にキャッシュし、あとで「zpool import -c」コマンドを使用してインポートできます。特殊な値「none」に設定すると、キャッシュされることのない一時プールが作成されます。特殊な値 '' (空の文字列) に設定すると、デフォルトの場所が使用されます。
同じキャッシュファイルを複数のプールで共有できます。プールの追加時と削除時に、このファイルはカーネルによって破棄され再作成されるため、このファイルにアクセスしようとするときは注意が必要です。キャッシュファイルを使用している最後のプールがエクスポートまたは破棄されると、そのファイルは削除されます。
コピー数のしきい値を設定します。複製解除されたブロックの参照数がこのしきい値を超えると、そのブロックの別の複製コピーが自動的に格納されます。デフォルト値は 0 です。
データセットに定義されているデータセットのアクセス権に基づいて非特権ユーザーにアクセス権を付与するかどうかを制御します。ZFS 委任管理の詳細については、zfs(1M) を参照してください。
壊滅的なプール障害が発生した場合のシステムの動作を制御します。通常は、配下のストレージデバイスへの接続が失われた場合や、プール内のすべてのデバイスに障害が発生した場合に、このような状況になります。このような場合の動作は、次のように決定されます。
デバイスへの接続が復元され、エラーがクリアされるまで、プールに対するすべての入出力アクセスをブロックします。デバイスの問題が解決されるまで、プールの状態は wait のままです。これはデフォルトの動作です。
新しい書き込み入出力要求には EIO を返しますが、正常な残りのデバイスに対する読み取りは許可します。まだディスクにコミットされていない書き込み要求はブロックされます。
コンソールにメッセージを出力し、システムクラッシュダンプを生成します。
-t オプションを指定せずに「zfs list」を実行しているときに、このプールに関連付けられたスナップショットに関する情報を出力するかどうかを制御します。デフォルト値は「off」です。
プールの現在のディスク上バージョン。この値を増やすことはできても、減らすことはできません。プールを更新する方法としては zpool upgrade コマンドをお勧めしますが、下位互換性のために特定のバージョンが必要な場合には、このプロパティーを使用できます。このプロパティーには、1 から zpool upgrade -v で報告される現在のバージョンまでの任意の数値を設定できます。
状態を変更するサブコマンドはすべて、元の形式でプールに永続的に記録されます。
zpool コマンドの提供するサブコマンドを使用すると、ストレージプールの作成と破棄、ストレージプールへの容量の追加、およびストレージプールに関する情報提供を行えます。サポートされているサブコマンドは次のとおりです。
ヘルプメッセージを表示します。
zpool コマンドの使用法を表示します。 特定のコマンドまたはプロパティーのヘルプを表示できます。 特定のコマンドまたはプロパティーのヘルプを表示すると、コマンドの構文または使用可能なプロパティー値が表示されます。引数を指定しないで zpool help を使用すると、zpool コマンドの完全なリストが表示されます。
指定された仮想デバイスを指定したプールに追加します。vdev の仕様については、「仮想デバイス」の節を参照してください。-f オプションの動作、および実行されるデバイス検査については、「zpool create」サブコマンドを参照してください。
使用中と表示されていたり、競合する複製レベルが指定されていたとしても、vdev の使用を強制します。この方法で、すべてのデバイスを上書きできるわけではありません。
vdev を実際に追加することなく、使用される構成を表示します。実際のプール作成は、特権の不足またはデバイス共有のために失敗する可能性があります。
可能な場合、-n は現在の /dev/chassis の場所の形式で構成を表示します。
現在構成されているディスクは、定足数デバイスとして zpool に追加しないでください。ディスクをプールに追加したあとで、そのディスクを定足数デバイスとして構成できます。
new_device を既存の zpool デバイスに接続します。既存のデバイスを、raidz 構成の一部にすることはできません。device が現在ミラー構成の一部ではない場合、device は device および new_device の 2 方向のミラーに自動的に変換されます。device が 2 方向ミラーの一部である場合、new_device を接続すると 3 方向ミラーが作成され、以下同様に作成されます。どの場合でも、new_device の再同期化がすぐに開始されます。
new_device が使用中と表示されている場合でも、これを強制的に使用します。この方法で、すべてのデバイスを上書きできるわけではありません。
プール内のデバイスエラーをクリアします。引数を指定しない場合、プール内のすべてのデバイスエラーがクリアされます。1 つ以上のデバイスを指定すると、指定したデバイスに関連するエラーだけがクリアされます。
開くことのできないプールに対して回復モードを開始します。プール内にある最後のいくつかのトランザクションを破棄して、開くことのできる状態に戻そうと試みます。このオプションを使用しても、損傷を受けたすべてのプールを回復できるわけではありません。成功した場合、破棄されたトランザクションのデータは回復されずに失われます。
-F フラグと組み合わせて使用します。トランザクションの破棄によってプールが開くことのできる状態になるかどうかを調べますが、実際にトランザクションを破棄することはありません。
コマンド行で指定した仮想デバイスを含む新規ストレージプールを作成します。プール名の先頭は文字でなければなりません。また、プール名に含めることができるのは、英数字、下線 (「_」)、ダッシュ (「-」)、およびピリオド (「.」) です。mirror、raidz、spare、log の各プール名、およびパターン c[0-9] で始まる名前は予約されています。vdev の仕様については、「仮想デバイス」の節を参照してください。
このコマンドは、指定された各デバイスがアクセス可能であり、現在別のサブシステムにより使用されていないことを確認します。ある種の用法 (現在マウントされている、専用のダンプデバイスとして指定されているなど) では、ZFS によるデバイスの使用が妨げられます。-f オプションを使用すると、その他の用法 (既存の UFS ファイルシステムの使用など) を上書きできます。
このコマンドは、プールの複製方法が一貫しているかどうかもチェックします。-f を指定せずに、単一のプール内で冗長ストレージと非冗長ストレージの結合を試みたり、ディスクとファイルの混在を試みると、エラーが発生します。-f を指定せずに、単一の raidz またはミラーグループ内でサイズの異なるデバイスを使用しても、エラーのフラグが付けられます。
-R オプションを指定しない場合の、デフォルトのマウントポイントは「/pool」です。このマウントポイントは存在しないか、空でなければなりません。さもないと、ルートデータセットをマウントすることはできません。これは、-m オプションを使って上書きできます。
使用中と表示されていたり、競合する複製レベルが指定されていたとしても、vdev の使用を強制します。この方法で、すべてのデバイスを上書きできるわけではありません。
使用する設定を、実際にプールを作成せずに表示します。実際のプール作成は、特権不足やデバイスが現在使用中などのために、まだ失敗する可能性があります。
可能な場合、-n は現在の /dev/chassis の場所の形式で構成を表示します。
指定されたプールのプロパティーを設定します。設定できる有効なプロパティーのリストについては、「プロパティー」の節を参照してください。
プールの最上位レベルのファイルシステムの指定されたプロパティーを設定します。設定できる有効なプロパティーのリストについては、zfs(1M) の「プロパティー」の節を参照してください。
「-o cachefile=none,altroot=root」と同等
プールの最上位レベルのファイルシステムのマウントポイントを設定します。デフォルトのマウントポイントは、「/pool」です。または、altroot が指定されている場合は「altroot/pool」です。このマウントポイントは絶対パス、「legacy」または「none」でなければなりません。データセットマウントポイントの詳細は、zfs(1M)を参照してください。
指定したプールを破棄し、すべてのデバイスを解放してほかの用途で使用できるようにします。このコマンドは、プールを破棄する前に、アクティブなデータセットすべてのマウント解除を試みます。
プール内に含まれるアクティブなデータセットすべてのマウント解除を強制的に行います。
ミラー化されたストレージプールからデバイスまたはスペアを切り離します。既存のデバイスが物理的に置き換えられた場合は、RAID-Z ストレージプールからスペアを切り離すこともできます。また、スペアで置き換えられた場合は、RAID-Z ストレージプールの既存デバイスを切り離すこともできます。データの有効な複製がほかに存在しない場合、この操作は拒否されます。
指定したプールをシステムからエクスポートします。すべてのデバイスにエクスポート済みのマークが付けられますが、別のサブシステムからは引き続き使用中と見なされます。十分な数のデバイスが存在するかぎり、このデバイスをシステム間 (エンディアンの異なるシステムを含む) で移動またはインポートすることが可能です。
プールをエクスポートする前に、プール内のすべてのデータセットがマウント解除されます。
プールを可搬性のあるものにするため、zpool コマンドに単なるスライスではなく、ディスク全体を指定する必要があります。これにより、ZFS は可搬性のある EFI ラベルをディスクに設定します。そうしなければ、エンディアンの異なるプラットフォーム上のディスクドライバは、ディスクを認識しません。
「unmount -f」コマンドを使用して、すべてのデータセットを強制的にマウント解除します。
このコマンドは強制的にプールをエクスポートします。
指定されたストレージプールについて、指定されたプロパティー (「all」が指定された場合はすべてのプロパティー) のリストを取得します。これらのプロパティーは、次のフィールドで表示されます。
name Name of storage pool property Property name value Property value source Property source, either 'default' or 'local'.
使用可能なプールプロパティーの詳細については、「プロパティー」の節を参照してください。
指定したプール (プールを指定しない場合はすべてのプール) のコマンド履歴を表示します。
ユーザーによって開始されたイベントに加え、内部で記録された ZFS イベントを表示します。
ログレコードを長形式で表示します。これには、標準形式のほかに、ユーザー名、ホスト名、および操作が実行されたゾーンが含まれます。
インポートに使用可能なプールを一覧表示します。-d オプションを指定しない場合、このコマンドは /dev/dsk 内のデバイスを検索します。-d オプションは、複数回指定できます。このオプションを指定すると、すべてのディレクトリおよびデバイスパスが検索されます。デバイスがエクスポートされたプールの一部として表示される場合、このコマンドは、プールの名前、数値識別子、および各デバイスやファイルの vdev レイアウトと現在の健全性を含むプールの要約を表示します。-D オプションを指定しないかぎり、破棄プール、つまり zpool destroy コマンドを使用して以前に破棄されたプールは表示されません。
数値識別子は一意であり、エクスポートされた同名のプールを複数利用可能な場合にプール名の代わりに使用できます。
「cachefile」プールプロパティーで作成された指定の cachefile から構成を読み取ります。デバイスを検索する代わりに、この cachefile が使用されます。
path 内のデバイスまたはファイルを検索します。ここで、path にはディレクトリまたはデバイスパスを指定できます。-d オプションは複数回指定できます。
破棄されたプールだけを一覧表示します。
検索ディレクトリまたはデバイスパスで見つかったすべてのプールをインポートします。十分な数のデバイスを使用可能なプールがすべてインポートされることを除き、前のコマンドと同じです。-D オプションを指定しないかぎり、破棄プール、つまり、zpool destroy コマンドを使用して以前に破棄されたプールはインポートされません。
プール内のデータセットのマウント時に使用するマウントオプションのコンマ区切りのリスト。データセットのプロパティーとマウントオプションの説明については、zfs(1M) を参照してください。
インポートされたプールに、指定されたプロパティーを設定します。使用可能なプールプロパティーの詳細については、「プロパティー」の節を参照してください。
「cachefile」プールプロパティーで作成された指定の cachefile から構成を読み取ります。デバイスを検索する代わりに、この cachefile が使用されます。
デバイスまたはファイルを path 内で検索します。-d オプションは複数回指定できます。このオプションは -c オプションと同時には使用できません。
破棄されたプールだけをインポートします。-f オプションも指定する必要があります。
プールが潜在的にアクティブであると表示されている場合でも、インポートを強制的に実行します。
インポート不可能なプールの回復モード。最後のいくつかのトランザクションを破棄することによって、プールをインポート可能な状態に戻そうとします。このオプションを使用しても、損傷を受けたすべてのプールを回復できるわけではありません。成功した場合、破棄されたトランザクションのデータは回復されずに失われます。このオプションは、プールがインポート可能であるか、すでにインポートされている場合には無視されます。
プールを検索し、見つかったすべてのプールをインポートします。
ログデバイスがない場合のプールのインポートを許可します。
「cachefile」プロパティーを「none」、「altroot」プロパティーを「root」に設定します。
ファイルシステムをマウントせずにプールをインポートします。
-F 回復オプションとともに使用します。インポート不可能なプールを再度インポート可能にできるかどうかを判断しますが、実際にはプール回復を実行することはありません。プール回復モードの詳細については、前述の -F オプションを参照してください。
可能な場合、-n は現在の /dev/chassis の場所の形式で情報を表示します。
特定のプールをインポートします。プールは、名前または数値識別子を使って識別できます。newpool が指定されている場合、プールは永続的な名前 newpool を使用してインポートされます。それ以外の場合は、エクスポートされた名前と同じ名前を使ってインポートが行われます。ルートプールを新しい名前でインポートしないでください。そうでないと、システムがブートしなくなる可能性があります。
zpool export を最初に実行せずにシステムからデバイスを削除すると、そのデバイスは潜在的にアクティブな状態として表示されます。これがエクスポートの失敗を示すのか、デバイスが別のホストにより実際に使用されていることを示すのかを見分けることはできません。この状態のプールをインポートするには、-f オプションを指定する必要があります。
プール内のデータセットのマウント時に使用するマウントオプションのコンマ区切りのリスト。データセットのプロパティーとマウントオプションの説明については、zfs(1M) を参照してください。
インポートされたプールに、指定されたプロパティーを設定します。使用可能なプールプロパティーの詳細については、「プロパティー」の節を参照してください。
「cachefile」プールプロパティーで作成された指定の cachefile から構成を読み取ります。デバイスを検索する代わりに、この cachefile が使用されます。
デバイスまたはファイルを path 内で検索します。-d オプションは複数回指定できます。このオプションは -c オプションと同時には使用できません。
破棄されたプールをインポートします。-f オプションも指定する必要があります。
プールが潜在的にアクティブであると表示されている場合でも、インポートを強制的に実行します。
インポート不可能なプールの回復モード。最後のいくつかのトランザクションを破棄することによって、プールをインポート可能な状態に戻そうとします。このオプションを使用しても、損傷を受けたすべてのプールを回復できるわけではありません。成功した場合、破棄されたトランザクションのデータは回復されずに失われます。このオプションは、プールがインポート可能であるか、すでにインポートされている場合には無視されます。
「cachefile」プロパティーを「none」、「altroot」プロパティーを「root」に設定します。
-F 回復オプションとともに使用します。インポート不可能なプールを再度インポート可能にできるかどうかを判断しますが、実際にはプール回復を実行することはありません。プール回復モードの詳細については、前述の -F オプションを参照してください。
可能な場合、-n は現在の /dev/chassis の場所の形式で情報を表示します。
ログデバイスがない場合のプールのインポートを許可します。
指定したプールの I/O 統計を表示します。間隔を指定した場合、Ctrl-C キーを押すまで、統計が interval 秒ごとに出力されます。pools を指定しない場合、システム内のすべてのプールの統計が表示されます。count を指定した場合、このコマンドは count レポートの出力後に配置されます。
指定したプールについて、健全性ステータスおよび領域使用状況を一覧表示します。引数を指定しない場合、システム内のすべてのプールが表示されます。
間隔を指定した場合、Ctrl-C キーを押すまで、ステータスおよび領域使用状況が interval 秒ごとに表示されます。count を指定した場合、このコマンドは count レポートの表示後に終了します。
指定した物理デバイスをオフラインにします。オフライン状態にある device に対して、読み取りや書き込みは行われません。
このコマンドは、スペアまたはキャッシュデバイスには使用できません。
一時的に使用する場合に指定します。リブートすると、指定した物理デバイスは以前の状態に戻ります。
指定した物理デバイスをオンラインにします。
このコマンドは、スペアまたはキャッシュデバイスには使用できません。
使用可能なすべての容量を使用するようにデバイスを拡張します。デバイスがミラーまたは raidz に含まれている場合、プールで新しい容量を使用できるようにするには、すべてのデバイスを拡張する必要があります。
指定されたデバイスをプールから削除します。現在、このコマンドでは、ホットスペア、キャッシュ、およびログデバイスの削除のみをサポートしています。ミラー化されたログデバイスは、ログの最上位レベルのミラーを指定することによって削除できます。ミラー構成の一部となっている非ログデバイスは、zpool detach コマンドを使用すると削除できます。非冗長デバイスおよび raidz デバイスはプールから削除することはできません。
old_device を new_device で置き換えます。これは、new_device を接続し、再同期化の実行まで待機してから old_device を切り離す操作と同等です。
new_device のサイズは、ミラーまたは raidz 構成内の全デバイスの最小サイズ以上でなければなりません。
new_device は、プールに冗長性がない場合に必要です。new_device を指定しない場合、デフォルトの old_device が使用されます。この置換形式は、既存のディスクで障害が発生したためにディスクを物理的に交換したあとで実行する場合に役立ちます。この場合、実際には別のディスクであっても、新規ディスクには以前のデバイスと同じ /dev/dsk パスが使用されます。これは、ZFS により認識されます。
zpool status 出力では、old_device はワード replacing の下に表示され、文字列 /old が付加されます。再同期化が完了すると、replacing と old_device の両方が自動的に削除されます。再同期化が完了する前に新しいデバイスに障害が発生し、第 3 のデバイスが代わりに取り付けられると、障害が発生した両方のデバイスは /old が付加された状態で表示され、再同期化がもう一度開始されます。再同期化が完了すると、両方の /old デバイスは、ワード replacing とともに削除されます。
new_device が使用中と表示されている場合でも、これを強制的に使用します。この方法で、すべてのデバイスを上書きできるわけではありません。
消し込みを開始します。消し込みにより、指定したプール内のすべてのデータが検査され、チェックサムが適正に検証されます。複製された (ミラーまたは raidz) デバイスの場合、消し込み中に検出されたすべての損傷は、ZFS により自動的に修復されます。「zpool status」コマンドは、消し込みの進捗状況をレポートします。また、完了時には消し込み結果の概要を出力します。
消し込みおよび再同期化は、非常に類似した操作です。相違点は、再同期化では ZFS が期限切れであることを認識しているデータだけが検査されますが (新規デバイスをミラーに接続する場合や、既存のデバイスを置換する場合など)、消し込みではすべてのデータが検査されるため、ハードウェア障害やディスク障害に起因する非表示のエラーも検出されます。
消し込みと再同期化は、I/O 集約的な操作であるため、ZFS では一度に 1 つの操作だけが許可されます。消し込みがすでに進行している場合、以降の「zpool scrub」はエラーを返し、zpool scrub - s を使用して現在の消し込みを取り消すことを勧めるアドバイスが表示されます。進行中の再同期化が存在する場合、ZFS は、再同期化が完了するまで書き込みの開始を許可しません。
消し込みを停止します。
指定されたプールに、特定のプロパティーを設定します。設定可能なプロパティーおよび有効な値については、「プロパティー」の節を参照してください。
プール内のミラー化された各最上位 vdev から 1 つのディスクを分割し、分割したディスクから新しいプールを作成します。元のプールは 1 つ以上のミラーから構成されている必要があり、再同期化のプロセスが進行中であってはいけません。split サブコマンドは、コマンド行でのデバイス指定によって上書きされないかぎり、各ミラー vdev の最後のデバイスを選択します。
device 引数を使用した場合、split は指定されたデバイスを新しいプールに含め、どのデバイスも指定されないままであれば、通常どおり、各ミラー vdev 内の最後のデバイスをそのプールに割り当てます。split コマンドの結果が不明な場合は、-n (「予行演習」) オプションを使用して、コマンドが意図した結果をもたらすことを確認します。
指定された altroot パラメータを新しいプールの代替ルートに使用して、分割後に新しく作成されたプールを自動的にインポートします。前述の「プロパティー」節の altroot の説明を参照してください。
作成される構成を、実際にプールを分割せずに表示します。実際のプール分割は、特権の不足やデバイスのステータスのために失敗する可能性があります。
可能な場合、-n は現在の /dev/chassis の場所の形式で構成を表示します。
プール内のデータセットのマウント時に使用するマウントオプションのコンマ区切りのリスト。データセットのプロパティーとマウントオプションの説明については、zfs(1M) を参照してください。-R オプションと組み合わせた場合にのみ有効です。
新しいプールに、指定されたプロパティーを設定します。使用可能なプールプロパティーの詳細については、前述の「プロパティー」の節を参照してください。
指定したプールの詳細な健全性ステータスを表示します。pool を指定しない場合、システムの各プールのステータスが表示されます。プールおよびデバイスの健全性の詳細については、「デバイスの障害と復旧」の節を参照してください。
間隔を指定した場合、Ctrl-C キーを押すまで、ステータスおよび領域使用状況が interval 秒ごとに表示されます。count を指定した場合、このコマンドは count レポートの表示後に終了します。
消し込みまたは再同期化が進行中の場合、このコマンドは、実行済みの割合 (パーセント) および推定完了時間をレポートします。プール内のデータ量およびシステムのその他のワークロードは変化する場合があるため、これらはどちらも概算値に過ぎません。
プールのディスク上バージョンを指定します。このバージョンによって、現在実行中のソフトウェアリリースで使用可能なプール機能が決まります。古いプールバージョンを使用し続けることはできますが、一部の機能が使用できなくなる可能性があります。プールは、zpool upgrade - a コマンドを使用するとアップグレードできます。以前のソフトウェアバージョンを実行しているシステムで、以降のバージョンのプールにアクセスすることはできません。
現在のソフトウェアでサポートされている ZFS プールバージョンを表示します。現在の ZFS プールバージョンおよびサポートされる以前のバージョンすべてが、各バージョンで提供される機能に関する説明とともに表示されます。
指定したプールを最新のディスク上バージョンにアップグレードします。このコマンドでプールが古いバージョンであることがわかった場合、続けて zpool upgrade -a コマンドを使用すると、そのプールをアップグレードできます。アップグレードされたプールは、以前のソフトウェアリリースを実行するシステムではアクセスできなくなります。
すべてのプールをアップグレードします。
指定されたバージョンにアップグレードします。現在のバージョンよりも高いバージョンを指定する必要があります。-V フラグが指定されていない場合、プールは最新のバージョンにアップグレードされます。
例 1 RAID-Z ストレージプールを作成する
次のコマンドは、6 台のディスクで構成される単一の raidz ルート vdev を含むプールを作成します。
# zpool create tank raidz c0t0d0 c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0
例 2 ミラー化されたストレージプールを作成する
次のコマンドは、2 つのミラーを持つプールを作成します。各ミラーには 2 台のディスクが含まれます。
# zpool create tank mirror c0t0d0 c0t1d0 mirror c0t2d0 c0t3d0
また、ディスクの現在の場所を指定する /dev/chassis パスを使って、ディスク全体を指定することもできます。
# zpool create tank \ mirror \ /dev/chassis/RACK29.U01-04/DISK_00/disk \ /dev/chassis/RACK29.U05-08/DISK_00/disk \ mirror \ /dev/chassis/RACK29.U01-04/DISK_01/disk \ /dev/chassis/RACK29.U05-08/DISK_01/disk
例 3 スライスを使って ZFS ストレージプールを作成する
次のコマンドは、2 つのディスクスライスを使ってミラー化されていないプールを作成します。
# zpool create tank /dev/dsk/c0t0d0s1 c0t1d0s4
また、ディスクの現在の場所を指定する /dev/chassis パスを使って、ディスク全体を指定することもできます。
# zpool add tank mirror \ /dev/chassis/RACK29.U01-04/DISK_02/disk \ /dev/chassis/RACK29.U05-08/DISK_02/disk
例 4 ミラーを ZFS ストレージプールに追加する
次のコマンドは、2 つのミラー化ディスクをプール「tank」に追加します。ただし、プールは 2 方向ミラーで構成済みであるものとします。プール内のすべてのデータセットは、追加された領域をすぐに利用できます。
# zpool add tank mirror c1t0d0 c1t1d0
例 5 使用可能な ZFS ストレージプールを一覧表示する
次のコマンドは、システムで使用可能なすべてのプールを一覧表示します。
# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT pool 136G 109M 136G 0% 3.00x ONLINE - rpool 67.5G 12.6G 54.9G 18% 1.01x ONLINE -
例 6 プールのすべてのプロパティーを一覧表示する
次のコマンドは、プールのプロパティーをすべて一覧表示します。
% zpool get all pool NAME PROPERTY VALUE SOURCE pool size 464G - pool capacity 0% - pool altroot - default pool health ONLINE - pool guid 9893442355858802973 default pool version 23 default pool bootfs - default pool delegation on default pool autoreplace off default pool cachefile - default pool failmode wait default pool listsnapshots off default pool autoexpand off default pool dedupditto 0 default pool dedupratio 1.00x - pool free 464G - pool allocated 130K -
例 7 ZFS ストレージプールを破棄する
次のコマンドは、プール「tank」およびその内部のデータセットをすべて破棄します。
# zpool destroy -f tank
例 8 ZFS ストレージプールをエクスポートする
次のコマンドは、プール tank 内のデバイスをエクスポートします。エクスポートされたデバイスは、再配置したり、あとでインポートしたりすることが可能です。
# zpool export tank
例 9 ZFS ストレージプールをインポートする
次のコマンドは、使用可能なプールを表示してから、プール「tank」をインポートしてシステムで使用できるようにします。
このコマンドを実行すると、次のような結果が表示されます。
# zpool import pool: tank id: 7678868315469843843 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: tank ONLINE mirror-0 ONLINE c1t2d0 ONLINE c1t3d0 ONLINE # zpool import tank
例 10 すべての ZFS ストレージプールを最新のバージョンにアップグレードする
次のコマンドは、すべての ZFS ストレージプールを最新バージョンのソフトウェアにアップグレードします。
# zpool upgrade -a This system is currently running ZFS pool version 22. All pools are formatted using this version.
例 11 ホットスペアを管理する
次のコマンドは、使用可能なホットスペアを 1 つ含む新しいプールを作成します。
# zpool create tank mirror c0t0d0 c0t1d0 spare c0t2d0
いずれかのディスクで障害が発生すると、このプールは機能低下状態に陥ります。障害が発生したデバイスを交換するには、次のコマンドを使用します。
# zpool replace tank c0t0d0 c0t3d0
デバイスが回復されると、スペアは自動的に切り離され、障害が発生した別のデバイスで使用可能となります。ホットスペアをプールから完全に削除するには、次のコマンドを使用します。
# zpool remove tank c0t2d0
例 12 個別のミラー化されたログデバイスによる ZFS プールの作成
次のコマンドは、2 つの 2 方向ミラーとミラー化されたログデバイスから構成される ZFS ストレージプールを作成します。
# zpool create pool mirror c0d0 c1d0 mirror c2d0 c3d0 log mirror \ c4d0 c5d0
例 13 ZFS プールにキャッシュデバイスを追加する
次のコマンドは、キャッシュデバイスとして使用する 2 つのディスクを ZFS ストレージプールに追加します。
# zpool add pool cache c2d0 c3d0
キャッシュデバイスを追加すると、そのキャッシュデバイスにメインメモリーの内容が徐々に書き込まれていきます。キャッシュデバイスのサイズによっては、キャッシュがいっぱいになるまでに 1 時間以上かかる場合もあります。iostat オプションを次のように使用して、容量と読み込みを監視できます。
# zpool iostat -v pool 5
例 14 ミラー化されたログデバイスを削除する
すぐ下で示す構成を想定した場合、次のコマンドはプール tank 内のミラー化されたログデバイス mirror-2 を削除します。
pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c6t0d0 ONLINE 0 0 0 c6t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c6t2d0 ONLINE 0 0 0 c6t3d0 ONLINE 0 0 0 logs mirror-2 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0 c4t1d0 ONLINE 0 0 0
# zpool remove tank mirror-2
例 15 障害が発生した ZFS プールを回復する
プールに障害が発生したが回復可能である場合、このステータスを示すメッセージは、そのプールがキャッシュされていた場合 (前述の cachefile を参照) には zpool status によって表示され、キャッシュされていなかった場合にはそのプールで失敗した zpool import のエラー出力の一部として表示されます。
zpool clear コマンドを使用して、キャッシュされたプールを回復します。
# zpool clear -F data Pool data returned to its state as of Tue Sep 08 13:23:35 2009. Discarded approximately 29 seconds of transactions.
プール構成がキャッシュされなかった場合は、zpool import を回復モードフラグを指定して使用します。
# zpool import -F data Pool data returned to its state as of Tue Sep 08 13:23:35 2009. Discarded approximately 29 seconds of transactions.
例 16 ログデバイスがない場合の ZFS プールのインポート
次の例は、ログデバイスがない場合にプールのインポートを試みる方法を示しています。-m オプションは、インポート操作を完了するために使用されます。
このプールに追加のデバイスが含まれていることがわかっていますが、その正確な構成は特定できません。
# zpool import tank The devices below are missing, use '-m' to import the pool anyway: c5t0d0 [log] cannot import 'tank': one or more devices is currently unavailable # zpool import -m tank # zpool status tank pool: tank state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scan: none requested config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 c7t0d0 ONLINE 0 0 0 logs 1693927398582730352 UNAVAIL 0 0 0 was /dev/dsk/c5t0d0 errors: No known data errors
次の例は、ミラー化されたログデバイスがない場合にプールをインポートする方法を示しています。
# zpool import tank The devices below are missing, use ?-m? to import the pool anyway: mirror-1 [log] c5t0d0 c5t1d0 # zpool import -m tank # zpool status tank pool: tank state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scan: none requested config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 c7t0d0 ONLINE 0 0 0 logs mirror-1 UNAVAIL 0 0 0 insufficient replicas 46385995713041169 UNAVAIL 0 0 0 was /dev/dsk/c5t0d0 13821442324672734438 UNAVAIL 0 0 0 was /dev/dsk/c5t1d0 errors: No known data errors
例 17 特定のパスを使用してプールをインポートする
次のコマンドは、プールの特定のデバイスパス (この例では、/dev/dsk/c9t9d9 と /dev/dsk/c9t9d8) を指定することによってプール tank をインポートします。
# zpool import -d /dev/dsk/c9t9d9s0 /dev/dsk/c9t9d8s0 tank
このプールがディスク全体から構成されている場合でも、特定のデバイスのスライス識別子をコマンドに含める必要があるという既存の制限があります。
次の終了値が返されます。
正常終了。
エラーが発生しました。
無効なコマンド行オプションが指定されました。
属性についての詳細は、attributes(5) を参照してください。
|