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