TOP比較データ> ネットワーク障害時におけるクラスタロック




徹底比較!!クラスタソフトウェア
徹底比較!!クラスタソフトウェア

第6回:Serviceguard for Linuxで実現するHAクラスタ

著者:日本ヒューレット・パッカード  古賀 政純   2005/12/19
前のページ  1  2  3   4  次のページ
ネットワーク障害時におけるクラスタロック

   クラスタのネットワークに障害が発生してクラスタノード同士が通信できなくなると、SGLXは正常な通信ができるクラスタノード同士(サブクラスタ)で、クラスタの再編成を試みます。

   SGLXでは、これから再編成されようとしているクラスタノード数が、障害前に構成していた正常なクラスタノード数の過半数以上を超えた場合、その過半数を超えたノードでクラスタが再編成されます。過半数を満たさないサブクラスタのノードは停止します。

   しかし2ノードクラスタの場合は過半数を満たすノードがないので、どちらのクラスタノードをクラスタシステムとして残すかを決める仕組みが必要になります。この仕組みはSGLXにおいてクラスタロックという概念で実装されています。SGLXにおけるクラスタロックの方式としては以下の2種類を選択できます。

  • ロックLUN方式
  • クォーラムサーバ方式

表3:クラスタロックの方式

   クラスタロックLUN方式は、クラスタの状態を保存しておくクラスタロックLUN領域を共有ストレージの一部に持ちます。クラスタノードはクラスタの状態をロックLUN領域に定期的にアクセスすることで確認します。クラスタに障害が発生した場合、クラスタノードはロックLUN領域にマーキングを行います。マーキングが成功したノードはクラスタの再編成を行い、マーキングができなかったノードはクラスタとして構成されず停止します。


ロックLUN方式

   ロックLUN方式では、共有ストレージにロックLUN専用の領域としてフォーマットします。ロックLUN領域はfdiskコマンドでパーティションを作成し、Linux領域(idは83)として確保します。SGLXはロックLUN領域の状態を定期的にチェックしており、ロックLUN領域に障害が発生した場合はクラスタノードの/var/log/messagesファイルにメッセージが記録されるようになっています。

ロックLUN方式のSGLXシステム構成
図5:ロックLUN方式のSGLXシステム構成
(画像をクリックすると別ウィンドウに拡大図を表示します)


クォーラムサーバ方式

   一方クォーラムサーバ方式は、クラスタノード以外に別途クォーラムサーバと呼ばれるクラスタの調停役のサーバを1台配置します。障害発生時に、クラスタノードはクォーラムサーバにアクセスし、クォーラムサーバのメモリにマーキングを行います。クォーラムサーバのマーキングに成功したノードはクラスタの再編成を行います。

   クォーラムサーバはServiceguard Quorum Serverとして無償で提供されています。Serviceguard Quorum ServerはRPMパッケージで提供されており、rpmコマンドで容易にインストールできます。クォーラムサーバ方式のSGLXのシステム構成を図6に示します。

クォーラムサーバ方式のSGLXシステム構成
図6:クォーラムサーバ方式のSGLXシステム構成
(画像をクリックすると別ウィンドウに拡大図を表示します)


クラスタLVMとパッケージ

   SGLXにおける共有ストレージは、全クラスタノードから物理的に接続されている必要がありますが、共有ストレージ内でHAクラスタ化されている1つのリソースにアクセスできるのは1ノードのみです。複数のクラスタノードが共有ストレージ上で構成されている1つのリソースに同時にアクセスすることはできません。

   もし複数のクラスタノードが共有ストレージ上の1つのリソースへ同時にアクセスすると、共有ストレージ上のデータは破壊されてしまいます。

   しかし複数のクラスタノードから、共有ストレージ上に存在する別々のサービスにアクセスすることは可能です。この機能を実現するためには共有ストレージ上にLVM領域を作成する必要があります。

   SGLXでは共有ストレージ上に、HAクラスタ化したいリソースごとにLVMボリュームグループを作成します。SGLXで管理されるリソースは、共有ストレージ上に作成したLVMのボリュームグループに1対1で対応します。

   例えば、高可用性を持ったApache WebサーバとMySQLサーバを1つのクラスタシステムで実現するためには、Apache用のLVMボリュームグループとMySQL用のLVMボリュームグループを作成します。

   これにより、ApacheとMySQLのデータを単一の物理ストレージ上に持ち、別々のクラスタノードから同時に各アプリケーションを利用することが可能となります。

ApacheとMySQLのリソースをLVMボリュームグループ上に配置
図7:ApacheとMySQLのリソースをLVMボリュームグループ上に配置
(画像をクリックすると別ウィンドウに拡大図を表示します)

   またノードに障害が発生した場合、そのノード上で実行されていたアプリケーションやデータが保存されているボリュームグループは、障害ノードで非アクティブ化され、待機している正常なクラスタノードでアクティブになります。


パッケージ

   可用性をもったアプリケーション、リソース(仮想IPアドレス、ディスク領域、ファイルシステム、プロセスなど)、フェイルオーバー先のノード名などをひとまとめにしたものをSGLXではパッケージと呼びます。SGLXでHAクラスタ化されるアプリケーションは、パッケージとして取り扱います。パッケージの実行に必要なものとして表4の2つのファイルがあります。

  • パッケージ構成ファイル
  • パッケージ制御スクリプト

表4:パッケージの実行に必要なファイル

   パッケージ構成ファイルには、パッケージ名、サービス名、フェイルオーバーポリシー、所属するLANのサブネットマスクなどを記述します。

   一方パッケージ制御スクリプトには、そのアプリケーションが利用するLVMボリュームグループ、ファイルシステムの種類、マウントポイント、仮想IPアドレス、カスタムスクリプトなどを記述します。

前のページ  1  2  3   4  次のページ


日本ヒューレット・パッカード株式会社 古賀 政純
著者プロフィール
日本ヒューレット・パッカード株式会社
古賀 政純

2000年よりUNIXベースのHAクラスタシステム及び、科学技術計算システムのプリセールスに従事。並列計算プログラミング講習会などを実施。その後、大手製造業及び官公庁系の大規模Linuxクラスタの導入、システムインテグレーションを経験。現在は、大規模エンタープライズ環境向けのLinuxブレードサーバ及びHP Serviceguard for Linux(HAクラスタソフトウェア)のプリセールスサポート、システム検証を担当している。毎日、Linuxサーバと寝食を共に(?)しています。


INDEX
第6回:Serviceguard for Linuxで実現するHAクラスタ
  Serviceguard for Linuxの特徴
  SGLXの共有ストレージ接続構成とストレージパスのフェイルオーバー
ネットワーク障害時におけるクラスタロック
  パッケージ制御スクリプト