このセクションでは次の情報を提供します。
グローバルデバイスの目的や機能については、Concepts for Oracle Solaris Cluster 4.4 の Global Devicesを参照してください。
Oracle Solaris Cluster ソフトウェアは、特定のディスクレイアウトやファイルシステムサイズを必要としません。グローバルデバイスのレイアウトを計画する場合、次の点に注意してください。
ミラー化 – グローバルデバイスの高可用性を実現するには、すべてのグローバルデバイスをミラー化する必要があります。ストレージデバイスがハードウェア RAID とディスクへの冗長パスを提供する場合は、ソフトウェアミラー化を使用する必要はありません。
ディスク – ミラー化するときは、複数のディスクアレイにまたがってミラー化されるようにファイルシステムを配置してください。
可用性 – グローバルデバイスの高可用性を実現するには、グローバルデバイスがクラスタ内の複数のノードに物理的に接続されている必要があります。複数の物理的な接続を持つグローバルデバイスは、単一のノードでの障害に対応できます。物理的な接続を 1 つしか持たないグローバルデバイスもサポートされていますが、その接続を持つノードがダウンした場合、ほかのノードからはそのグローバルデバイスにアクセスできなくなります。
スワップデバイス - グローバルデバイス上には swap ファイルは作成しないでください。
非大域ゾーン - グローバルデバイスは、非大域ゾーンから直接アクセスできません。非大域ゾーンからアクセスできるのは、クラスタファイルシステムのデータだけです。
デバイスグループの目的や機能については、Concepts for Oracle Solaris Cluster 4.4 の Device Groupsを参照してください。
デバイスグループを計画する際は、次の点を考慮してください。
フェイルオーバー – 多重ホストディスクと、適切に構成したボリューム管理ソフトウェアデバイスをフェイルオーバーデバイスとして構成できます。ボリュームマネージャーデバイスの適切な構成には、多重ホストディスクや、ボリュームマネージャー自体の正しい設定が含まれます。この構成により、複数のノードが、エクスポートしたデバイスをホストできるようになります。テープドライブ、CD-ROM、DVD-ROM、単一ポートのデバイスは、フェイルオーバーデバイスとして構成できません。
ミラー化 – ディスクをミラー化して、ディスクの障害からデータを保護します。詳細なガイドラインについては、ミラー化のガイドラインを参照してください。ミラー化に関する手順については、Solaris Volume Manager ソフトウェアの構成およびボリュームマネージャーのドキュメントを参照してください。
ストレージベースのレプリケート – デバイスグループ内のディスクは、すべてレプリケートされているか、どれもレプリケートされていないかのどちらかにする必要があります。デバイスグループで、レプリケートされたディスクとレプリケートされていないディスクを混在させて使用することはできません。
クラスタファイルシステムの目的や機能については、Concepts for Oracle Solaris Cluster 4.4 の Cluster File Systemsを参照してください。
クラスタファイルシステムを計画する際は、次の点を考慮してください。
割り当て – 割り当てはクラスタファイルシステムでサポートされていません。ただし、高可用性ローカルファイルシステムでは、割り当てがサポートされています。
ゾーンクラスタ – ZFS または UFS クラスタファイルシステムをゾーンクラスタ内で直接構成することはできません。ただし、それらをグローバルクラスタ内で構成し、ゾーンクラスタ内にループバックマウントさせることは可能です。また、高可用性ローカルファイルシステムを使用することもできます。詳細は、ゾーンクラスタにファイルシステムを追加するを参照してください
ゾーンのファイルシステム – ゾーンをグローバル ZFS ファイルシステムにインストールすることはできません。グローバル zpool のファイルシステムの下にゾーンのゾーンルートパスを構成することは、サポートされていません。
ループバックファイルシステム (LOFS) – クラスタの作成中、LOFS はデフォルトで有効になっています。クラスタが次の両方の条件に当てはまる場合、各クラスタノードで LOFS を手動で無効にしてください。
HA for NFS (HA for NFS) が高可用性ローカルファイルシステムに構成されている。
automountd デーモンが稼働している。
クラスタがこれらの条件の両方に当てはまる場合、スイッチオーバーの問題やその他の障害を防ぐために、LOFS を無効にする必要があります。クラスタがこれらの条件の 1 つだけしか満たさない場合、LOFS を有効にしても安全です。
LOFS と automountd デーモンの両方を有効にする必要がある場合は、HA for NFS によってエクスポートされる高可用性ローカルファイルシステムに含まれるファイルをすべてオートマウンタマップから除外してください。
プロセスアカウンティングログファイル - プロセスアカウンティングログファイルは、クラスタファイルシステムまたは高可用性ローカルファイルシステムに置かないでください。ログファイルへの書き込みによってスイッチオーバーがブロックされ、ノードがハングします。プロセスアカウンティングログファイルを置くのは、ローカルファイルシステムだけにしてください。
通信エンドポイント – クラスタファイルシステムでは、通信エンドポイントをファイルシステム名前空間に指定するための、Oracle Solaris ソフトウェアのファイルシステム機能を一切サポートしていません。したがって、ローカルノード以外のノードからfattach コマンドを使用しないでください。
名前がクラスタファイルシステムへのパス名である UNIX ドメインソケットは作成できますが、ノードにフェイルオーバーが発生したとき、このソケットは生き残ることができません。
クラスタファイルシステム上で作成する FIFO または指定したパイプはグローバルにアクセスすることはできません。
デバイス特殊ファイル - クラスタファイルシステムでは、文字型特殊ファイルもブロック型特殊ファイルもサポートされていません。クラスタファイルシステム内のデバイスノードへのパス名を指定するには、/dev ディレクトリ内のデバイス名へのシンボリックリンクを作成します。mknod コマンドをこの目的で使用しないでください。
atime - クラスタファイルシステムは、atime を維持しません。
ctime - クラスタファイルシステム上のファイルにアクセスするときに、このファイルの ctime の更新が遅延する場合があります。
アプリケーションのインストール - 高可用性アプリケーションのバイナリをクラスタファイルシステムに置く場合、クラスタファイルシステムが構成されるまで待ってからアプリケーションをインストールしてください。
このセクションでは、ZFS ファイルシステムデータセットと ZFS ストレージプール (zpool) のプロパティー設定に関する要件や制限について説明します。
Oracle Solaris ZFS プールのプロパティーを次に示します。
clustered=on | off
ZFS プールの場合、clustered プロパティーによってプールのデータセットにアクセスできるかどうかが決まります。プールのインポート時に clustered プロパティーが on に設定されていた場合、そのプール内のすべてのファイルシステムデータセットがグローバルにマウントされ、すべてのクラスタノードから使用可能となります。通常、ZFS クラスタファイルシステムをホストする ZFS プールはデバイスグループによって管理されますが、このデバイスグループはプールのインポート時に clustered プロパティーを自動的に on に設定します。したがって、これを手動で設定する必要はありません。
clustered プロパティーの詳細については、zpool(8) のマニュアルページを参照してください。
次の ZFS データセットプロパティーは、ファイルシステムがグローバルにマウントされている間は、新しい値に設定できません。これらのプロパティーのいずれかを変更するには、ZFS データセットをアンマウントするか、ローカルでマウントします。これらの ZFS プロパティーやほかの ZFS プロパティーの詳細については、zfs(8) のマニュアルページを参照してください。
atime
devices
exec
readonly
rstchown
setuid
xattr
sync
canmount
mountpoint
zoned
グローバルマウントが成功するには、ZFS ファイルシステムの zoned プロパティーが off に設定されている必要があります。
たとえば、globalzpool の clustered プロパティーが on に設定された状態で、データセット globalzpool/fs1 の mountpoint プロパティーを変更するには、次のステップを実行します。
データセットをアンマウントします。
# zfs unmount globalzpool/fs1
mountpoint プロパティーを更新します。
# zfs set mountpoint=/global/gzpool/fs1 globalzpool/fs1
データセットを再度マウントします。
# zfs mount globalzpool/fs1
グローバルにマウントされた ZFS ファイルシステムの場合、zfs share および zfs unshare コマンドと share.nfs または share.smb ZFS プロパティーを使用して ZFS ファイルシステムを共有することは、現時点ではサポートされていません。代わりに、Oracle Solaris Cluster の HA for Network File System (NFS) データサービスを使用してレガシー共有を構成してください。詳細は、Oracle Solaris Cluster Data Service for NFS Guideを参照してください。
このセクションでは、UFS クラスタファイルシステムのマウントオプションに関する要件や制限について説明します。
UFS クラスタファイルシステムの作成時に使用するマウントオプションを決定するには、次のマウントオプション一覧のガイドラインに従ってください。
必須。このオプションを選択すると、クラスタ内のすべてのノードでファイルシステムが表示されます。
必須。このオプションを選択すると、ロギングが有効になります。
条件付き。このオプションは、Oracle RAC RDBMS データファイル、ログファイル、および制御ファイルをホストするクラスタファイルシステムにのみ必要です。
必須。/etc/vfstab ファイルで onerror=panic マウントオプションを明示的に指定する必要はありません。他の onerror マウントオプションが指定されていない場合は、このマウントオプションがデフォルト値として使用されます。
onerror=umount または onerror=lock マウントオプションを使用すると、クラスタファイルシステムがロックされたり、アクセスできなくなったりする場合があります。この状況は、クラスタファイルシステムのファイルが破壊された場合に、発生することがあります。
onerror=umount または onerror=lock マウントオプションを使用すると、クラスタファイルシステムがマウントできなくなる場合があります。この状況により、クラスタファイルシステムを使用するアプリケーションがハングアップし、アプリケーションを終了できなくなる場合があります。
これらの状態から復旧するには、ノードのリブートが必要になることがあります。
オプション。syncdir を指定した場合、write() システムコールにおいて、ファイルシステムが POSIX に準拠して動作することが保証されます。write() が成功した場合、このマウントオプションにより、ディスク上に十分な領域が確保されます。
syncdir を指定しない場合、ファイルシステムの動作は UFS ファイルシステムと同じです。syncdir を指定しない場合、ディスクブロックを割り当てる (つまり、データをファイルに追加するような) 書き込みの性能が大幅に向上します。しかし、syncdir を指定しない場合、ファイルを閉じるまでは空間不足 (ENOSPC) の状態が判明しません。
この場合、ファイルを閉じるときに ENOSPC 状態になるのは、フェイルオーバー後の短い間だけです。syncdir を指定した場合、POSIX の動作と同様、空間不足状態はファイルを閉じる前に見つかります。
UFS マウントオプションの詳細については、mount_ufs(8) のマニュアルページを参照してください。
クラスタファイルシステムのマウントポイントを計画する際は、次の点を考慮してください。
マウントポイントの場所 –ZFS データセットはデフォルトで、zpool のルートファイルシステムの下にマウントされます。たとえば、pool1 という名前の ZFS プールのファイルシステムデータセットのマウント先は、/pool1、/pool1/fs1、/pool1/fs2 などになります。
ZFS 上のクラスタファイルシステムがサポートされていなかった以前のリリースの Oracle Solaris Cluster では、容易にクラスタファイルシステムとローカルファイルシステムの区別がつくように、クラスタファイルシステムを /global ディレクトリの下にマウントするという規約が存在していました。ZFS では、ZFS データセットに対して zfs set コマンドを実行することで、デフォルト以外のマウントポイントを指定できます。ただし、ZFS ファイルシステムデータセットのマウントポイントを変更できるのは、データセットがグローバルにマウントされていない間だけです。ZFS プールがインポートされるノード上で、この ZFS コマンドを実行する必要があります。デフォルト以外のマウントポイントに関する処理を回避するため、デフォルトの ZFS マウント動作を受け入れることをお勧めします。詳細は、zfs(8) のマニュアルページを参照してください。
マウントポイントを入れ子にする – ある特定の ZFS ストレージプール内の ZFS データセットは入れ子になることがあります。たとえば、globalpool という名前のプールには、globalpool/fs1、globalpool/fs2、globalpool/fs2/fs3 といった名前のファイルシステムデータセットが含まれる可能性があります。これらのファイルシステムデータセットは、プールのルートファイルシステム /globalpool の下の対応するパスにマウントされます。
ZFS 以外のクラスタファイルシステムでは、マウントポイントを入れ子にしないでください。たとえば、あるファイルシステムを /global/a にマウントし、別のファイルシステムを /global/a/b にマウントするような設定は避けてください。この規則を無視すると、可用性とノードのブート順序に問題が発生することがあります。このような問題は、システムがファイルシステムの子をマウントしようとして、親マウントポイントが存在しない場合に発生します。
この規則の例外は、クラスタファイルシステムが UFS 上にある場合です。同じディスク上の異なるスライスのように、2 つのファイルシステムのデバイスが同じ物理ホスト接続性を持つ場合は、マウントポイントを入れ子にすることができます。
グローバルファイルシステムへのローカルファイルシステムまたは HA ローカルファイルシステムのマウントは、サポートされていません。代わりに、グローバルファイルシステムから非グローバルファイルシステムへのシンボリックリンクを使用してください。
forcedirectio (UFS のみ) – Oracle Solaris Cluster ソフトウェアは、forcedirectio マウントオプションを使用してマウントされるクラスタファイルシステムからのバイナリの実行をサポートしていません。