徹底比較!!クラスタソフトウェア
LifeKeeperのアーキテクチャ
LifeKeeperのアーキテクチャ
では、LifeKeeperの機能を支える技術の詳細についてご紹介しよう。クラスタの基本機能はサーバの障害発生時にサービスをほかのノードに切 り替えることである。従ってノードの監視機能、サービスの監視機能、サーバ切り替えに伴うサービスの切り替え機能がメインとなる。
そして、HAクラスタで忘れてはならない重要な機能として、スプリットブレイン時の共有ディスク領域のアクセス制御機能がある。
図1はLifeKeeperのアーキテクチャを表している。

図1:LifeKeeperのアーキテクチャ
LifeKeeperを構成する要素には大きく分けて次の機能がある。
- Core
- LifeKeeperの中核機能
- ARK(Application Recovery Kit)
- サービスの起動・停止・監視・リカバリを行う機能
表1:LifeKeeperを構成する要素
そしてCore機能は次の2つから構成される。
- LCD(LifeKeeper Configuration Database)
- LifeKeeperの構成情報・状態などを格納するデータベース
- LCM(LifeKeeper Communication Manager)
- ノード間の情報同期やハートビートデータの交換を行う機能
表2:Core機能
CoreとARKとの間のインターフェースは、次の3つがある。
- LAI(LifeKeeper Alarm Interface)
- ARKが検知した障害などのイベントを通知する機能
- LCDI(LCD Interface)
- 構成情報の更新やステータス変更をLCDに格納、または情報を取り出してARKに伝える機能
- LRACI(LifeKeeper Recovery Action and Control Interface)
- LAIにより通知されたイベントに適合するリカバリスクリプトを特定し実行する機能
表3:CoreとARKとの間のインターフェース
Core機能のLCD
図2はLCDを構成するディレクトリツリーである。

図2:LCD構成
LCDは共有メモリ上に構成され、そのバックアップはLifeKeeperのインストールディレクトリ上にファイルとして保持する。LifeKeeperがGUIから動的に構成を定義・変更できるのは、このLCDで実現されている階層構造の存在があるからだ。
ARKの実体もこのディレクトリツリーに組み込まれており、GUIからの操作によってクラスタ構成を定義するとインスタンスと呼ばれる定義が追加さ れていくことになる。あらかじめすべての構造が決まっており、各階層のもつ役割も決まっているため、LifeKeeperとしては、GUIから操作された 追加・変更分だけを反映させていくことになる。
LCDは共有メモリ上とファイルの両方に存在し即時に反映されるため、ほかのクラスタ製品のように定義体を読み込み直すために再起動するという操作が不要である。