Last Updated on 2016年12月16日 by かんりにん
クラスタリング/heartbeat †
2台のホスト間でのクラスタリングを構成する。以下のような機能を提供する。
-
フェイルオーバ機能
2つのノードでアクティブ/スタンバイ構成とし、
フェイルオーバー、フェイルバック機能を提供。 -
共有リソースの切替
サーバー間で仮想IP、サービスの引継ぎを実行。 -
稼動監視、サービス監視(heartbeat-ldirectord)
IPでの監視のほか、シリアルIFでの監視も可能。 -
GUIコンソール
通常はコマンドラインから作業が必須だったが、
バージョン2.0.5より対応(検証中)。
参考サイト
お世話になっております!
- heartbeat
- Linux-HA.org
http://linux-ha.org/HeartbeatProgram
http://linux-ha.org/download/ - UltraMonkey
http://www.ultramonkey.org/
日本語ページ有り
- Linux-HA.org
- libnet
http://packetfactory.net/libnet/ - ダウンロードページ
- libnet
http://mirror.centos.org/centos/4/extras/SRPMS/ - heartbeat
http://linux-ha.org/download/
そのほか、CentOSのパッケージページから、SRPMをダウンロード。
- libnet
構成ファイルとバージョン
※依存関係でインストールする追加パッケージは割愛。
各作業ログを参照のこと。
・libnet
libnet-1.1.2.1-2.rf.i386.rpm libnet本体
・heartbeat
heartbeat-2.0.0-1.i386.rpm heartbeat本体
heartbeat-stonith-2.0.0-1.i386.rpm ユーティリティファイル
heartbeat-pils-2.0.0-1.i386.rpm ユーティリティファイル
heartbeat-ldirectord-2.0.0-1.i386.rpm 共有リソースの監視用パッケージ
作業ログ
1)ダウンロードとインストール †
libnet †
使用バージョンは1.1.2.1-2。
heartbeatのインストールに必要となるので、事前にビルド/インストール。
- ダウンロードとビルド
# cd /usr/src/redhat/SRPM/ # wget http://mirror.centos.org/centos/4/extras/SRPMS/libnet-1.1.2.1-2.rf.src.rpm # rpm -Uvh libnet-1.1.2.1-2.rf.src.rpm # cd ../SPECS/ # rpmbuild -bb libnet-1.1.2.1-rf.spec
- インストール
# rpm -ivh ../RPMS/i386/libnet-1.1.2.1-2.rf.i386.rpm
- ビルドしたパッケージの一覧
/usr/src/redhat/RPMS/i386/libnet-1.1.2.1-2.rf.i386.rpm /usr/src/redhat/RPMS/i386/libnet-debuginfo-1.1.2.1-2.rf.i386.rpm
heartbeat †
使用バージョンは2.0.0。ソースRPMからビルド/コンパイルする。
heartbeatのインストールには以下のパッケージが必要。
事前に確認し、不足分はインストールしておく。
glib-devel libgcrypt-devel
- ダウンロードとビルド
# cd /usr/src/redhat/SRPM/ # wget http://linux-ha.org/download/heartbeat-2.0.0-1.src.rpm # rpm -Uvh heartbeat-2.0.0-1.src.rpm # cd ../SPECS/ # rpmbuild -bb heartbeat.spec
- ビルドしたパッケージの一覧
/usr/src/redhat/RPMS/i386/heartbeat-2.0.0-1.i386.rpm /usr/src/redhat/RPMS/i386/heartbeat-ldirectord-2.0.0-1.i386.rpm /usr/src/redhat/RPMS/i386/heartbeat-stonith-2.0.0-1.i386.rpm /usr/src/redhat/RPMS/i386/heartbeat-pils-2.0.0-1.i386.rpm /usr/src/redhat/RPMS/i386/heartbeat-debuginfo-2.0.0-1.i386.rpm
- インストール
heartbeat-ldirectordとheartbeat-debuginfoを除くパッケージを
まずインストール。# rpm -ivh heartbeat-2.0.0-1.i386.rpm \ > heartbeat-stonith-2.0.0-1.i386.rpm \ > heartbeat-pils-2.0.0-1.i386.rpm Preparing... ########################################### [100%] 1:heartbeat-pils ########################################### [ 33%] 2:heartbeat-stonith ########################################### [ 67%] 3:heartbeat ########################################### [100%]
heartbeat-ldirectord †
- ダウンロードとビルド
パッケージはheartbeatのビルド時に同時に作成されるので割愛。 - 追加パッケージ
heartbeat-ldirectordはデフォルトでは依存関係によりperlモジュールが必要。
必要としない場合はheartbeatのリビルド時にspecファイルから不要モジュールの記述を削除しておく。
※1.下記のうちRHELのメディアに含まれるのはperl-Net-DNS-0.48-1.i386.rpmのみ。
そのほかはUltraMonkeyなどからダウンロードする。
※2.但しRH系で最新のものはFedora Core1用だったので、これを利用する。
可能な限りソースRPMを落としてきてコンパイル。- perl-Parse-RecDescent
http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/perl-Parse-RecDescent-1.80-1.rh.el.um.1.noarch.rpm - perl-Mail-IMAPClient
http://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-Mail-IMAPClient-2.2.7-1.fr.c.1.um.1.src.rpm - perl-Net-DNS
以下のパッケージも含む。perl-Digest-HMAC perl-Digest-SHA perl-Net-SSLeay
http://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-Net-SSLeay-1.23-1.fr.c.1.um.1.src.rpm
- perl-ldap
http://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-ldap-0.2701-1.fr.c.1.um.1.src.rpm - perl-Authen-SASL
http://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-Authen-SASL-2.03-1.fr.c.1.um.1.src.rpm - perl-IO-Socket-SSL
http://www.ultramonkey.org/download/2.0.1/fr.c.1/SRPMS/perl-Authen-SASL-2.03-1.fr.c.1.um.1.src.rpm - perl-libnet
http://www.hizlab.net/archive/rpms/perl-libnet/perl-libnet-1.19-1.noarch.rpm
インストール部分は割愛。
- perl-Parse-RecDescent
- heartbeat-ldirectordのインストール
各パッケージの依存関係が解消したところでldirectordをインストール。# rpm -ivh --test heartbeat-ldirectord-2.0.0-1.i386.rpm Preparing... ########################################### [100%] # rpm -ivh heartbeat-ldirectord-2.0.0-1.i386.rpm Preparing... ########################################### [100%] 1:heartbeat-ldirectord ########################################### [100%] #
2)構成の概要 †
インストール直後のファイル構成は以下のとおり。
- 設定ファイルディレクトリ
- /etc/ha.d/
但しインストール直後はコンフィグファイルが無いので
/usr/share/doc/heartbeat-2.0.0/からコピーして配置する。
- サービススクリプト
- heartbeatが用意するフェイルオーバー用起動スクリプトとして
デフォルトで/etc/ha.d/resource.d/以下に設置される。
これらは仮想IPの切替や共有ディスクのマウント、Raidなどの切替用に使用する。
heartbeatで共有リソースを指定するスクリプトは
/etc/ha.d/resource.d/のほか、/etc/init.d/も検索対象となる。
上記のディレクトリに置かれているスクリプトはそのままの名称で指定OK。
3)設定 †
heartbeat †
heartbeatを構成する設定は以下のとおり。
- クラスタ設定
クラスタ構成ノード、主系サーバの指定、ログ出力先、keepaliveやタイムアウトの指定など - 共有リソース設定
クラスタ間で共有するリソース(仮想IP、共有ディスク、アプリケーション)の指定
IPは今回以下の組み合わせで設定。- 仮想IP[主系・副系がそれぞれアクティブの際に使用するIP]
192.168.0.1 - 主系サーバIP
192.168.0.2 - 副系サーバIP
192.168.0.3
- 仮想IP[主系・副系がそれぞれアクティブの際に使用するIP]
- メール通知設定
状態変化時に通知するメールの宛先、内容の指定 - 認証キー設定
クラスタ間で行う通信の認証方式
- クラスタの設定
設定ファイル :/etc/ha.d/ha.cf サンプルファイル :/usr/share/doc/heartbeat-2.0.0/ha.cf
クラスタ設定は/etc/ha.d/ha.cfで設定。
# cd /etc/ha.d/ # cp /usr/share/doc/heartbeat-2.0.0/ha.cf /etc/ha.d/ # vi ha.cf
- [設定パラメータ]
主系サーバの編集後の設定値を抜粋。# grep -v ^# /etc/ha.d/ha.cf | sed -e "s/TexttoRemove//g" debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 30 warntime 10 initdead 120 udpport 694 ←ポート694番:ha-cluster ucast eth0 192.168.0.3 auto_failback on watchdog /dev/watchdog node host2 ping 192.168.0.3 respawn hacluster /usr/lib/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster
- [設定パラメータ]
- 共有リソースの設定
設定ファイル :/etc/ha.d/haresources サンプルファイル :/usr/share/doc/heartbeat-2.0.0/haresources
共有リソースの定義は/etc/ha.d/haresourcesで行う。
こちらもサンプルファイルを利用して編集。
主系/副系で同じ設定にする。# cp /usr/share/doc/heartbeat-2.0.0/haresources /etc/ha.d/ # vi haresources
- 設定例)
上記の3つのサービスを順番に起動する場合の例。今回は下記の設定で起動テストを行う。
- 仮想IPを設定
- 共有ディスク/dev/drdb0を/mnt/shareにマウント
※DRBDでマウントされる共有ディスクを使用する場合、
heartbeat起動前にプライマリにしておくこと。
セカンダリになっていると起動に失敗する。 - httpデーモンを起動
[設定内容]host1 192.168.0.1/24 drbddisk Filesystem::/dev/drbd0::/mnt/share::ext3 httpd
- 設定例)
- メール通知の設定
設定ファイル :/etc/ha.d/haresources
今回検証したバージョン2.0からheartbeatの動作に応じて
メール通知を行うスクリプトが追加されたので、設定を追加。
スクリプト実行のトリガーとなる動作は以下のとおり。
- heartbeatデーモン起動
- フェイルオーバー時
- フェイルバック時
スクリプト名 :/etc/ha.d/resource.d/MailTo 設定項目 :/etc/ha.d/haresourcesへ記述する。
- [記述例]
書式は<主系ホスト名> <スクリプト名>::<通知先アドレス>::<サブジェクト> host1 MailTo::testuser@host.example.com::heartbeat
- [記述例]
- 認証方式と認証鍵の設定
設定ファイル :/etc/ha.d/authkey サンプルファイル :/usr/share/doc/heartbeat-2.0.0/authkey
サーバ間の通信の認証方法と認証に使う鍵(文字列)を指定する。
/etc/ha.d/authkeyに設定を追記。# cp /usr/share/doc/heartbeat-2.0.0/authkeys /etc/ha.d/ # vi authkeys
- [認証方法]
サーバ間の認証には以下の3つの方法を指定可能。・sha1 SHA1による暗号化を実施。 ・md5 MD5方式による暗号化。 ・crc 暗号化なし、パケットの整合性のみチェックを実施。 ※シリアルケーブルでの通信の場合はこの方式。
今回は起動とフェイルオーバのテストなのでcrcでテストする。
- [記述内容]
auth 1 ←優先番号 1 crc ←認証方式
設定が終わったらセキュリティのためパーミッションを設定。
# chmod 600 authkeys
※この時点でheartbeatの運用開始が可能。
- [認証方法]
heartbeat-ldirectord †
今回は割愛。
4)動作検証 †
単独の動作検証 †
- heartbeatサービスの起動(主系)
設定が完了したら主系ノードで動作を確認。
事前にharesourcesで指定した共有リソースが停止/無効になっていることを確認する。# /etc/init.d/heartbeat start
同時に/var/log/ha-logを確認しておく。
- [リソース開始時のログ出力]
仮想IP、DRBDデバイスのマウント、httpdの起動の順に確認できる。harc[4738]: 2006/09/26_12:13:19 info: Running /etc/ha.d/rc.d/status status heartbeat[4731]: 2006/09/26_12:13:21 info: standby: acquire [foreign] resources from host2 heartbeat[4749]: 2006/09/26_12:13:21 info: acquire local HA resources (standby). ResourceManager[4759]: 2006/09/26_12:13:22 info: Acquiring resource group: host1 192.168.0.1/ 24 drbddisk Filesystem::/dev/drbd0::/mnt/share::ext3 httpd ResourceManager[4759]: 2006/09/26_12:13:22 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.1/24 start IPaddr[4817]: 2006/09/26_12:13:22 info: /sbin/ifconfig eth0:0 192.168.0.1 netmask 255.255.25 5.0 broadcast 192.168.0.255 IPaddr[4817]: 2006/09/26_12:13:22 info: Sending Gratuitous Arp for 192.168.0.1 on eth0:0 [et h0] IPaddr[4817]: 2006/09/26_12:13:22 /usr/lib64/heartbeat/send_arp -i 500 -r 10 -p /var/lib/heartb eat/rsctmp/send_arp/send_arp-192.168.0.1 eth0 192.168.0.1 auto 192.168.0.1 ffffffffffff ResourceManager[4759]: 2006/09/26_12:13:23 info: Running /etc/ha.d/resource.d/drbddisk start ResourceManager[4759]: 2006/09/26_12:13:23 info: Running /etc/ha.d/resource.d/Filesystem /dev/dr bd0 /mnt/share ext3 start ResourceManager[4759]: 2006/09/26_12:13:23 info: Running /etc/init.d/httpd start ResourceManager[5026]: 2006/09/26_12:13:24 info: Acquiring resource group: host1 MailTo::testuser@host.exa mple.com::heartbeat ResourceManager[5026]: 2006/09/26_12:13:24 info: Running /etc/ha.d/resource.d/MailTo testuser@host.example .com heartbeat start heartbeat[4749]: 2006/09/26_12:13:24 info: local HA resource acquisition completed (standby). heartbeat[4731]: 2006/09/26_12:13:24 info: Standby resource acquisition done [foreign]. heartbeat[4731]: 2006/09/26_12:13:24 info: Initial resource acquisition complete (auto_failback) heartbeat[4731]: 2006/09/26_12:13:24 info: remote resource transition completed.
- [通知メール]
設定したアドレスに以下のメールを配信。主系:heartbeat Takeover in progress on host1 副系:無し
- [リソースの確認]
・共有ディスクのマウント確認# mount | grep drbd /dev/drbd0 on /mnt/share type ext3 (rw)
・ディスク容量とマウントポイントの確認
# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda3 7637400 2217080 5032352 31% / /dev/sda1 101086 11424 84443 12% /boot none 159892 0 159892 0% /dev/shm /dev/drbd0 505636 10544 468987 3% /mnt/share #
・ネットワークの確認
共有リソースに割り当てた仮想IPが有効になっていることを確認# ifconfig (仮想IFのみ抜粋) eth0:0 Link encap:Ethernet HWaddr 00:0C:29:1B:B0:F2 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:185 Base address:0x1480
・登録したサービスの確認
今回登録したhttpdが正常起動していることを確認。# ps aux | grep http root 8767 0.0 1.4 14768 4560 ? Ss 10:14 0:00 /usr/sbin/httpd apache 8768 0.0 0.7 14904 2356 ? S 10:14 0:00 /usr/sbin/httpd apache 8769 0.0 0.7 14904 2356 ? S 10:14 0:00 /usr/sbin/httpd apache 8770 0.0 0.7 14904 2356 ? S 10:14 0:00 /usr/sbin/httpd apache 8771 0.0 0.7 14904 2356 ? S 10:14 0:00 /usr/sbin/httpd apache 8772 0.0 0.7 14904 2356 ? S 10:14 0:00 /usr/sbin/httpd apache 8773 0.0 0.7 14904 2356 ? S 10:14 0:00 /usr/sbin/httpd apache 8774 0.0 0.7 14904 2356 ? S 10:14 0:00 /usr/sbin/httpd apache 8775 0.0 0.7 14904 2356 ? S 10:14 0:00 /usr/sbin/httpd
- [リソース開始時のログ出力]
- heartbeatサービスの起動(副系)
主系のheartbeartを起動後にこちらも起動する。# /etc/init.d/heartbeat start
- [主系ログ]
副系ノードのリンクアップを確認後、ステータスがアクティブに設定される。heartbeat[10754]: 2006/09/26_14:16:59 info: Link host2:eth0 up. heartbeat[10754]: 2006/09/26_14:16:59 info: Local status now set to: 'active' heartbeat[10754]: 2006/09/26_14:16:59 info: Starting child client "/usr/lib64/heartbeat/ipfail" ( 500,500) heartbeat[10754]: 2006/09/26_14:16:59 info: Status update for node host2: status up heartbeat[10762]: 2006/09/26_14:16:59 info: Starting "/usr/lib64/heartbeat/ipfail" as uid 500 gi d 500 (pid 10762) harc[10763]: 2006/09/26_14:16:59 info: Running /etc/ha.d/rc.d/status status heartbeat[10754]: 2006/09/26_14:16:59 info: Status update for node host2: status active harc[10773]: 2006/09/26_14:17:00 info: Running /etc/ha.d/rc.d/status status
- [主系ログ]
フェイルオーバーの動作検証 †
主系・副系のheartbeatサービスが起動した状態での
フェイルオーバー・フェイルバックを確認。
- 主系heartbeatサービス停止→副系共有サービス起動(シャットダウン→フェイルオーバー)
主系のデーモンを通常に停止した際の副系の動作を確認。- [通知メール]
主系:heartbeat Migrating resource away from host1 副系:heartbeat Takeover in progress on host2
- [主系ログ]
サービスの停止を確認。heartbeat[11924]: 2006/09/26_14:34:03 info: Heartbeat shutdown in progress. (11924) heartbeat[12230]: 2006/09/26_14:34:03 info: Giving up all HA resources. ResourceManager[12240]: 2006/09/26_14:34:03 info: Releasing resource group: host1 192.168.0.1/ 24 drbddisk Filesystem::/dev/drbd0::/mnt/share::ext3 httpd ResourceManager[12240]: 2006/09/26_14:34:04 info: Running /etc/init.d/httpd stop ResourceManager[12240]: 2006/09/26_14:34:04 info: Running /etc/ha.d/resource.d/Filesystem /dev/dr bd0 /mnt/share ext3 stop ResourceManager[12240]: 2006/09/26_14:34:04 info: Running /etc/ha.d/resource.d/drbddisk stop ResourceManager[12240]: 2006/09/26_14:34:04 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.1/24 stop IPaddr[12366]: 2006/09/26_14:34:04 info: /sbin/route -n del -host 192.168.0.1 IPaddr[12366]: 2006/09/26_14:34:05 info: /sbin/ifconfig eth0:0 down IPaddr[12366]: 2006/09/26_14:34:05 info: IP Address 192.168.0.1 released heartbeat[12230]: 2006/09/26_14:34:05 info: All HA resources relinquished. --- 中略 --- heartbeat[11924]: 2006/09/26_14:34:08 info: Heartbeat shutdown complete.
- [副系ログ]
リソースのフェイルオーバーを確認。
keepalive=2に設定されているので、主系のheartbeat停止を検知したのち
2秒後にサービスを開始。
ログの1行目で、host1からshutdownコマンドを受けていることが確認できる。heartbeat[16187]: 2006/09/26_14:34:05 info: Received shutdown notice from 'host1'. heartbeat[16187]: 2006/09/26_14:34:05 info: Resources being acquired from host1. heartbeat[17309]: 2006/09/26_14:34:05 info: acquire local HA resources (standby). heartbeat[17309]: 2006/09/26_14:34:05 info: local HA resource acquisition completed (standby). heartbeat[16187]: 2006/09/26_14:34:05 info: Standby resource acquisition done [foreign]. heartbeat[17310]: 2006/09/26_14:34:05 info: No local resources [/usr/lib64/heartbeat/ResourceMana ger listkeys host2] to acquire. harc[17329]: 2006/09/26_14:34:05 info: Running /etc/ha.d/rc.d/status status mach_down[17339]: 2006/09/26_14:34:05 info: Taking over resource group 192.168.0.1/24 ResourceManager[17359]: 2006/09/26_14:34:05 info: Acquiring resource group: host1 192.168.0.1/ 24 drbddisk Filesystem::/dev/drbd0::/mnt/share::ext3 httpd ResourceManager[17359]: 2006/09/26_14:34:05 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.1/24 start IPaddr[17417]: 2006/09/26_14:34:06 info: /sbin/ifconfig eth0:0 192.168.0.1 netmask 255.255.25 5.0 broadcast 192.168.144.255 IPaddr[17417]: 2006/09/26_14:34:06 info: Sending Gratuitous Arp for 192.168.0.1 on eth0:0 [et h0] IPaddr[17417]: 2006/09/26_14:34:06 /usr/lib64/heartbeat/send_arp -i 500 -r 10 -p /var/lib/heartb eat/rsctmp/send_arp/send_arp-192.168.0.1 eth0 192.168.0.1 auto 192.168.0.1 ffffffffffff ResourceManager[17359]: 2006/09/26_14:34:06 info: Running /etc/ha.d/resource.d/drbddisk start ResourceManager[17359]: 2006/09/26_14:34:06 info: Running /etc/ha.d/resource.d/Filesystem /dev/dr bd0 /mnt/share ext3 start ResourceManager[17359]: 2006/09/26_14:34:07 info: Running /etc/init.d/httpd start mach_down[17339]: 2006/09/26_14:34:07 info: /usr/lib64/heartbeat/mach_down: nice_failback: foreign resources acquired heartbeat[16187]: 2006/09/26_14:34:07 info: mach_down takeover complete. mach_down[17339]: 2006/09/26_14:34:07 info: mach_down takeover complete for node host1.
フェイルオーバーの完了を確認後、リソースの正常性を確認する。
- [通知メール]
- 主系heartbeatサービス停止→副系共有サービス起動(電源OFF→フェイルオーバー)
主系ノードがダウンした際の副系の動作を確認。
ping監視の停止を確認後、フェイルオーバーが行われる。- [通知メール]
主系:なし 副系:heartbeat Takeover in progress on host2 [副系] heartbeat[16187]: 2006/09/26_14:51:03 WARN: node 192.168.0.2: is dead heartbeat[16187]: 2006/09/26_14:51:03 info: Link 192.168.0.2:192.168.0.2 dead. harc[17844]: 2006/09/26_14:51:03 info: Running /etc/ha.d/rc.d/status status heartbeat[16187]: 2006/09/26_14:51:04 WARN: node host1: is dead heartbeat[16187]: 2006/09/26_14:51:04 WARN: No STONITH device configured. heartbeat[16187]: 2006/09/26_14:51:04 WARN: Shared disks are not protected. heartbeat[16187]: 2006/09/26_14:51:04 info: Resources being acquired from host1. heartbeat[16187]: 2006/09/26_14:51:04 info: Link host1:eth0 dead. harc[17860]: 2006/09/26_14:51:04 info: Running /etc/ha.d/rc.d/status status heartbeat[17861]: 2006/09/26_14:51:04 info: No local resources [/usr/lib64/heartbeat/ResourceMana ger listkeys host2] to acquire. mach_down[17871]: 2006/09/26_14:51:04 info: Taking over resource group 192.168.0.1/24 ResourceManager[17900]: 2006/09/26_14:51:04 info: Acquiring resource group: host1 192.168.0.1/ 24 drbddisk Filesystem::/dev/drbd0::/mnt/share::ext3 httpd ResourceManager[17900]: 2006/09/26_14:51:05 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.1/24 start IPaddr[17958]: 2006/09/26_14:51:05 info: /sbin/ifconfig eth0:0 192.168.0.1 netmask 255.255.25 5.0 broadcast 192.168.0.255 IPaddr[17958]: 2006/09/26_14:51:05 info: Sending Gratuitous Arp for 192.168.0.1 on eth0:0 [et h0] IPaddr[17958]: 2006/09/26_14:51:05 /usr/lib64/heartbeat/send_arp -i 500 -r 10 -p /var/lib/heartb eat/rsctmp/send_arp/send_arp-192.168.0.1 eth0 192.168.0.1 auto 192.168.0.1 ffffffffffff ResourceManager[17900]: 2006/09/26_14:51:05 info: Running /etc/ha.d/resource.d/drbddisk start ResourceManager[17900]: 2006/09/26_14:51:05 info: Running /etc/ha.d/resource.d/Filesystem /dev/dr bd0 /mnt/share ext3 start ResourceManager[17900]: 2006/09/26_14:51:06 info: Running /etc/init.d/httpd start mach_down[17871]: 2006/09/26_14:51:06 info: /usr/lib64/heartbeat/mach_down: nice_failback: foreign resources acquired heartbeat[16187]: 2006/09/26_14:51:06 info: mach_down takeover complete. mach_down[17871]: 2006/09/26_14:51:06 info: mach_down takeover complete for node host1.
- [通知メール]
- 主系heartbeatサービス起動→副系共有サービス停止(フェイルバック)
- [通知メール]
主系:heartbeat Takeover in progress on host1 副系:heartbeat Migrating resource away from host2
- [主系]
副系との通信を確立し、共有サービスの停止を確認後、主系で共有サービスを起動。heartbeat[12466]: 2006/09/26_14:44:27 info: Configuration validated. Starting heartbeat 2.0.0 heartbeat[12467]: 2006/09/26_14:44:27 info: heartbeat: version 2.0.0 heartbeat[12467]: 2006/09/26_14:44:27 info: Heartbeat generation: 19 --- 中略 --- heartbeat[12467]: 2006/09/26_14:44:28 info: Link 192.168.0.3:192.168.0.3 up. heartbeat[12467]: 2006/09/26_14:44:28 info: Status update for node 192.168.0.3: status ping heartbeat[12467]: 2006/09/26_14:44:29 info: Link host2:eth0 up. heartbeat[12467]: 2006/09/26_14:44:29 info: Status update for node host2: status active heartbeat[12467]: 2006/09/26_14:44:29 info: Local status now set to: 'active' heartbeat[12467]: 2006/09/26_14:44:29 info: Starting child client "/usr/lib64/heartbeat/ipfail" ( 500,500) heartbeat[12467]: 2006/09/26_14:44:29 info: remote resource transition completed. --- 中略 --- heartbeat[12486]: 2006/09/26_14:44:31 info: acquire local HA resources (standby). ResourceManager[12496]: 2006/09/26_14:44:32 info: Acquiring resource group: host1 192.168.0.1/ 24 drbddisk Filesystem::/dev/drbd0::/mnt/share::ext3 httpd ResourceManager[12496]: 2006/09/26_14:44:32 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.1/24 start IPaddr[12554]: 2006/09/26_14:44:32 info: /sbin/ifconfig eth0:0 192.168.0.1 netmask 255.255.25 5.0 broadca st 192.168.0.255 IPaddr[12554]: 2006/09/26_14:44:32 info: Sending Gratuitous Arp for 192.168.0.1 on eth0:0 [et h0] IPaddr[12554]: 2006/09/26_14:44:32 /usr/lib64/heartbeat/send_arp -i 500 -r 10 -p /var/lib/heartb eat/rsctmp/send_arp/send_arp-192.168.0.1 eth0 192.168.0.1 auto 192.168.0.1 ffffffffffff ResourceManager[12496]: 2006/09/26_14:44:32 info: Running /etc/ha.d/resource.d/drbddisk start ResourceManager[12496]: 2006/09/26_14:44:33 info: Running /etc/ha.d/resource.d/Filesystem /dev/dr bd0 /mnt/share ext3 start ResourceManager[12496]: 2006/09/26_14:44:33 info: Running /etc/init.d/httpd start heartbeat[12486]: 2006/09/26_14:44:34 info: local HA resource acquisition completed (standby). heartbeat[12467]: 2006/09/26_14:44:34 info: Standby resource acquisition done [foreign]. heartbeat[12467]: 2006/09/26_14:44:34 info: Initial resource acquisition complete (auto_failback) heartbeat[12467]: 2006/09/26_14:44:34 info: remote resource transition completed.
- [副系]
主系のheartbeatとの通信を確認後、共有リソースを停止。heartbeat[16187]: 2006/09/26_14:44:28 info: Heartbeat restart on node host1 heartbeat[16187]: 2006/09/26_14:44:28 info: Link host1:eth0 up. heartbeat[16187]: 2006/09/26_14:44:28 info: Status update for node host1: status init heartbeat[16187]: 2006/09/26_14:44:28 info: Status update for node host1: status up harc[17642]: 2006/09/26_14:44:28 info: Running /etc/ha.d/rc.d/status status harc[17652]: 2006/09/26_14:44:28 info: Running /etc/ha.d/rc.d/status status heartbeat[16187]: 2006/09/26_14:44:29 info: Status update for node host1: status active heartbeat[16187]: 2006/09/26_14:44:29 info: remote resource transition completed. heartbeat[16187]: 2006/09/26_14:44:29 info: host2 wants to go standby [foreign] heartbeat[16187]: 2006/09/26_14:44:29 info: standby: host1 can take our foreign resources heartbeat[17663]: 2006/09/26_14:44:29 info: give up foreign HA resources (standby). harc[17662]: 2006/09/26_14:44:29 info: Running /etc/ha.d/rc.d/status status ResourceManager[17682]: 2006/09/26_14:44:29 info: Releasing resource group: host1 192.168.0.1/ 24 drbddisk Filesystem::/dev/drbd0::/mnt/share::ext3 httpd ResourceManager[17682]: 2006/09/26_14:44:29 info: Running /etc/init.d/httpd stop ResourceManager[17682]: 2006/09/26_14:44:31 info: Running /etc/ha.d/resource.d/Filesystem /dev/dr bd0 /mnt/share ext3 stop ResourceManager[17682]: 2006/09/26_14:44:31 info: Running /etc/ha.d/resource.d/drbddisk stop ResourceManager[17682]: 2006/09/26_14:44:31 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.1/24 stop IPaddr[17809]: 2006/09/26_14:44:31 info: /sbin/route -n del -host 192.168.0.1 IPaddr[17809]: 2006/09/26_14:44:31 info: /sbin/ifconfig eth0:0 down IPaddr[17809]: 2006/09/26_14:44:31 info: IP Address 192.168.0.1 released heartbeat[17663]: 2006/09/26_14:44:31 info: foreign HA resource release completed (standby). heartbeat[16187]: 2006/09/26_14:44:31 info: Local standby process completed [foreign]. heartbeat[16187]: 2006/09/26_14:44:34 WARN: 1 lost packet(s) for [host1] [13:15] heartbeat[16187]: 2006/09/26_14:44:34 info: remote resource transition completed. heartbeat[16187]: 2006/09/26_14:44:34 info: No pkts missing from host1! heartbeat[16187]: 2006/09/26_14:44:34 info: Other node completed standby takeover of foreign reso urces.
- [通知メール]
今回はディスク容量も少なく、起動アプリもhttpdのみだったので軽快にフェイルオーバー、フェイルバックが
切り替わったが、DBやJDKなどで負荷のかかるサーバでの動作については今後も要検証。