Table of contents
HeartBeatとは?
HeartBeat=心臓の鼓動。このツールは、2台のPC間で、パケットを定期的に通信し合い、お互いが動作しているかどうかを確認しあいます。片方が、片方からのパケットが届かないことを検知したら、相手が死んだと判断して、自分自身をアクティブにします。アクティブにして、何をするか?は設定しだいということです。
設定ファイルの雛形をコピー
/usr/share/doc/heartbeat-1.2.3から、ha.cf,haresources,authkeysをコピーしてきます
# cp /usr/share/doc/heartbeat-1.2.3/ha.cf /etc/ha.d # cp /usr/share/doc/heartbeat-1.2.3/haresources /etc/ha.d # cp /usr/share/doc/heartbeat-1.2.3/authkeys /etc/ha.d
authkeysを設定
authkeysのフォーマットは以下のようになっています
auth 1 1 crc #2 sha1 HI! #3 md5 Hello!
デフォルトだとこんな感じ。まず、1行目のauthを1、2、3のいずれかにします。これで、heartbeatパケットの認証方式を選択します。SHA1やMD5の方がいいだろうと思うのですが、何故かうまく行きませんでした…1番のCRCを選択しています。そして、ファイルのパーミッションを変更してやります。
# chmod 600 authkeys
ha.cfの設定
重要なのは以下の点。
- keepalive
- heartbeatの感覚
- deadtime
- どれぐらいで死んだと判断するか
- initdead
- 起動時にどれぐらいで相手が死んだと判断するか
- HeartBeatで通信するポート
- serial,bcast,mcast,ucastのいずれかです。serialはシリアルポート、bcastは特定ポートにブロードキャスト、mcastはマルチキャスト、ucastはユニキャストです。serialは、専用の通信線でピア2ピアで通信するため、信頼性は最も高い。その他はEtherでもOK。お手軽ですが信頼性は若干下がる。
- auto_failback
- 後で述べる、haresourcesとの設定に関わる。これを設定しておくと、マスタサーバが障害から復旧時に、自動的にマスタサーバに優先権を戻してくれる
- node
- クラスタに参加する全てのノードを記述しておく。うちでは2台なので、2台登録しておく。uname -nを打って出てきた名前を書いておくです。SRV1,SRV2を書いておきましょう
この辺を記述しておけばとりあえずOK これを双方のサーバSRV1,SRV2に置いておきます。
haresources
haresourcesは、自分がアクティブになったときに何をするか、を以下のフォーマットで記述していきます。
マスタノード名 アドレス コマンド::オプション コマンド::オプション コマンド::オプション....
- マスタノード名は、優先するノード。先のauto_failbackが設定されている場合は、こちらのサーバが復帰すると、マスタノード側がアクティブに戻るように動いてくれます。
- アドレスは、双方で引き継ぎあうアドレスです。アクティブになると、このアドレスを自分のノードにつけるように動作します。
- コマンド::オプションは、/etc/ha.d/resource.d(こちらが優先)もしくは、/etc/init.d/の下にあるコマンドを呼び出します。オプションがついていると、アクティブになるときには
スタンバイになるときには
コマンド オプション start
というコマンドを自動実行します。コマンド オプション stop
Page Info | |
---|---|
Page Name : | Gentoo Linuxな生活/HeartBeat |
Page aliases : | None |
Page owner : | maruo |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | No one |
Counter: 5149,
today: 2,
yesterday: 0
Princeps date: 2009-08-19 (Wed) 00:53:44
Last-modified: 2009-08-19 (Wed) 00:53:44 (JST) (5150d) by maruo