ストレージプールを作成するには、zpool create コマンドを使用します。このコマンドの引数には、プール名および任意の数の仮想デバイスを指定します。プール名は、「ZFS コンポーネントに名前を付けるときの規則」の規則に従って付ける必要があります。
次のコマンドでは、ディスク c1t0d0 および c1t1d0 で構成される、tank という名前の新しいプールが作成されます。
# zpool create tank c1t0d0 c1t1d0 |
ディスク全体を表すデバイス名は /dev/dsk ディレクトリに作成されます。適切な名前が自動的に割り当てられ、1 つの大きなスライスで構成されます。データは、両方のディスクに動的にストライプ化されます。
ミラー化されたプールを作成するには、mirror キーワードと、ミラーを構成する任意の数のストレージデバイスを使用します。複数のミラーを指定する場合は、コマンド行で mirror キーワードを繰り返すことができます。次のコマンドでは、1 つのプールと 2 つの 2 方向ミラーが作成されます。
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0 |
2 番目の mirror キーワードでは、新しい最上位仮想デバイスを指定しています。データは両方のミラーにまたがって動的にストライプ化され、各ディスク間で適切に冗長化されます。
推奨されるミラー化構成の詳細については、次のサイトを参照してください。
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
現時点では、ZFS ミラー化構成では次の操作がサポートされています。
最上位レベルの追加の仮想デバイス (vdev) 用の別のディスクセットを既存のミラー化構成に追加する。詳細は、「ストレージプールにデバイスを追加する」を参照してください。
追加のディスクを既存のミラー化構成に接続する。あるいは、追加のディスクを複製されない構成に接続して、ミラー化構成を作成する。詳細は、「ストレージプール内でデバイスを接続する/切り離す」を参照してください。
置き換えたあとのディスクのサイズが置き換える前のデバイスと等しいかそれ以上であれば、既存のミラー化構成内の 1 つ以上のディスクを置き換える。詳細は、「ストレージプール内のデバイスを置き換える」を参照してください。
残りのデバイスがミラー化構成に十分な冗長性を備えているのであれば、その構成に含まれる 1 つのディスクを切り離す。詳細は、「ストレージプール内でデバイスを接続する/切り離す」を参照してください。
ディスクのうちの 1 つを切り離すことによってミラー化構成を分割し、新しい同一のプールを作成する。詳細は、「ミラー化 ZFS ストレージプールを分割して新しいプールを作成する」を参照してください。
ログデバイスまたはキャッシュデバイス以外のデバイスは、ミラー化されたストレージプールから完全に削除できません。この機能については、RFE (改善要求) が提出されています。
ZFS ルートファイルシステムをインストールしてブートできます。ルートプールの構成に関する次の情報を確認してください。
ルートプールに使用するディスクには VTOC (SMI) ラベルが必要です。また、ディスクスライスを使用してプールを作成する必要があります。
ルートプールは、ミラー化構成または単一ディスク構成として作成する必要があります。zpool add コマンドを使ってディスクを追加し、複数のミラー化された最上位レベル仮想ディスクを作成することはできませんが、ミラー化された仮想デバイスを zpool attach コマンドを使って拡張することは可能です。
RAID-Z やストライプ化構成はサポートされていません。
ルートプールに別個のログデバイスを使用することはできません。
ルートプールにサポートされていない構成を使用しようとすると、次のようなメッセージが表示されます。
ERROR: ZFS pool <pool-name> does not support boot environments |
# zpool add -f rpool log c0t6d0s0 cannot add to 'rpool': root pool can not have multiple vdevs or separate logs |
ZFS ルートファイルシステムのインストールと起動の詳細については、第 5 章Oracle Solaris ZFS ルートファイルシステムのインストールと起動を参照してください。
シングルパリティー RAID-Z プールの作成方法は、ミラー化されたプールの作成方法と同じですが、mirror キーワードの代わりに raidz または raidz1 を使用する点が異なります。次の例では、5 個のディスクで構成される 1 つの RAID-Z デバイスを使ってプールを作成する方法を示します。
# zpool create tank raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 /dev/dsk/c5t0d0 |
この例では、デバイスの短縮名または完全名を使ってディスクを指定できることを示しています。/dev/dsk/c5t0d0 と c5t0d0 はどちらも同じディスクを参照します。
プールの作成時に raidz2 キーワードを使用するとダブルパリティーの、raidz3 キーワードを使用するとトリプルパリティーの RAID-Z 構成を作成できます。次に例を示します。
# zpool create tank raidz2 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 # zpool status -v tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz2-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c3t0d0 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 errors: No known data errors |
# zpool create tank raidz3 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 # zpool status -v tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz3-0 ONLINE 0 0 0 c0t0d0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c3t0d0 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 c6t0d0 ONLINE 0 0 0 c7t0d0 ONLINE 0 0 0 errors: No known data errors |
現時点では、ZFS RAID-Z 構成では次の操作がサポートされています。
最上位レベルの追加の仮想デバイス用の別のディスクセットを既存の RAID-Z 構成に追加する。詳細は、「ストレージプールにデバイスを追加する」を参照してください。
置き換えたあとのディスクのサイズが置き換える前のデバイスと等しいかそれ以上であれば、既存の RAID-Z 構成内の 1 つ以上のディスクを置き換える。詳細は、「ストレージプール内のデバイスを置き換える」を参照してください。
現時点では、RAID-Z 構成では次の操作がサポートされていません。
追加のディスクを既存の RAID-Z 構成に接続する。
RAID-Z 構成からディスクを切り離す (スペアディスクによって置き換えられるディスクを切り離す場合を除く)。
ログデバイスまたはキャッシュデバイス以外のデバイスは、RAID-Z 構成から完全に削除できません。この機能については、RFE (改善要求) が提出されています。
RAID-Z 構成の詳細については、「RAID-Z ストレージプール構成」を参照してください。
デフォルトでは、ZIL はメインプール内のブロックから割り当てられます。しかし、NVRAM や専用ディスクなどで、別個のインテントログデバイスを使用することにより、パフォーマンスを向上できる可能性があります。ZFS ログデバイスの詳細については、「別個の ZFS ログデバイスの設定」を参照してください。
ZFS ログデバイスの設定は、ストレージプールの作成時または作成後に行えます。
次の例では、ミラー化ログデバイスを持つミラー化ストレージプールを作成する方法を示します。
# zpool create datap mirror c1t1d0 c1t2d0 mirror c1t3d0 c1t4d0 log mirror c1t5d0 c1t8d0 # zpool status datap pool: datap state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM datap ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 logs mirror-2 ONLINE 0 0 0 c1t5d0 ONLINE 0 0 0 c1t8d0 ONLINE 0 0 0 errors: No known data errors |
ログデバイス障害からの回復の詳細については、例 11–2 を参照してください。
キャッシュデバイスを使用してストレージプールを作成して、ストレージプールデータをキャッシュすることができます。次に例を示します。
# zpool create tank mirror c2t0d0 c2t1d0 c2t3d0 cache c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 cache c2t5d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 errors: No known data errors |
キャッシュデバイスを使用して ZFS ストレージプールを作成するかどうか決定する場合は、次の点を考慮してください。
キャッシュデバイスを使用すると、ほぼ静的なコンテンツをランダムに読み込む作業負荷のパフォーマンスが大幅に向上します。
zpool iostat コマンドを次のように使用して、容量と読み込みを監視できます。
プールの作成時に単一または複数のキャッシュデバイスを追加できます。プールの作成後にキャッシュデバイスを追加または削除することもできます。詳細は、例 4–4 を参照してください。
キャッシュデバイスは、ミラー化することも、RAID-Z 構成に含めることもできません。
キャッシュデバイスで読み取りエラーが検出されると、ミラー化構成または RAID-Z 構成に含まれている可能性があるオリジナルのストレージプールデバイスに対して、その読み取り I/O が再発行されます。キャッシュデバイスの内容は、ほかのシステムキャッシュと同様に揮発的とみなされます。