Sun Cluster の論理ホストという概念を利用すると、データサービスの高可用性を実現できます。データサービスのデータは論理ホストのディスクセットに格納されます。ディスクセットはデュアルポート形式であり、あるサーバーが異常終了したときには、動作中のサーバーからデータをアクセスできます。ネットワーク上のクライアントがネットワークにアクセスするために、データサービスは、クライアントが使用すべきサーバー名として論理ホスト名を通知します。論理ネットワーク IP アドレスがフェイルオーバーすると、データサービスのネットワーククライアントは論理ホストとともに移動します。
Sun Cluster では、論理ホストの数は任意です。したがって、データサービスの実装は量に依存してはなりません。データサービスのデータを単一の論理ホストに保存するか、複数の論理ホストに保存するかを決定する必要があります。
一般的に、単一の論理ホストにデータサービスのデータを保存するように設計および実装する方が簡単です。この場合、データサービスのすべてのデータは単一の論理ホストのディスクセットに格納されます。データサービスには 1 セットのデーモンだけが必要です。物理ホストがこのデータサービス用のデーモンを実行するのは、その物理ホストが物理ホストのマスターになっている場合だけです。物理ホストが論理ホストのマスターをテイクオーバーするときは、データサービスの start メソッドでデーモンを起動します。物理ホストが論理ホストのマスターを放棄するときは、データサービスの stop メソッドでデーモンを停止します。場合によっては、強制終了シグナルを送信してデーモンを強制終了するだけでもかまいません。
複数の論理ホストを使用する場合は、データサービスのデータを異なるセットに分割しなければなりません。データを分割するときは、データサービスが実行する 1 つの操作に必要なデータが、複数のセットに分かれないように分割しなければなりません。
Sun の HA-NFS 製品を考えた場合、複数のファイルシステムが存在し、各ファイルシステムに異なるデータが格納されています。HA-NFS の場合、各論理ホストは独自の NFSTM ファイルシステムセットを持ちます。各物理ホストは、マスターしている論理ホストに属するファイルシステムを NFS により共有します。2 つの論理ホストに属する NFS ファイルシステムセットは分割されます。
複数の論理ホストを使用すると、ある程度の基本負荷均衡を実現できます。つまり、両方の物理ホストが起動しているとき、各物理ホストは論理ホストの 1 つをマスターし、その論理ホストに対するデータサービスのトラフィックを処理できます。したがって、両方の物理ホストはお互いにスタンバイ状態になることができるため、効率よく作業できます。
いくつかのデータサービスでは、データを分割するとき、データサービスの操作に必要なデータが複数のセットに分かれないようにすることが不可能なものもあります。第 2 章「データサービスの例」で説明する in.named の例がこのようなデータサービスです。相互依存するデータファイルは 1 セットだけであるため、異なるセットに分割することは困難です。
簡単にデータを分割できない場合や、複数の論理ホストを使用しても基本負荷均衡があまり期待できない場合は、単一の論理ホストを使用するようにデータサービスを構成してください。
Sun Cluster では、各論理ホストに (1 つまたは複数のファイルシステムまたは raw パーティションを持つ) ディスクセットが少なくとも 1 つ必要です。また、各論理ホストに特別なファイルシステムが 1 つ必要です。特別なファイルシステムとは、必ず存在し、特定の名前を持つ (つまり、名前空間階層中の特定のディレクトリ名にマウントされている) ファイルシステムのことです。Sun Cluster を初めてインストールして構成するとき、管理者は scconf(1M) プログラムを使用し、必要なファイルシステムを作成し、必須規約に準拠させます。Sun Cluster では、このような必須ファイルシステムのことを「管理ファイルシステム」と呼びます。
データサービスが管理ファイルシステムを使用する場合は、この項で説明する規約に準拠しなければなりません。
各データサービスの管理データは、管理ファイルシステムの下にある各データサービス独自のサブディレクトリに格納しなければなりません。たとえば、データサービスが Solaris パッケージを使用する場合、サブディレクトリ名は /administrative_file_system/PkgName という形式でなければなりません (PkgName はデータサービスパッケージの名前)。
データサービスがパッケージ機構を使用しない場合、サブディレクトリ名は、hareg(1M) で Sun Cluster に登録したときにデータサービス名として使用した名前と同じでなければなりません。hareg(1M) ユーティリティは、名前に関する衝突を検出および禁止します。たとえば、論理ホスト「hahost1」を使用する実装において、「hainnamed」という名前を hareg(1M) で登録した場合は、 /hahost1/hainnamed という名前の管理サブディレクトリを作成します。
管理ファイルシステムは比較的小さなファイルシステムです。各データサービスは管理ファイルシステムに保存する管理データの量を数 K バイトに制限しなければなりません。大きな管理データが必要な場合は、管理ファイルシステムを (論理ホストのファイルシステムにある別のディレクトリを指す) 使用します。ほとんどのデータサービスにおいてデータは大きくなるため、データサービスのユーザーデータは管理ファイルシステムに格納してはなりません。