クラスタファイルシステムは、1 つのノード上のカーネル、配下のファイルシステムおよびディスクへの物理接続を持つノードで実行されるボリューム管理ソフトウェアとの間のプロキシです。
クラスタファイルシステムは、1 つまたは複数のノードへの物理接続を持つ広域デバイス (ディスク、テープ、CD-ROM) に依存しています。広域デバイスは、ノードが記憶装置への物理接続を持つかどうかに関係なく、同じファイル名 (たとえば、/dev/global/) によってクラスタ内のすべてのノードからアクセスできます。広域デバイスは通常のデバイスと同様に使用できます。つまり、newfs または mkfs、あるいはこの両方を使用し、ファイルシステムを作成できます。
広域デバイスには、mount -g を使用して広域に、または mount を使用してローカルにファイルシステムをマウントできます。
プログラムは、同じファイル名 (たとえば、/global/foo) によって、クラスタ内のすべてのノードからクラスタファイルシステムのファイルにアクセスできます。
クラスタファイルシステムは、すべてのクラスタメンバーにマウントされます。クラスタファイルシステムをクラスタメンバーのサブセットにマウントすることはできません。
クラスタファイルシステムは、特定のファイルシステムタイプではありません。つまり、クライアントは、UFS など、実際に使用するファイルシステムしか認識できません。
SunPlex システムでは、すべての多重ホストディスクがディスクデバイスグループとして構成されています。これは、Solstice DiskSuite ディスクセット、VxVM ディスクグループ、またはソフトウェアベースのボリューム管理ソフトウェアの制御下にない個々のディスクが該当します。
クラスタファイルシステムを高可用性にするには、使用するディスクストレージが複数のノードに接続されていなければなりません。したがって、クラスタファイルシステム内のローカルファイルシステム (ノードのローカルディスクに格納されているファイルシステム) は、高可用性ではありません。
通常のファイルシステムと同様、クラスタファイルシステムは 2 つの方法でマウントできます。
手作業によるマウント- mount コマンドと -g または -o global マウントオプションを使用し、コマンド行からクラスタファイルシステムをマウントします。次に例を示します。
# 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 U1 ソフトウェアのインストール』および『Sun Cluster 3.0 U1 のシステム管理』を参照してください。
クラスタファイルシステムには、次の機能があります。
ファイルのアクセス場所が透過的になります。プロセスはファイルがシステム内のどこに置かれていても開くことができ、また、すべてのノード上のプロセスが同じパス名を使用してファイルを見つけられます。
一貫したプロトコルを使用して、ファイルが複数のノードから同時にアクセスされている場合でも、UNIX ファイルアクセス方式を維持します。
拡張キャッシュ機能とゼロコピーバルク入出力移動機能により、ファイルデータを効率的に移動することができます。
クラスタファイルシステムには、fcntl (2) インタフェースに基づく、高度な可用性を備えたアドバイザリファイルロッキング機能があります。複数のクラスタノードで動作するアプリケーションは、クラスタファイルシステムのファイルに対してアドバイザリファイルロッキング機能を使用することによって、データへのアクセスを同期化することができます。ファイルロックを所有するノードがクラスタから切り離されたり、ファイルロックを所有するアプリケーションが異常停止すると、それらのロックはただちに解放されます。
障害が発生した場合でも、データへの連続したアクセスが可能です。アプリケーションは、ディスクへのパスが有効である限り、障害による影響を受けません。この保証は、raw ディスクアクセスとすべてのファイルシステム操作で維持されます。
クラスタシステムファイルは、実際のファイルシステムおよびボリューム管理ソフトウェアに依存していません。クラスタシステムファイルは、サポートされているディスク上のファイルシステムすべてを広域にします。
ファイルシステムとして UFS を使用するクラスタファイルシステムには、syncdir マウントオプションを使用できますが、syncdir を指定しない方がパフォーマンスは向上します。syncdir を指定すると、POSIX 準拠の書き込みが保証されます。指定しないと、UFS ファイルシステムの場合と同じ動作となります。たとえば、syncdir を指定しないと、場合によっては、ファイルを閉じるまでスペース不足条件を検出できません。syncdir (および POSIX 動作) を指定すると、スペース不足条件は書き込み動作中に検出されます。syncdir を指定しないことで生じる問題はほとんどないため、このオプションを指定しないで、パフォーマンスを向上させることを推奨します。
広域デバイスとクラスタファイルシステムについては、「ファイルシステムに関する FAQ」を参照してください。