クラスタファイルシステムは、1 つのノード上のカーネル、配下のファイルシステムおよびディスクへの物理接続を持つノードで実行されるボリューム管理ソフトウェアとの間のプロキシです。
クラスタファイルシステムは、1 つまたは複数のノードへの物理接続を持つ広域デバイス (ディスク、テープ、CD-ROM) に依存しています。広域デバイスは、ノードが記憶装置への物理接続を持つかどうかに関係なく、同じファイル名 (たとえば、/dev/global/) によってクラスタ内のすべてのノードからアクセスできます。広域デバイスは通常のデバイスと同様に使用できます。つまり、newfs または mkfs、あるいはこの両方を使用し、ファイルシステムを作成できます。
広域デバイスには、mount -g を使用して広域に、または mount を使用してローカルにファイルシステムをマウントできます。プログラムは、同じファイル名 (たとえば、/global/foo) によって、クラスタ内のすべてのノードからクラスタファイルシステムのファイルにアクセスできます。クラスタファイルシステムは、すべてのクラスタメンバーにマウントされます。クラスタファイルシステムをクラスタメンバーのサブセットにマウントすることはできません。
Sun Cluster では、すべての多重ホストディスクがディスクデバイスグループとして構成されています。これは、Solstice DiskSuite ディスクセット、VxVM ディスクグループ、またはソフトウェアベースのボリューム管理ソフトウェアの制御下にない個々のディスクが該当します。また、ローカルディスクも、パスが各ノードから各ローカルディスクにつながるという点で、ディスクデバイスグループとして構成されています。この設定では、すべてのノードからディスク上のデータを利用できるとは限りません。データは、ディスク上のファイルシステムがクラスタファイルシステムとして広域にマウントされた場合にのみ、すべてのノードに利用可能になります。
クラスタファイルシステムに組み込まれたローカルファイルシステムには、ディスク記憶装置への単一の接続だけがあります。ディスク記憶装置への物理接続を持つノードに障害が生じると、他のノードからクラスタファイルシステムへのアクセスが不可能になります。また、他のノードから直接アクセスできない単一ノードにローカルファイルシステムを置くこともできます。
HA データサービスは、サービス用のデータが、クラスタファイルシステム内のディスクデバイスグループに保存されるように設定されています。この設定にはいくつかの利点があります。まず、データの可用性が高くなります。つまり、ディスクは多重ホスト化されているため、現在の主ノードからのパスに障害が発生した場合、アクセスは同じディスクへの直接アクセスを持つ別のノードに切り替えられます。次に、データはクラスタファイルシステムにあるため、任意のクラスタノードから直接表示できます。現在ディスクデバイスグループをマスターしているノードにログインしてデータを表示する必要はありません。
クラスタファイルシステムは、プロキシファイルシステム (PXFS) に基づいています。これには、次の機能があります。
PXFS を使用すると、ファイルのアクセス場所が透過的になります。プロセスはファイルがシステム内のどこに置かれていても開くことができ、また、すべてのノード上のプロセスが同じパス名を使用してファイルを見つけられます。
PXFS は、一貫したプロトコルを使用して、ファイルが複数のノードから同時にアクセスされている場合でも、UNIX ファイルアクセス方式を維持します。
PXFS には、拡張キャッシュ機能と、大量のデータオブジェクトを効率的に移動するためのゼロコピーバルク入出力移動機能があります。
PXFS を使用すると、障害が発生した場合でも、データへの連続したアクセスが可能です。アプリケーションは、ディスクへのパスが有効である限り、障害を検出しません。この保証は、raw ディスクアクセスとすべてのファイルシステム操作で維持されます。
PXFS は、実際のファイルシステムおよびボリューム管理ソフトウェアに依存していません。PXFS は、サポートされているディスク上のファイルシステムすべてを広域にします。
PXFS は、既存の Solaris ファイルシステムの最上位の vnode インタフェースに構築されています。このインタフェースを使用すると、拡張カーネル修正なしで、PXFS を実装できます。
PXFS は、明確なファイルシステム形式ではありません。つまり、クライアントには、実際のファイルシステム (たとえば UFS) が表示されます。
クラスタファイルシステムは、実際のファイルシステムおよびボリューム管理ソフトウェアに依存していません。現在、クラスタファイルシステムは、Solstice DiskSuite または VERITAS Volume Manager のどちらかを使用して、UFS で作成できます。
通常のファイルシステムと同様、クラスタファイルシステムは 2 つの方法でマウントできます。
手作業によるマウント- mount コマンドと -g オプションを使用して、コマンド行からクラスタファイルシステムをマウントします。次に例を示します。
# mount -g /dev/global/dsk/d0s0 /global/oracle/data |
自動マウント- global マウントオプションによって /etc/vfstab ファイルにエントリを作成します。さらに、すべてのノードの /global ディレクトリ下にマウントポイントを作成します。ディレクトリ /global を推奨しますが、他の場所でも構いません。次に、/etc/vfstab ファイルの、クラスタファイルシステムを示す行の例を示します。
/dev/md/oracle/dsk/d1 /dev/md/oracle/rdsk/d1 /global/oracle/ data ufs 2 yes global,logging |
Sun Cluster には、クラスタファイルシステムの命名ポリシーはありませんが、/global/disk-device-group など、同じディレクトリのもとにすべてのクラスタファイルシステムのマウントポイントを作成すると、管理が簡単になります。詳細については、『Sun Cluster 3.0 ソフトウェアのインストール』および『Sun Cluster 3.0 のシステム管理』を参照してください。
クラスタファイルシステムには、syncdir マウントオプションを使用できますが、syncdir を指定しない方がパフォーマンスは向上します。syncdir を指定すると、POSIX 準拠の書き込みが保証されます。指定しないと、UFS ファイルシステムの場合と同じ動作となります。たとえば、syncdir を指定しないと、場合によっては、ファイルを閉じるまでスペース不足条件を検出できません。syncdir (および POSIX 動作) を指定すると、スペース不足条件は書き込み動作中に検出されます。syncdir を指定しないことで生じる問題はほとんどないため、このオプションを指定しないで、パフォーマンスを向上させることを推奨します。
広域デバイスとクラスタファイルシステムについては、「ファイルシステムに関する FAQ」を参照してください。