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

ネットワーク障害時におけるクラスタロック

ネットワーク障害時におけるクラスタロック

   クラスタのネットワークに障害が発生してクラスタノード同士が通信できなくなると、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アドレス、カスタムスクリプトなどを記述します。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る