Sun Cluster の概要 (Solaris OS 版)

データサービス

データサービスは、Sun Cluster 構成の下でアプリケーションを変更なしで実行できるようにする、ソフトウェアと構成ファイルの組み合わせです。 Sun Cluster 構成の下で動作するアプリケーションは、リソースグループマネージャ (RGM) の制御下にある 1 つのリソースです。 データサービスを使えば、Sun Java System Web Server や Oracle データベースなどのアプリケーションをクラスタで (単一のサーバーではなく) 実行するように構成できます。

データサービスのソフトウェアは、アプリケーションに対して次の操作を行う Sun Cluster 管理メソッドを実装しています。

データサービスの構成ファイルは、RGM にとってアプリケーションを意味するリソースのプロパティを定義したものです。

クラスタのフェイルオーバーデータサービスやスケーラブルデータサービスの処理は RGM によって制御されます。 RGM は、クラスタメンバーシップの変更に応じて選択されたクラスタのノードでデータサービスの起動や停止を行います。 データサービスアプリケーションは、RGM を通してクラスタフレームワークを利用できます。

RGM はデータサービスをリソースとして制御します。 これらの実装は Sun によって提供されるか、開発者によって作成されます。後者の場合には、汎用的なデータサービステンプレートや、 データサービス開発ライブラリ API (DSDL API)、リソース管理 API (RMAPI) が使用されます。 クラスタ管理者は、リソースグループと呼ばれる入れ物 (コンテナ) の中でリソースの作成や管理を行います。 リソースやリソースグループの状態は、RGM や管理者のアクションによってオンラインやオフラインにされます。

リソースタイプ

リソースタイプは、クラスタに対してアプリケーションを定義するプロパティの集合です。 この集合には、クラスタのノードでアプリケーションをどのように起動、停止、監視するかを示す情報が含まれています。 さらに、リソースタイプには、アプリケーションをクラスタで使用するために必要なアプリケーション固有のプロパティも含まれています。 Sun Cluster データサービスには、いくつかのリソースタイプが事前に定義されています。 たとえば、Sun Cluster HA for Oracle のリソースタイプは SUNW.oracle-server、Sun Cluster HA for Apache のリソースタイプ SUNW.apache です。

リソース

リソースは、クラスタ規模で定義されたリソースタイプの 1 つの実態 (インスタンス) です。 リソースタイプを使用することによって、アプリケーションの複数のインスタンスをクラスタにインストールすることが可能になります。 ユーザーがリソースを初期化すると、RGM は、アプリケーション固有のプロパティに値を割り当てます。リソースは、リソースタイプのレベルにあるすべてのプロパティを継承します。

データサービスは、いくつかのタイプのリソースを使用します。 たとえば、Apache Web Server や Sun Java System Web Server などのアプリケーションは、それらが依存するネットワークアドレス (論理ホスト名と共有アドレス) を使用します。 アプリケーションとネットワークリソースは、RGM が管理する基本ユニットを形成します。

リソースグループ

RGM が管理するリソースはリソースグループに入れられ、1 つの単位として管理されます。 1 つのリソースグループは、関連したリソースや独立したリソースからなります。 たとえば、SUNW.LogicalHostname リソースタイプから派生したリソースは、Oracle データベースリソースタイプから派生したリソースと同じリソースグループに置かれることがあります。 リソースグループ上でフェイルオーバーまたはスイッチオーバーが開始されると、リソースグループは 1 つの単位として移行されます。

データサービスの型

データサービスを使用すると、アプリケーションは可用性の高いものやスケーラブルなサービスになります。クラスタで単一の障害が発生した場合、大幅なアプリケーションの中断を回避できます。

データサービスを構成する際には、次のデータサービスの型から 1 つを選択する必要があります。

フェイルオーバーデータサービス

フェイルオーバーとは、クラスタがアプリケーションを障害のある稼動系から、指定の冗長化された待機系に自動的に再配置するプロセスのことをいいます。 フェイルオーバーアプリケーションには、次の特徴があります。

フォルトモニターは、エラーを検知すると、データサービスの構成に従って、同じノードでそのインスタンスを再起動しようとするか、別のノードでそのインスタンスを起動 (フェイルオーバー) しようとします。 フェイルオーバーサービスは、アプリケーションインスタンスリソースとネットワークリソース (論理ホスト名) のコンテナである、フェイルオーバーリソースグループを使用します。 論理ホスト名とは、1 つのノードに構成して、後で自動的に元のノードや別のノードにホストできる IP アドレスのことです。

サービスが一時的に中断されるため、クライアントは、フェイルオーバーの完了後にサービスに再接続しなければならない場合があります。 しかし、クライアントは、サービスの提供元である物理サーバーが変更したことを意識しません。

スケーラブルデータサービス

スケーラブルデータサービスでは、複数のアプリケーションインスタンスが複数のノードで同時に動作します。 スケーラブルサービスは、2 つのリソースグループを使用します。 スケーラブルリソースグループにはアプリケーションリソースが、フェイルオーバーリソースグループには、スケーラブルサービスが依存するネットワークリソース (共有アドレス) がそれぞれ含まれています。 スケーラブルリソースグループは、複数のノードでオンラインにできるため、サービスの複数のインスタンスを同時に実行できます。 共有アドレスのホストとなるフェイルオーバーリソースグループは、同時に 1 つのノードでしかオンラインにできません。 スケーラブルサービスをホストとするすべてのノードは、サービスをホストするための同じ共有アドレスを使用します。

クラスタは、同一のネットワークインタフェース (グローバルインタフェース) を通してサービス要求を受け取ります。 これらの要求は、事前に定義されたいくつかのアルゴリズムの 1 つに基づいてノードに分配されます (アルゴリズムはロードバランシングポリシーによって設定される)。 クラスタは、ロードバランシングポリシーを使用し、いくつかのノード間でサービスのロードバランシングをとることができます。

パラレルアプリケーション

Sun Cluster システムは、パラレルデータベース (PDB) を使用することによってクラスタのすべてのノードでアプリケーションを並列で実行できるようにする環境を提供します。 Sun Cluster Support for Oracle Parallel Server/Real Application Clusters は、Oracle Parallel Server/Real Application Clusters を Sun Cluster ノードで実行できるようにするパッケージ群です。 さらに、このデータサービスでは、Sun Cluster コマンドを使って Sun Cluster Support for Oracle Parallel Server/Real Application Clusters を管理できます。

パラレルアプリケーションはクラスタ環境で動作するように考えられたものです。したがって、このようなアプリケーションは、複数のノードから同時マスターされます。 Oracle Parallel Server/Real Application Clusters 環境では、複数の Oracle インスタンスが協力して同じ共有データベースにアクセスします。 Oracle クライアントは、任意のインスタンスを使用してデータベースにアクセスできます。 したがって、1 つまたは複数のインスタンスで障害が発生しても、クライアントは残りのインスタンスに接続することによって、引き続きデータベースにアクセスできます。