以降の節では、次のストレージプールのコンポーネントについて詳しく説明します。
ストレージプールのもっとも基本的な要素は、物理ストレージです。128M バイト以上のサイズであれば、任意のブロック型デバイスを物理ストレージとして利用できます。このデバイスは通常、/dev/dsk ディレクトリとしてシステムから認識されるハードドライブです。
ディスク全体 (c1t0d0) または個別のスライス (c0t0d0s7) をストレージデバイスとして利用できます。推奨される操作モードは、ディスク全体を使用する方法です。この場合、ディスクが特別なフォーマットである必要はありません。ZFS によって、EFI ラベルを使用する 1 つの大きなスライスのディスクとしてフォーマットされます。この方法を使用した場合に、format コマンドで表示されるパーティションテーブルは、次のような内容になります。
Current partition table (original): Total disk sectors available: 286722878 + 16384 (reserved sectors) Part Tag Flag First Sector Size Last Sector 0 usr wm 34 136.72GB 286722911 1 unassigned wm 0 0 0 2 unassigned wm 0 0 0 3 unassigned wm 0 0 0 4 unassigned wm 0 0 0 5 unassigned wm 0 0 0 6 unassigned wm 0 0 0 8 reserved wm 286722912 8.00MB 286739295 |
ディスク全体を使用するには、/dev/dsk/cNtNdN 命名規則を使用してディスクに名前を付ける必要があります。他社製のドライバの中には、異なる命名規則を使用したり、ディスクを /dev/dsk ディレクトリ以外の場所に配置するものがあります。これらのディスクを使用する場合は、ディスクの名前を手動で付けて、ZFS にスライスを渡す必要があります。
ディスク全体を使ってストレージプールを作成するときは、EFI ラベルが適用されます。EFI ラベルの詳細については、『Solaris のシステム管理 (デバイスとファイルシステム)』の「EFI ディスクラベル」を参照してください。
ZFS ルートプールに使用するディスクは、EFI ラベルではなく、SMI ラベルを使用して作成する必要があります。format - e コマンドを使用して、ディスクのラベルを SMI ラベルに変更することができます。
ディスクを指定するときには、フルパス (/dev/dsk/c1t0d0 など) または /dev/dsk ディレクトリ内のデバイス名で構成される短縮名 (c1t0d0 など) を使用できます。有効なディスク名の例を挙げます。
c1t0d0
/dev/dsk/c1t0d0
/dev/foo/disk
物理ディスクの全体を使用するのが、ZFS ストレージプールを作成するためのもっとも簡単な方法です。ディスクスライス、ハードウェア RAID アレイ内の LUN、またはソフトウェアベースのボリュームマネージャーが提供するボリュームからプールを構築する場合、管理、信頼性、およびパフォーマンスの観点から ZFS 構成が次第により複雑になります。次の点を考慮すれば、ほかのハードウェアまたはソフトウェアストレージ解決策を使って ZFS を構成する方法を決定しやすくなる可能性があります。
ハードウェア RAID アレイの LUN 上に ZFS 構成を構築する場合、ZFS の冗長機能とアレイが提供する冗長機能との関係を理解する必要があります。ある構成で十分な冗長性やパフォーマンスが得られても、別の構成ではそうならない可能性もあります。
Solaris Volume Manager (SVM) や Veritas Volume Manager (VxVM) など、ソフトウェアベースのボリュームマネージャーが提供するボリュームを使って ZFS 用の論理デバイスを構築することも可能です。ただし、そうした構成は推奨されません。ZFS はこのようなデバイス上でも正しく動作しますが、最適なパフォーマンスが得られない場合があります。
ストレージプールの推奨事項に関するその他の情報は、次の ZFS ベストプラクティスのサイトを参照してください。
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
ディスクは、パスとデバイス ID の両方で識別されます (利用できる場合)。デバイス ID 情報が利用可能なシステムでは、この識別方式を使うことで、ZFS を更新することなくデバイスを再構成できます。デバイス ID の生成および管理の方式はシステムごとに異なるため、コントローラ間でディスクを移動するなどのデバイス移動の前にまず、プールをエクスポートします。ファームウェアの更新やその他のハードウェア変更などのシステムイベントによって、ZFS ストレージプール内でデバイス ID が変化する場合があり、これが原因でデバイスが利用不能になる可能性があります。
ディスクスライスを使ってストレージプールを作成するときは、従来の Solaris VTOC (SMI) ラベルを使ってディスクに名前を付けることができます。
ブート可能な ZFS ルートプールの場合、プール内のディスクにはスライスが含まれ、ディスクには SMI ラベルが付けられていなければなりません。もっとも単純な構成としては、すべてのディスク容量をスライス 0 に割り当て、そのスライスをルートプールに使用します。
SPARC システムの 72G バイトのディスクに、68G バイトの使用可能領域がスライス 0 に配置されています。次の format の出力を参照してください。
# format . . . Specify disk (enter its number): 4 selecting c1t1d0 partition> p Current partition table (original): Total disk cylinders available: 14087 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 14086 68.35GB (14087/0/0) 143349312 1 unassigned wm 0 0 (0/0/0) 0 2 backup wm 0 - 14086 68.35GB (14087/0/0) 143349312 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 unassigned wm 0 0 (0/0/0) 0 |
x86 システムの 72G バイトのディスクに、68G バイトの使用可能ディスク領域がスライス 0 に配置されています。次の format の出力を参照してください。少量のブート情報がスライス 8 に格納されています。スライス 8 は管理不要で、変更することはできません。
# format . . . selecting c1t0d0 partition> p Current partition table (original): Total disk cylinders available: 49779 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 1 - 49778 68.36GB (49778/0/0) 143360640 1 unassigned wu 0 0 (0/0/0) 0 2 backup wm 0 - 49778 68.36GB (49779/0/0) 143363520 3 unassigned wu 0 0 (0/0/0) 0 4 unassigned wu 0 0 (0/0/0) 0 5 unassigned wu 0 0 (0/0/0) 0 6 unassigned wu 0 0 (0/0/0) 0 7 unassigned wu 0 0 (0/0/0) 0 8 boot wu 0 - 0 1.41MB (1/0/0) 2880 9 unassigned wu 0 0 (0/0/0) 0 |
ZFS では、ストレージプール内の UFS ファイルを仮想デバイスとして使用することもできます。この機能は、本稼働環境で使用するのではなく、主にテストや簡単な実験のために使用します。これは、ファイルをどのように使用する場合でも、整合性を保つために背後のファイルシステムに依存しているためです。ZFS プールを UFS ファイルシステム上のファイルに基づいて作成する場合には、正確さと同期のセマンティクスを保証するために、UFS に暗黙に依存しています。
ただし、ZFS を初めて使用してみる場合や、十分な物理デバイスがない状況で複雑な構成を実験する場合には、これらのファイルが非常に便利なことがあります。すべてのファイルは、完全なパスで指定し、64M バイト以上のサイズにする必要があります。