Sun Cluster システムを使用すると、アプリケーションを高度な可用性とスケーラビリティーを備えたリソースとして実行および管理できます。RGM (Resource Group Manager) は、高可用性とスケーラビリティーを実現するための機構を提供します。
この機能を利用するためのプログラミングインタフェースを形成する要素は、次のとおりです。
ユーザーが作成するコールバックメソッドのセット。このコールバックメソッドにより、RGM はクラスタ内のアプリケーションを制御することができます。
Resource Management API (RMAPI)。コールバックメソッドの作成に使用できる、低レベルの API コマンドおよび関数のセットです。RMAPI は libscha.so ライブラリとして実装されています。
Data Service Development Library (DSDL)。低レベル API と、高レベルでのプロセス管理機能をカプセル化した、ライブラリ関数セットです。DSDL は、コールバックメソッドの作成を支援するいくつかの機能を追加します。DSDL 関数は libdsdev.so ライブラリとして実装されています。
Sun Cluster Agent Builder (第 9 章「Sun Cluster Agent Builder」 を参照) は Sun Cluster パッケージ内のツールで、データサービスの作成プロセスを自動化します。Agent Builder は、(DSDL 関数を使用してコールバックメソッドを作成することにより) C、または (低レベル API コマンドを使用してコールバックメソッドを作成することにより) Korn (ksh) シェルコマンドでデータサービスコードを生成します。
RGM は各クラスタノード上でデーモンとして動作し、事前構成したポリシーに従って、選択したノードまたはゾーン上のリソースを自動的に起動および停止します。RGMは、ノードまたはゾーンの障害やリブートが発生した場合もリソースの高可用性を保ちます。これを実現するため、RGM は影響を受けたノードまたはゾーン上でリソースを停止し、別のノードまたはゾーン上でそのリソースを起動します。また RGM は、リソース固有のモニターを自動的に起動および停止します。これらのモニターは、リソース障害を検出したり、障害が発生しているリソースを別のノードまたはゾーンに再配置したり、さまざまな視点からリソース性能を監視します。
RGM はフェイルオーバーリソースとスケーラブルリソースの両方をサポートしています。フェイルオーバーリソースは、常に単一のノードまたはゾーン上でしかオンラインにできません。スケーラブルリソースは、同時に複数のノードまたはゾーン上でオンラインにできます。ただし、共有アドレスを使用してノード間でサービスの負荷を分散しているスケーラブルリソースは、物理ノードあたり 1 つのゾーンでしかオンラインにできません。