harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

cluster GNU/Linux infra

クラスタリング/heartbeat

投稿日:2006年9月26日

Last Updated on 2016年12月16日 by かんりにん

[pukiwiki]
#topicpath

#contents

*クラスタリング/heartbeat [#t91d7900]

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/
日本語ページ有り
-libnet
http://packetfactory.net/libnet/
-ダウンロードページ
–libnet
http://mirror.centos.org/centos/4/extras/SRPMS/
–heartbeat
http://linux-ha.org/download/
そのほか、CentOSのパッケージページから、SRPMをダウンロード。

*構成ファイルとバージョン

 ※依存関係でインストールする追加パッケージは割愛。
  各作業ログを参照のこと。

・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)ダウンロードとインストール [#e08f1f16]

***libnet [#b5233061]
使用バージョンは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 [#aaeabd55]
使用バージョンは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 [#n06474cc]
+ダウンロードとビルド
パッケージは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
インストール部分は割愛。
+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)構成の概要 [#zaac88fa]
インストール直後のファイル構成は以下のとおり。

:設定ファイルディレクトリ|/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)設定 [#m5b885ca]

***heartbeat [#w88d25b8]

heartbeatを構成する設定は以下のとおり。
-クラスタ設定
クラスタ構成ノード、主系サーバの指定、ログ出力先、keepaliveやタイムアウトの指定など
-共有リソース設定
クラスタ間で共有するリソース(仮想IP、共有ディスク、アプリケーション)の指定
IPは今回以下の組み合わせで設定。
–仮想IP[主系・副系がそれぞれアクティブの際に使用するIP]
192.168.0.1
–主系サーバIP
192.168.0.2
–副系サーバIP
192.168.0.3
-メール通知設定
状態変化時に通知するメールの宛先、内容の指定
-認証キー設定
クラスタ間で行う通信の認証方式

+クラスタの設定
設定ファイル :/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 [#xb1d56e9]
今回は割愛。

**4)動作検証 [#pa2fbc72]

***単独の動作検証 [#tc481b91]
+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

***フェイルオーバーの動作検証 [#l9f0930b]
主系・副系の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などで負荷のかかるサーバでの動作については今後も要検証。

[/pukiwiki]
 

-cluster, GNU/Linux, infra

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

rsync実行時に”Argument list too long.”で叱られた時のメモ、ついでにxargsで渡してみた

アプリサーバーのログファイルが大量に増えたので、ログ退避用にバックアップ用ホストを用意して転送をしようとしたら rsyncさんから”Argument list too long.&#822 …

[Google Drive] LinuxサーバーにてRcloneインストール&お試し

  LinuxサーバーからGoogle Driveのストレージにファイルの同期をしよう、ということで 数あるGoogle Driveの同期ツールの中から、今回はインストール/環境整備がもっとも手軽で …

[AWS] EC2からS3へのファイル転送時間をコマンド別に軽くレポート

  本日までに試した、EC2→S3へのファイル転送時間をコマンド別にそれぞれ簡単に比較・テストしてみたので、以下にまとめ。 それぞれ5回試してみたうちの、速度がもっとも速かったものを以下に記載。今後の …

[PHP] browscap.iniで出たsyntax errorの問題をなんとなく修正

社内にある開発環境のphp5.3環境にてパーサーのエラーが毎回出力されるので、ざっと調べて修正。 具体的には、 ”PHP: syntax error, unexpected $end, e …

no image

オープンソースでのクラスタリング環境構築/DRBD

[pukiwiki] #contents *オープンソースでのクラスタリング環境構築/DRBD ネットワークに接続されたホスト間でのディスクミラーリング機能を提供。 GNU GPLに準拠。 特徴として …

宅麺