ZFS では、複数のストレージデバイスが 1 つのストレージプールに集約されるプール型ストレージモデルを使用します。ストレージプール内のファイルシステムは、プール内のすべてのストレージを使用します。
特定のルートプールのデバイスおよびブートディスク要件
次を参照してください。
一般的なルートプール作成のベストプラクティス
ルートプールは、ミラー化構成または単一ディスク構成として作成する必要があります。RAID-Z もストライプ化構成もサポートされていません。zpool add コマンドを使用して、ディスクを追加して複数のミラー化された最上位仮想デバイスを作成することはできません。ミラー化された仮想デバイスを拡張するには、zpool attach コマンドを使用します。
ルートプールに別個のログデバイスを使用することはできません。
プールプロパティーは、AI でのインストール中に pool_options キーワード構文を使用して設定できますが、gzip 圧縮アルゴリズムはルートプールではサポートされません。
ルートプールを初期インストールによって作成したあとは、ルートプールの名前を変更しないでください。ルートプールの名前を変更すると、システムをブートできなくなる可能性があります。
ルートプールディスクは連続的な操作に重要であるため (特にエンタープライズ環境で)、本稼働システムのルートプールを USB スティック上に作成しないでください。ルートプールにシステムの内蔵ディスクを使用することを検討するか、または、少なくとも非ルートデータに使用するものと同品質のディスクを使用してください。また、USB スティックは、物理メモリーの少なくとも 1/2 のサイズに等しいダンプボリュームサイズをサポートするのに十分な大きさではない可能性があります。
ルートプールのコンポーネントをルート以外のプールのデータと分けておくことを考えてください。
非ルートプール作成のベストプラクティス
d* 識別子を使用して、ディスク全体で非ルートプールを作成します。p* 識別子を使用しないでください。
ZFS は、追加のボリューム管理ソフトウェアを一切使わないで最適に機能します。
パフォーマンスを向上させるために、個々のディスクを使用するか、または少なくともほんの少数のディスクで構成される論理ユニット番号 (LUN) を使用します。ZFS での LUN 設定に対する可視性を向上させることで、より適切な入出力スケジューリングを ZFS で決定できるようになります。
ミラー化ストレージプール – 次の例に示すように、多くのディスク領域を消費しますが、一般に、小さなランダム読み取りによってパフォーマンスが向上します。
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0
また、プール内の既存のデバイスの切り離し、接続、および交換が可能であるという点で、ミラー化ストレージプールにはより高い柔軟性もあります。
RAID-Z ストレージプール
3 つのパリティー方式を使って RAID-Z ストレージプールを作成できます。この場合、パリティーは 1 (raidz)、2 (raidz2)、または 3 (raidz3) に等しくなります。
RAID-Z 構成は、ディスク容量を最大化し、通常、データが大きなチャンク (128K 以上) で読み取りおよび書き込みされるときに、パフォーマンスが高くなります。3 台のディスク (2+1) でシングルパリティーの RAIDZ (raidz) 構成を作成します。
RAIDZ-2 構成では、データの可用性が向上し、RAID-Z と同様の性能が提供されます。RAIDZ-2 は、RAID-Z または双方向ミラーよりもデータ損失までの平均時間 (MTTDL) がかなり短縮されます。6 台のディスク (4+2) でダブルパリティーの RAID-Z (raidz2) 構成を作成します。
RAIDZ-3 構成では、ディスク容量が最大となり、3 台のディスク障害に耐えられるため、優れた可用性が提供されます。8 台のディスク (5+3) でトリプルパリティーの RAID-Z (raidz3) 構成を作成します。
冗長性のないプール
冗長性のないプールを作成する場合は、次のようなメッセージが表示されます。
# zpool create pond c8t2d0 c8t3d0 'pond' successfully created, but with no redundancy; failure of one device will cause loss of the pool
デバイス障害はデータが回復不可能であることを意味することがあるため、冗長性のないプールの作成は推薦されていません。次のようにした冗長性のある ZFS ストレージプールの作成を考えてください。
# zpool create pond mirror c8t2d0 c8t3d0
ZFS ストレージプールをモニタリングするための次のベストプラクティスを参照してください。
パフォーマンスを最適にするために、必ずプール使用率がプール容量の 90% を下回るようにします。
zpool list コマンドでは RAID-Z パリティーは使用済み領域としてカウントされず、プール容量からも減算されません。RAID-Z プール容量は、ほとんどいっぱいでも 90% を下回ることがあります。確認するには、zfs list pool コマンドを使用します。ZFS ファイルシステムの情報を表示するを参照してください。
zpool scrub コマンドを定期的に実行して、データ整合性の問題を特定します。
消費者品質のドライブがある場合は、スクラブを週に 1 回行うスケジュールを考慮します。
データセンター品質のドライブがある場合は、スクラブを月に 1 回行うスケジュールを考慮します。
また、デバイスを交換する場合は、その前にスクラブを実行して、すべてのデバイスが現在動作していることを確認する必要があります。
zpool status コマンドを毎週使用して、プールとプールデバイスのステータスをモニターします。また、fmdump または fmdump –ev コマンドを使用して、デバイスの障害またはエラーが発生しているかどうかを判断します。
次の新しい診断の説明と機能を確認してください。
障害の発生したデバイス – zpool status –l の出力を確認して障害の発生したデバイスの物理的な位置を特定し、それを交換します。障害の発生したディスクの交換については、Oracle Solaris 11.3 での ZFS ファイルシステムの管理 の破損したデバイスを交換または修復するを参照してください。
障害の発生したデバイスの通知 – ハードウェアコンポーネントが障害と診断された場合など、さまざまな障害管理イベントに応じて電子メール通知を送信するように smtp-notify サービスを構成できます。smf(5) の通知パラメータのセクションを参照してください。
デフォルトで、いくつかの通知が root ユーザーに送信されるように自動的に設定されます。/etc/aliases ファイルに自分のユーザーアカウントの別名を root として追加すると、電子メール通知を受け取ります。
デバイスの移動 – ZFS ストレージプールの一部であるデバイスには、デバイス ID が含まれています (デバイスドライバでデバイス ID が作成されたか、または組み立てられた場合)。すべてのファイルシステムと同様に、ZFS はそのベースとなるデバイスと非常に密接な関係を持っています。システムのファームウェアのアップグレード、別のコントローラへのプールデバイスの移動、またはデバイスのケーブル接続の変更を試行する場合、最初にプールをエクスポートすることも検討できます。デバイス ID がデバイスの変更を追跡しない (これは Oracle 以外のハードウェアで起こる可能性があります) 場合、そのプールとプールデータは使用できなくなる可能性があります。これらのドライバではデバイス ID が完全にサポートされるため、通常、使用中のプールでデバイスが変更された場合、Oracle の Sun ハードウェアは復元可能です。ただし、ハードウェアの変更を行う前に、プールをエクスポートすることも検討できます。
Oracle Solaris 11.3 での ZFS ファイルシステムの管理 の第 12 章Oracle Solaris ZFS のトラブルシューティングとプールの回復を参照してください。