Jump to content 日本-日本語

製品  >  ソフトウェア  >  HP-UX   >  Knowledge-on-Demand  >  HAクラスターの教科書

HAクラスターの教科書
〜簡単!ライバルに差をつけるHP Serviceguard構築〜

第5日目:パッケージを構成する

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
第5日目:パッケージを構成する
前回までの作業で、HAクラスターを構成するハードウェアとネットワーク、共有ディスクの設定が終わり、そしてクラスター設定ファイルの記述も完了しました。HAクラスター構築の作業も大詰めとなる今回は、「パッケージ」という概念について理解し、その設定を進めます。
パッケージとは、Serviceguard環境内で実行されるアプリケーションのその実行に必要なすべてのリソースをまとめたものです。ここで、パッケージのリソースの例として、ボリュームグループ、論理ボリューム、マウントポイント、リローケータブルIPアドレス、サービスプロセスなどがあります。
HAクラスターの教科書応用編〜簡単!ライバルに差をつけるHP Serviceguard構築〜 5日目
パッケージを構成する
パッケージ・コントロール・スクリプトの作成
2008年12月
日本ヒューレット・パッカード株式会社
HAクラスターの教科書:登場人物紹介 このリンクをクリックすると、新しいウィンドウが開きます
石ノ上君:
先生、これまでの作業で、HP Serviceguardのクラスターが構成されたことになりますね。次のステップは何でしょうか?
石ノ上君
ボブ先生
ボブ先生:
ボブ先生:うん、HAクラスターができあがったところで、その上で実際にアプリケーションがフェイルオーバーできるように設定を進めよう。つまりは「パッケージの構成」だね。

今日の時間割 パッケージを構成する パッケージ・コントロール・スクリプトの作成 練習問題

1時間目:パッケージを構成する

HP Serviceguardにおいて、パッケージとはアプリケーションの実行に必要な全てのリソースをまとめたものです。パッケージの実行に必要とされる情報は、パッケージ構成ファイルとパッケージ制御スクリプトに記載されます。具体的には、パッケージ構成ファイルを作成し、そこで対象のアプリケーションの起動方法や終了方法を指定します。

では以下に、パッケージ構成ファイルを実際に作成する例を紹介します。本連載ではフェイルオーバーの対象となるアプリケーションとしてCIFSサーバ(Sambaサーバ)を想定していますので、ここでは「cifs-pkg」という名称のパッケージを作成します。なお、HP Serviceguardのパッケージ作成では、従来から広く利用されてきた「レガシー・パッケージ」を作成する方法と、新たにサポートされた「モジュラー・パッケージ」を作成する方法の2通りがあります。ここでは、前者のレガシー・パッケージによる手順を説明します。

まずは、/etc/cmcluster配下にcifsと言う名前のディレクトリを作成します。このディレクトリのパーミッションには755を設定します。


# mkdir /etc/cmcluster/cifs
# chmod 755 /etc/cmcluster/cifs

つづいて、cmmakepkgコマンドを実行し、パッケージ構成ファイルのテンプレート(ひな形)を作成します。

# cmmakepkg -p /etc/cmcluster/cifs/cifs-pkg.conf
The package template has been created.
This file must be edited before it can be used.

この作業により、「cifs-pkg.conf」という名称でパッケージ構成ファイルが作成されました。次に、同ファイルの以下部分を編集します。

PACKAGE_NAME    cifs-pkg

NODE_NAME serverA
NODE_NAME serverB

RUN_SCRIPT /etc/cmcluster/cifs/cifs-pkg.sh
HALT_SCRIPT /etc/cmcluster/cifs/cifs-pkg.sh

SERVICE_NAME cifs

ここでPACKAGE_NAME属性には、このパッケージの名称「cifs-pkg」を設定しています。またNODE_NAME属性を2行続けて記述することで、パッケージを稼働させるプライマリ・ノード(serverA)とセカンダリ・ノード(serverB)をそれぞれ指定します。

RUN_SCRIPT属性とHALT_SCRIPT属性は、アプリケーションの起動時と停止時に呼び出される「パッケージ・コントロール・スクリプト」として、/etc/cmcluster/cifs/cifs-pkg.shを指定します。このパッケージ・コントロール・スクリプトについては後述します。

最後のSERVICE_NAME属性は、各サービスの固有の名前を指定します。各サービスに一つのSERVICE_NAMEエントリを定義します。1つのパッケージにつき最大30個のサービス、1つのクラスターにつき最大900個のサービスを構成できます。

石ノ上君:
先生、パッケージ構成ファイルのひな形にはたくさんの設定が並んでいるのですが、実際に編集する部分はこれだけでよいのですか?なんだか割と簡単ですね!
石ノ上君
ボブ先生
ボブ先生:
そうだね、パッケージ構成ファイルの標準設定のままでよければ、あまり変更する必要はないよ。Oracle RACのように複数のノードを同時に稼働させたい場合とか、各種のタイムアウト値を微調整したいような場合に、必要に応じて変更すればいいんだ。

パッケージのリカバリ手順を理解する

続いては、パッケージ構成ファイルで指定したパッケージ・コントロール・スクリプトを作成します。その説明に入る前に、HP Serviceguardにおける「パッケージのリカバリ」の手順について理解しておきましょう。

HP Serviceguardのフェイルオーバーの最終段階では、以下の手順でパッケージのリカバリが実行されます。
  1. スタンバイ・ノードの決定
  2. IPアドレスの引き継ぎ
  3. ディスク・ボリュームの引き継ぎ
  4. アプリケーションの起動
まずは、パッケージ構成ファイルの設定に基づき、フェイルオーバー先となるスタンバイ・ノードとして適切なノードが選択されます。

つぎに、プライマリ・ノードで障害直前まで用いられていたIPアドレスをスタンバイ・ノードに移行します。HP Serviceguardでは、個々のノードに対して「ステーショナリ(固定)IP」と「リロケータブル(移動可能)IP」という2種類のIPアドレスを割り当てています。ハートビートなどの送受信には前者を用い、パッケージ内のアプリケーションへのアクセスには後者を用います。

パッケージとリロケータブルIP
図1:パッケージとリロケータブルIP

フェイルオーバー時、HP Serviceguardは、このリロケータブルIPをプライマリからスタンバイに移動します(図1を参照のこと)。具体的には、ARP(Address Resolution Protocol)のブロードキャストを配信し、LAN上のすべてのデバイスに対して同IPがスタンバイ・ノードに移行したことを告知します。これにより、障害直前までアプリケーションに接続していたクライアントが同じIPアドレスを継続して利用できる仕組みです(ただしTCPコネクションは再接続が必要です)。

またIPアドレスの移行と同時に、共有ディスク上のボリュームの移行も行われます。HP Serviceguardでは、ボリューム・マネージャとしてHP-UXの LVM(Logical Volume Manager)およびVERITASのVxVM(Veritas Volume Manager)をサポートしています。よってフェイルオーバー時には、これらのマネージャが管理するボリュームをスタンバイ・ノードにマウントし、プライマリからのデータの引き継ぎを行います。


連載記事一覧 1  |  2 次のページへ

本ページの内容は執筆時の情報に基づいており、異なる場合があります。

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項