Integrity VMはHP-UXのための仮想化技術であることから、ミッションクリティカル環境での利用がおのずと多くなるはずだ。そこで今回は、HP-UXでの可用性確保になくてはならないクラスターウェアであるHP ServiceguardとIntegrity VMの組み合わせについて説明する。ここで紹介する構成はいずれもHP社内で検証済みでありサポート対象のソリューションであるため、ぜひ実運用環境への導入も積極的に検討していただきたい。
連載 “まるごと仮想化”のここが「ツボ」 - 第6回 -
2009年11月
Integrity VMとHP Serviceguardを組み合わせるもうひとつの方法は、「ホストOS+Serviceguard」構成である。
図3:ホストOS内でServiceguardを使う
この場合は、ゲストOSのVMプロセスそのものをServiceguardのパッケージとして構成する。これにより、物理マシンの障害やゲストOSのVM障害を検出して、スタンバイ側のホストOSへVMのフェイルオーバーが可能だ。この構成のメリットは、個々のアプリケーションについて個別にパッケージを設定する必要がなく、Serviceguard未導入の既存のアプリケーションに対してもVMまるごとServiceguardクラスターを構成可能な点だ。
ただし、この「ホストOS+Serviceguard」構成にはこれまで弱点があった。それは、ゲストOSのVMが監視対象となるため、その内部で動作する個々のアプリケーションの障害を検知できないという点である。そこで、最新バージョンであるServiceguard 11.19では、Integrity VM 4.1との組み合わせ時にゲストOS内アプリケーションの監視が可能になった。
図4:ゲストOS内アプリの監視メカニズム
この機能では、「Application Server」と呼ばれる監視プロセスがゲストOS内で1つ動作し、個々のアプリケーションを監視する。一方、ホストOS上では、個々のアプリケーションに対応する「Application Manager」と呼ばれる複数のプロセスが稼働し、Application ServerとのSSL接続を通じて各アプリケーションの状況を監視する。これらのApplication ManagerがゲストOSパッケージのサービスとして動作することで、万が一ゲストOS内のアプリケーションがダウンした場合は、ホストOS側のServiceguardのフェイルオーバーが起動するという仕組みである。この監視機能はHP-UX、Linux、WindowsいずれのゲストOSにも対応可能だ。
ちなみに、Serviceguard利用者の多くが用いているECMT(Enterprise Cluster Master Toolkit)も今回このゲストOS監視機能に対応し、ECMTによって構成されたApache WebサーバーおよびOracleデータベースのパッケージ監視が可能になっている。くわしくは、HPのホワイトペーパー を参照していただきたい。
オンラインマイグレーション+フェイルオーバーを実現
Serviceguard 11.19では、もうひとつ新機能として、「Integrity VMによるオンラインマイグレーション」と「Serviceguardによるフェイルオーバー」間の連係機能が追加された。具体的には、「hpvmsg_move」と呼ばれるスクリプトが用意され、これを実行することでServiceguardのパッケージとして構成されたゲストOSに対して以下の一連の処理を実行できる。
ゲストOSのVMパッケージのフェイルオーバーを停止
オンラインマイグレーションを実行
VMパッケージのフェイルオーバーを有効化
図5:Serviceguardとオンラインマイグレーションの連携
前回説明したとおり、オンラインマイグレーションを用いることで、ゲストOS上で稼働中のサービスを止めずに別の物理マシンへの移行が可能となる。よって、メンテナンスや負荷分散のためのゲストOS移動などにオンラインマイグレーションを有効活用できる。
一方、今回の新機能を用いることで、Serviceguardによるフェイルオーバーも同じ構成で利用可能となる。よって、突発的なハードウェアやソフトウェア障害に対する保護をはじめ、オンラインマイグレーションを実行できないケースでの計画的なゲストOS移動が可能だ。結果として、「オンラインマイグレーションによる計画停止の排除」と、「Serviceguardによる計画外停止の最小化」の両方のメリットが得られるのである。
Serviceguard 11.19の3つめの新機能は、フェイルオーバー時に「リソース的に余裕のあるノード」を選んで移行する機能である。具体的には、新規追加されたパラメータ「CAPACITY_NAME」および「CAPACITY_VALUE」をパッケージ内で設定することで、例えば「個々の物理マシンごとに許容可能なVM数」を定義しておき、VM数に空きのある物理マシンを選んで移行するといった動作が可能になる。
図6:CAPACITY_NAME / CAPACITY_VALUEを用いたフェイルオーバーの制御
この「CAPACITY_NAME / CAPACITY_VALUE」パラメータで扱えるのはVM数に限らず、例えばメモリ容量やディスク容量など任意のリソースを表現でき、個々の物理サーバーが有するさまざまなリソース状況に応じてゲストOSのフェイルオーバー先の決定をきめ細かにコントロール可能となっている。
以上、今回はIntegrity VMとServiceguardの組み合わせ方法について説明した。本連載は今回で最終回となる。今まで6回にわたりご愛読いただいたことに感謝の意を表したい。
ページ: ≪ 戻る | 1 2
その他の連載記事
本ページの内容は執筆時の情報に基づいており、異なる場合があります。
ご購入前のお問い合わせ
エンタープライズ向け製品の
ご購入前のご相談
03-5749-8328
09:00-19:00 (月曜−金曜)
10:00-17:00 (土曜)
※祝祭日と5月1日は除く
製品・キャンペーンに関するお問い合わせ
ご購入後のお問い合わせ
オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。
ショールーム
導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策 を実体験 して頂けます。