Red Hat Cluster は下記の構成モジュールが連携して動作する。
各モジュールの役割を理解しておかないとクラスタの全体像が見えてこない。
それぞれの役割をまとめ、また本クラスタの標準的な操作手順を記載しておく。
◆ Resource Group Manager(RGManager)
クラスタで稼働するサービスを管理する
・clurgmgrd プロセス
リソースグループ(クラスタサービス)マネージャデーモン
◆ Cluster Manager(CMan)
クラスタのコアコンポーネント
・groupd プロセス
openais/cman と dlm_controld/gfs_controld/fenced の間にインターフェイスを与える為に、
cman init スクリプトで開始されるデーモン
このプロセスが停止すると、障害の検知ができなくなり、fencedが動作しなくなる
・dlm_controld プロセス
カーネル内の dlm を管理するための cman init スクリプトで開始されるデーモン
・gfs_controld プロセス
カーネル内の gfs を管理するための cman init スクリプトで開始されるデーモン
dlm か gfsどちらかを選択するのが普通だろう
両者利用する必要はない
◆ Cluster Configuration System(CCS)
クラスタの構成情報を管理する
・ccsd プロセス
全てのクラスタノードで稼働し、クラスタソフトウェアに設定ファイルデータを提供するデーモン
◆ Quorum
クラスタがスプリットブレインになるのを防ぐため、処理の整合性をとる
・qdiskd プロセス
クラスタ Quorum ディスクデーモン。
◆ Fence
フェールオーバ処理の後に、障害発生サーバを物理的に停止させる
・fenced プロセス
I/O フェンシング デーモン
・fence_apc プロセス
APC パワースイッチ用の フェンス エージェント
例えば、障害発生時の動作としては、
正常サーバの fenced プロセスが障害サーバの fence_apc プロセスにサーバ停止処理を促す
HPのサーバを使っている場合は、下のプロセスを起動させることもあるだろう
・fence_ilo プロセス
HP Integrated Lights Out カード用の I/O フェンシング エージェント
【クラスタ操作オペレーション】
クラスタが稼動するための条件として、
先に述べたモジュールが起動していることが必要である
一般的に、サービスリソースを管理する起動スクリプトと、
それ以外のクラスタ機能のモジュール用スクリプトを分けるのが普通だろうか
/etc/init.d/cman
CMan、CCS、Quram、Fence コンポーネント用
/etc/init.d/rgmanager
RGManager コンポーネント用
◆ クラスタの状態確認
# clustat
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
node1 1 Online, rgmanager
node2 2 Online, Local, rgmanager
/dev/quorum 0 Online, Quorum Disk
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:SERVICE1 node1 started
service:SERVICE2 node2 started
◆ クラスタの起動
# /etc/init.d/cman start
# /etc/init.d/rgmanager start
◆ クラスタの停止
# /etc/init.d/rgmanager stop
# /etc/init.d/cman stop
◆ サービスリソースの起動
# clusvcadm -e サービス名 -m メンバ(ノード)名
-e : enable
-m : member
◆ サービスリソースの停止
# clusvcadm -d サービス名 -m メンバ(ノード)名
-d : disable
-m : member
◆ 手動フェールオーバ
# clusvcadm -r サービス名 -m メンバ(ノード)名
-r : relocate
-m オプションをつけなければ、2台構成であれば対向ノードへ移る
◆ QuorumDiskをどちらが握っているか確認するコマンド
# mkqdisk -d -L
-d : debug
-L : List