Jump to content 日本-日本語

製品  >  ソフトウェア  >  HP- UX Developer Edge

HAクラスタの疑問を解く・前編

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
HAクラスタの疑問を解く・前編

HAクラスタのソフトウェア構成


次に、HAクラスタのソフトウェア構成に目を転じてみよう。
 
図3:Serviceguardのソフトウェア構成
  図3:Serviceguardのソフトウェア構成
J2EE運用の新しい常識、「パーティショニング」を検証する
「高可用性は当たり前」の時代
HAクラスタのハードウェア構成
HAクラスタのソフトウェア構成

図3は、Serviceguardのソフトウェア構成を示したものだ。同図が示すようにServiceguard本体は以下の3つのマネージャから構成されている

  • パッケージ・マネージャ
  • クラスタ・マネージャ
  • ネットワーク・マネージャ
これらのうち、クラスタ・マネージャとネットワーク・マネージャは、ノード間のフェイルオーバー機能を提供するコンポーネントであり、そのメカニズムについて詳しくは特集2で解説する。ここでは、フェイルオーバー時のアプリケーションの起動や停止をつかさどるパッケージ・マネージャについて説明しよう。

Serviceguardでは、フェイルオーバーの対象となるアプリケーションを「パッケージ」と呼ばれる単位で管理している。その実体は、以下のようなテキストベースの設定ファイルである。

<パッケージ設定ファイルの例>
PACKAGE_NAME pkg1
PACKAGE_TYPE FAILOVER
FAILOVER_POLICY CONFIGURED_NODE
FAILBACK_POLICY MANUAL
NODE_NAME csps0431
NODE_NAME csps0432
AUTO_RUN YES
RUN_SCRIPT /etc/cmcluster/pkg1/control.sh
HALT_SCRIPT /etc/cmcluster/pkg1/control.sh
<以下略>  

パッケージ・マネージャは、パッケージに登録されたアプリケーションの起動や停止、状態監視をすべて自動で管理する。ここで、上記ファイルの一番下にあるパラメータRUN_SCRIPTとHALT_SCRIPTに注目してほしい。これらは、それぞれアプリケーションの起動と停止のためのスクリプトを指定するために用いる。フェイルオーバーの際、パッケージ・マネージャは、ここで指定されたスクリプトをスタンバイ・ノードで実行することで、アプリケーションの起動や停止を行う。よって、同スクリプトさえ用意すれば、どのようなアプリケーションでもフェイルオーバーさせることができるわけだ。

Oracle RACやSAPのサポート


とりわけ、HAクラスタの恩恵を受けるのは、「ディスク上のデータを占有するアプリケーション」である。クラスタウェアは、アプリケーションの起動と停止だけでなく、スタンバイ・ノード側で共有ディスクのボリュームを安全にマウントし直す機能も備える。よって、データベースやメール・サーバ、NFSサーバなどのフェイルオーバーには、HAクラスタを欠かすことができない。また、通常はロードバランサーを用いてフェイルオーバーを行うWebサーバやアプリケーション・サーバについても、アプリケーション・データをデータベースではなくファイルに保存する設計であると、HAクラスタを使わずにフェイルオーバーを実現するのは困難であろう。

ちなみにServiceguardでは、Oracleデータベースのクラスタ機能であるRAC(Real Application Clusters)をサポートするためのオプション、Serviceguard Extension for RAC(SGeRAC)が用意されている。Oracle RACの利用にはクラスタソフトの導入が前提となるが、SGeRACではServiceguardとRACのスムーズな統合をサポートするパッケージが提供される。これにより、ハードウェアやOS、ネットワーク、ディスク・ボリュームなどの状態をきめ細かく監視し、検知した障害をすばやくRACに伝えることが可能だ。

また、もうひとつのオプションとして、SAPとの連携のためのServiceguard Extension for SAP(SGeSAP)も用意されている。SGeSAPを利用することで、SAP Web Application Server(WAS)の監視やフェイルオーバーを実現するほか、SAPが利用するNFSサーバをHAクラスタ化し、可用性を高めることができる。

フェイルオーバー・ポリシーとは


つづいて、パッケージ設定ファイルの他のパラメータについて見てみよう。それぞれ、以下のような意味を持つ。

  • FAILOVER_POLICY――パッケージのフェイルオーバー先の決定方法(フェイルオーバー・ポリシー)を指定する
  • FAILBACK_POLICY――フェイルバック、すなわちプライマリ・ノード復旧後の現状復帰の方法を指定する
  • NODE_NAME――プライマリ・ノードとスタンバイ・ノードを指定する
  • AUTO_RUN――クラスタ全体の起動時にパッケージの自動起動を行うかどうかを指定する
これらのパラメータの主な役割は、フェイルオーバー先の決定方法、すなわちフェイルオーバー・ポリシーを指定することにある。上記例のパラメータFAILOVER_POLICYで指定しているCONFIGURED_NODEとは、後続のパラメータNODE_NAMEで指定された2つのノード、csps0431とcsps0432をそれぞれプライマリとスタンバイとして利用することを意味する。よって、プライマリであるcsps0431に何らかの障害が発生した場合は、パラメータRUN_SCRIPTで指定したスクリプトがスタンバイ・ノードcsps0432で実行される。これにより、アプリケーションの肩代わりが可能になる仕組みだ。

このように、プライマリとスタンバイの指定は、パッケージすなわちアプリケーション単位で行える。よってたとえば、2台のノードから構成されるHAクラスタでは、以下のような「たすきがけ」のフェイルオーバーも可能である。

  • データベース:プライマリ=ノード1、スタンバイ=ノード2
  • メール・サーバ:プライマリ=ノード2、スタンバイ=ノード1
この場合、ノード1の障害時にはデータベースがノード2へとフェイルオーバーし、ノード2の障害時にはメール・サーバがノード1へとフェイルオーバーする。こうした構成のHAクラスタは「active/active型」と呼ばれ、2台のノードを有効活用できるという利点がある(一方、片方をもっぱら予備機とする構成は「active/standby型」と呼ばれる)。

また、フェイルオーバー・ポリシーとしては、上記例で指定されているCONFIGURED_NODEの他にも、MIN_PACKAGE_NODEというポリシーも指定できる。この場合、指定されたスタンバイ・ノードの中から、「フェイルオーバー時点でもっともパッケージ数の少ないノード」が動的に選択される。

Serviceguardのパッケージ設定ファイルでは、以上のパラメータの他にも、アプリケーションの動作に不可欠なシステム・リソースを監視するためのパラメータも用意されている。このパラメータと、HPが提供する監視ツール「EMS HA Monitor」と組み合わせることで、システム・リソース不足時のフェイルオーバーも可能だ。たとえば、ネットワークやディスクの状態をはじめ、システム負荷、ユーザ数などの状況を監視し、アプリケーションの動作に支障がでるような場合はフェイルオーバーを行う、といった具合である。

GUI管理ツールServiceguard Manager (SGM)


Serviceguardでは、こうしたパッケージの作成や変更、さらにはクラスタ全体の構成や状態を管理するためのGUIツール、Serviceguard Manager(SGM)を提供している。

図4:Serviceguard Manager (SGM)
図4:Serviceguard Manager (SGM)

図4は、SGMによるクラスタ管理の例である。ここでは、「ff」と名付けられたクラスタがcsps0431およびcsps0432という2台のノードによって構成されていることがGUI表示によって示されている。また、これらのうちcsps0431がパッケージxclockのプライマリ・ノードとしてアプリケーションを稼働中であることがわかる。

また、従来のServiceguardでは、こうした管理機能はOSのrootユーザしか利用することができなかった。しかし、Serviceguardの最新版であるバージョンA.11.16では、非rootユーザに対して特定のパッケージについてのみ管理を許可したり、クラスタ状態の参照のみ許可したりといったロールベースのアクセス制御が可能となっている。

ここまでの説明で、HAクラスタのハードウェアとソフトウェアの構成について大まかにつかんでいただいただろう。つづく特集2では、HAクラスタの心臓部であるフェイルオーバーのメカニズムに迫ってみたい。

関連リンク

 
Serviceguard製品シリーズ
 

トップへ 戻る    

記事の内容に関するご意見・ご質問・お問い合わせ

  日本ITフォーラムにて承っております(別途、会員登録が必要です)。

日本ITフォーラム
 

その他のコラム(特集)もお読み下さい

 
 

本ページの内容は執筆時の情報に基づいており、異なる場合があります。
印刷用画面へ
プライバシー ご利用条件・免責事項