コマンドラインからの操作
LifeKeeperの特徴として、GUIにより一通りの構築・運用のための手順が提供されているという点があげられるが、運用環境による制約などから特定の操作をコマンドラインから実行するという要望も多い。
今回はLifeKeeperを使用したHAシステムの運用時・障害時に利用可能なコマンドラインからの操作について、使用頻度が高いコマンドを例にとって説明する。想定するクラスタ構成は表1の通りである。
| ホスト名 | lk1 | lk2 |
| eth0 | 192.168.1.1/24 | 192.168.1.2/24 |
| eth1 | 192.168.2.1/24 | 192.168.2.2 |
| HAクラスタ化対象 | app-ThinkIT(注1:Generic ARKとして作成) ip-192.168.1.101(VIPリソース) |
|
| コミュニケーションパス1 | 192.168.2.1/192.168.2.2(プライマリ) | |
| コミュニケーションパス2 | 192.168.1.1/192.168.1.2 | |
紹介するコマンドはそれぞれ、/opt/LifeKeeper/bin以下に格納されている。そのため、今回は.bash_profile内に以下の定義が記載されているものとする。
export PATH=/opt/LifeKeeper/bin:$PATH それでは、早速使用頻度の高いコマンドから紹介していく。
ステータスの確認:lcdstatus
コマンドラインからHAシステムのステータス情報を得るlcdstatusコマンドは、最も使用頻度の高いコマンドといってよい。例えば、リモート からの実行時などは環境上の制約があり、GUIからの確認が行えない場合やより詳細な情報を得たい場合などに本コマンドを使用する。基本的な書式としては 以下のようになる。
lcdstatus [-d 対象のサーバ名>] [ オプション ] 「-d 対象サーバ名>」を省いた場合にはローカルのサーバ上のステータスを表示することになる。本連載では、最も基本的な使用方法の説明のみとなるため、詳細は「man lcdstatus」で確認していただきたい。
まずは、最も冗長な出力を得ることができるようにオプションを使用せずにlcdstatusコマンドを実行してみる。
# lcdstatus
Resource hierarchies for machine "lk1":
ROOT of RESOURCE HIERARCHY
app-ThinkIT: id=app-RSS app=gen type=app state=ISP
initialize=(AUTORES_ISP) automatic restore to IN-SERVICE by LifeKeeper
reason=restore action has succeeded
depends on resources: ip-192.168.1.101
Local priority = 1
SHARED equivalency with "app-ThinkIT" on "lk2", priority = 10
FAILOVER ALLOWED
ip-192.168.1.101: id=IP-192.168.1.101 app=comm type=ip state=ISP
initialize=(AUTORES_ISP) automatic restore to IN-SERVICE by LifeKeeper
info=lk1 eth2 192.168.1.101 ffffff00 eth3
reason=restore action has succeeded
these resources are dependent: app-ThikIT
Local priority = 1
SHARED equivalency with "ip-192.168.1.101" on "lk2", priority = 10
FAILOVER ALLOWED
The following LifeKeeper machines are known:
machine=lk1state=ALIVE
machine=lk2state=ALIVE
The following LifeKeeper network connections exist:
to machine=lk2 type=TCP addresses=192.168.2.1/192.168.2.2
state="ALIVE" priority=1 #comm_downs=0
to machine=lk2 type=TCP addresses=192.168.1.1/192.168.1.2
state="ALIVE" priority=2 #comm_downs=0
The shutdown strategy is set to: do_not_switchover. LifeKeeperのリソースのステータスを含めた詳細な情報や、コミュニケーションパスのステータスを含めてクラスタ全体の設定に関する情報が表示される。ここでは、各出力についての詳解は割愛する。
lcdstatusコマンドをオプションなしで実行すると、リソースが内部に保持する情報まで出力されるため、障害時などに詳細な情報を得たい場合には有用だがリソースの依存関係や状態などについての視認性には欠ける。
より簡潔にリソースの依存関係と状態を確認する場合には、以下のように-eオプションを用いる。
# lcdstatus -e |
|||||
BACKUP |
TAG |
ID |
STATE |
PRIO |
PRIMARY |
lk2 |
app-ThinkIT |
app-ThinkIT |
ISP |
1 |
lk1 |
lk2 |
ip-192.168.1.101 |
IP-192.168.1.101 |
ISP |
1 |
lk1 |
// ↑↑リソースに関する情報を表示する |
|||||
// ↓↓コミュニケーションパスに関する情報を表示する |
|||||
MACHINE |
NETWORK |
ADDRESSES/DEVICE |
STATE |
PRIO |
|
lk2 |
TCP |
192.168.2.1/192.168.2.2 |
ALIVE |
1 |
|
lk2 |
TCP |
192.168.1.1/192.168.1.2 |
ALIVE |
2 |
|
-eオプションをつけることで、状況の確認に必要な最小限の情報を整形して出力する。
出力例の上段がリソースのステータスを、下段がコミュニケーションパスの情報を示している。リソースのステータス表示部分では、字下げを使用してリソースの依存関係も確認することができる。
出力例では「app-ThinkIT」の子リソースとしてIPリソース(ip-192.168.1.101)が定義されていることがわかる。さら に、リソースのステータス(STATE)欄がISP(In-Service Protected)となっていることからリソースが正常に起動していることがわかる。リソースのステータスとしての出力には他に表2のような例がある。
| ISU (In Service Unprotected) |
リソースは起動しているが、バックアップサーバが停止しているなどの理由で障害時の切り替え先がない状態にある |
| OSF (Out of Service Failed) |
リソースは、直前の起動処理に失敗したなどの理由で停止している |
| OSU (Out of Service Unimpaired) |
リソースは、手動で停止処理を行ったなどの理由により正常に停止している |
| ILLSTATE (resource in illegal state) |
初期化中であるなど、まだリソースの状態を取得できていない。起動直後などに一時的に見られる状態である |
またコミュニケーションの情報表示部分では、コミュニケーションパス一覧とともに状態(ALIVEもしくはDEAD)が表示される。
GUIのように両系の状態を即座に確認できるというわけではないが、これらのコマンドを用いることによりGUIの環境がなくても状態を確認することができる。以上がlcdstatusコマンドの基本的な使用方法となる。