Pacemakerでかんたんクラスタリング体験してみよう!

第2回 Pacemakerをインストールしてみよう![構築基本編]

この記事を読むのに必要な時間:およそ 9 分

クラスタ制御機能(Heartbeat)の設定

設定は,すべてのサーバで同一にします。最初にpm01を設定し,それをpm02に反映します。

ha.cf

Heartbeatの設定は, /etc/ha.d/ha.cfで行います。次のコマンドで設定ファイルを作成します。

# cat > /etc/ha.d/ha.cf <<EOF
pacemaker on

debug 0
udpport 694
keepalive 2
warntime 7
deadtime 10
initdead 10
logfacility local1

bcast eth1
bcast eth2

node pm01
node pm02

watchdog /dev/watchdog
respawn root /usr/lib64/heartbeat/ifcheckd
EOF

主な設定項目の簡単な意味は次の通りです。

  • pacemaker:リソース制御にPacemakerを使用するかどうか
  • udpport:インターコネクト通信で使用するudpポート
  • keepalive:インターコネクト通信の送信間隔(秒)
  • deadtime:インターコネクト通信途絶後に故障と判断するまでの時間(秒)
  • initdead:初期起動時に他のサーバの起動を待つ時間(秒)
  • logfacility:syslog経由でログを出力するときのファシリティ指定
  • bcast:インターコネクト通信(ブロードキャスト)に使用するデバイスの指定
  • node:クラスタに参加するサーバ名を指定
  • respawn:起動するサブプロセスの指定

respawnで指定しているifcheckdはpm_extrasに含まれるLinux-HA Japanオリジナルパッケージで,インターコネクト通信が正常かどうかを見えるようにします。

authkeys

次に,/etc/ha.d/authkeysを作成します。これは,インターコネクト通信の認証のために使用します。

# cat > /etc/ha.d/authkeys <<EOF
auth 1
1 sha1 secret
EOF

このファイルはrootのみにread権限を与えてください。

# chmod 0600 /etc/ha.d/authkeys

syslog.conf

次に,syslogdの設定を変更します。これは必須ではありませんが,Pacemakerのログは多めなので,ログファイルを分けたほうが望ましいです。/etc/syslog.confをエディタで開き,下記の箇所を変更します。

変更前

*.info;mail.none;authpriv.none;cron.none            /var/log/messages

変更後

*.info;mail.none;authpriv.none;cron.none;local1.none            /var/log/messages

また,ファイルの最後に下記を追加します。

local1.info                                             /var/log/ha-log

以上の変更後/etc/syslog.confを保存します。変更を反映するために,syslogdを再起動します。

# /etc/init.d/syslog restart

pm02への設定反映

以上の作業を,pm02に反映します。

# scp /etc/ha.d/{ha.cf,authkeys} pm02:/etc/ha.d
# ssh pm02 chmod 0600 /etc/ha.d/authkeys
# scp /etc/syslog.conf pm02:/etc
# ssh pm02 /etc/init.d/syslog restart

Pacemakerの起動

では,Pacemakerを起動してみましょう。

# /etc/init.d/heartbeat start
# ssh pm02 /etc/init.d/heartbeat start

クラスタの状態を確認するには,crm_monコマンドを使用します。

# crm_mon -A

初めて起動した場合には,次のように表示されていると思います。

============
Last updated: Fri Mar 18 22:37:14 2011
Current DC: NONE
0 Nodes configured, unknown expected votes
0 Resources configured.
============

Node Attributes:

しばらく待つと,次のような表示に変わります。 Onlineにサーバ名が表示されればOKです。

============
Last updated: Fri Mar 18 22:31:07 2011
Stack: Heartbeat
Current DC: pm01 (755595f2-7905-4ba3-909e-68c4e74067bf) - partition with quorum
Version: 1.0.10-da7075976b5ff0bee71074385f8fd02f296ec8a3
2 Nodes configured, unknown expected votes
0 Resources configured.
============

Online: [ pm02 pm01 ]

Node Attributes:
* Node pm02:
    + pm01-eth1                         : up
    + pm01-eth2                         : up
* Node pm01:
    + pm02-eth1                         : up
    + pm02-eth2                         : up

Node Attributes: の下に pm01-eth1 : up と表示されています。これは,サーバpm01 のインターコネクト通信用デバイスeth1が正常であるということを表しています。 これが見えるのは, ha.cfで設定した ifcheckd の機能です。

crm_monを終了するには,CTRL-Cを押してください。

Pacemakerの停止

Pacemakerの停止方法は次の通りです。

# /etc/init.d/heartbeat stop
# ssh pm02 /etc/init.d/heartbeat stop

著者プロフィール

三井一能(みいかずよし)

NTTオープンソースソフトウェアセンタ所属。Linux-HA Japanプロジェクトには2年前から参加。

インフラエンジニアたるもの自宅サーバのメンテにも余念がない。だが,口ぐせからか,妻は私の趣味がアップデートとインストールと思い込んでいる。