Heartbeatでクラスターを組む

クラスターの動作確認


プライマリノードが停止すると、192.168.10.50の仮想IPがプライマリノード→セカンダリノードに移動します。
セカンダリノードにログインし、ログファイルを監視します。
$ tail -f /var/log/ha-log
ResourceManager(default)[2504]: 2019/02/19_22:45:42 info: Releasing resource group: orange-node1 192.168.10.50/24
ResourceManager(default)[2504]: 2019/02/19_22:45:42 info: Running /etc/ha.d/resource.d/IPaddr 192.168.10.50/24 stop
IPaddr(IPaddr_192.168.10.50)[2561]:     2019/02/19_22:45:42 INFO: ifconfig eth0:0 down
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.10.50)[2540]:  2019/02/19_22:45:42 INFO:  Success
Feb 19 22:45:42 orange-node2 heartbeat: [2490]: info: foreign HA resource release completed (standby).
Feb 19 22:45:42 orange-node2 heartbeat: [1990]: info: Local standby process completed [foreign].
Feb 19 22:45:44 orange-node2 heartbeat: [1990]: WARN: 1 lost packet(s) for [orange-node1] [10:12]
Feb 19 22:45:44 orange-node2 heartbeat: [1990]: info: remote resource transition completed.
Feb 19 22:45:44 orange-node2 heartbeat: [1990]: info: No pkts missing from orange-node1!
Feb 19 22:45:44 orange-node2 heartbeat: [1990]: info: Other node completed standby takeover of foreign resources.

ログファイルの監視を始めたら、プライマリノードを落とします。
セカンダリ側のログにずらずらとログが表示され、仮想IPアドレス(192.168.10.50)がセカンダリ側に移動します。
Feb 19 23:09:42 orange-node2 heartbeat: [1990]: info: Received shutdown notice from 'orange-node1'.
Feb 19 23:09:42 orange-node2 heartbeat: [1990]: info: Resources being acquired from orange-node1.
Feb 19 23:09:42 orange-node2 heartbeat: [2898]: info: acquire local HA resources (standby).
Feb 19 23:09:42 orange-node2 heartbeat: [2899]: info: No local resources [/usr/share/heartbeat/ResourceManager listkeys orange-node2] to acquire.
Feb 19 23:09:42 orange-node2 heartbeat: [2898]: info: local HA resource acquisition completed (standby).
Feb 19 23:09:42 orange-node2 heartbeat: [1990]: info: Standby resource acquisition done [foreign].
harc(default)[2924]:    2019/02/19_23:09:42 info: Running /etc/ha.d//rc.d/status status
mach_down(default)[2938]:       2019/02/19_23:09:42 info: Taking over resource group 192.168.10.50/24
ResourceManager(default)[2962]: 2019/02/19_23:09:42 info: Acquiring resource group: orange-node1 192.168.10.50/24
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.10.50)[2988]:  2019/02/19_23:09:42 INFO:  Resource is stopped
ResourceManager(default)[2962]: 2019/02/19_23:09:42 info: Running /etc/ha.d//resource.d/IPaddr 192.168.10.50/24 start
IPaddr(IPaddr_192.168.10.50)[3074]:     2019/02/19_23:09:43 INFO: Using calculated nic for 192.168.10.50: eth0
IPaddr(IPaddr_192.168.10.50)[3074]:     2019/02/19_23:09:43 INFO: Using calculated netmask for 192.168.10.50: 255.255.255.0
IPaddr(IPaddr_192.168.10.50)[3074]:     2019/02/19_23:09:43 INFO: eval ifconfig eth0:0 192.168.10.50 netmask 255.255.255.0 broadcast 192.168.10.255
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.10.50)[3053]:  2019/02/19_23:09:43 INFO:  Success

mach_down(default)[2938]:       2019/02/19_23:09:43 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
mach_down(default)[2938]:       2019/02/19_23:09:43 info: mach_down takeover complete for node orange-node1.
Feb 19 23:09:43 orange-node2 heartbeat: [1990]: info: mach_down takeover complete.

以下のコマンドで仮想IPアドレス(192.168.10.50)がセカンダリ側に移動したことを確認する事ができます。


別のマシンから192.168.10.50の仮想IPでログインすると、orange-node2にログインすることができます。



プライマリノードを起動します。
セカンダリ側のログにずらずらとログが表示され、仮想IPアドレス(192.168.10.50)がプライマリ側に復帰します。
Feb 19 23:14:35 orange-node2 heartbeat: [1990]: info: Heartbeat restart on node orange-node1
Feb 19 23:14:35 orange-node2 heartbeat: [1990]: info: Link orange-node1:eth0 up.
Feb 19 23:14:35 orange-node2 heartbeat: [1990]: info: Status update for node orange-node1: status init
Feb 19 23:14:35 orange-node2 heartbeat: [1990]: info: Status update for node orange-node1: status up
harc(default)[3226]:    2019/02/19_23:14:35 info: Running /etc/ha.d//rc.d/status status
Feb 19 23:14:36 orange-node2 heartbeat: [1990]: info: Status update for node orange-node1: status active
harc(default)[3240]:    2019/02/19_23:14:36 info: Running /etc/ha.d//rc.d/status status
harc(default)[3254]:    2019/02/19_23:14:36 info: Running /etc/ha.d//rc.d/status status
Feb 19 23:14:36 orange-node2 heartbeat: [1990]: info: remote resource transition completed.
Feb 19 23:14:36 orange-node2 heartbeat: [1990]: info: orange-node2 wants to go standby [foreign]
Feb 19 23:14:37 orange-node2 heartbeat: [1990]: info: standby: orange-node1 can take our foreign resources
Feb 19 23:14:37 orange-node2 heartbeat: [3268]: info: give up foreign HA resources (standby).
ResourceManager(default)[3282]: 2019/02/19_23:14:37 info: Releasing resource group: orange-node1 192.168.10.50/24
ResourceManager(default)[3282]: 2019/02/19_23:14:37 info: Running /etc/ha.d/resource.d/IPaddr 192.168.10.50/24 stop

IPaddr(IPaddr_192.168.10.50)[3339]:     2019/02/19_23:14:37 INFO: ifconfig eth0:0 down
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.10.50)[3318]:  2019/02/19_23:14:37 INFO:  Success
Feb 19 23:14:37 orange-node2 heartbeat: [3268]: info: foreign HA resource release completed (standby).
Feb 19 23:14:37 orange-node2 heartbeat: [1990]: info: Local standby process completed [foreign].
Feb 19 23:14:38 orange-node2 heartbeat: [1990]: WARN: 1 lost packet(s) for [orange-node1] [10:12]
Feb 19 23:14:38 orange-node2 heartbeat: [1990]: info: remote resource transition completed.
Feb 19 23:14:38 orange-node2 heartbeat: [1990]: info: No pkts missing from orange-node1!
Feb 19 23:14:38 orange-node2 heartbeat: [1990]: info: Other node completed standby takeover of foreign resources.

別のマシンから192.168.10.50にログインすると、orange-node1にログインすることができます。



プライマリノードを起動したときに、そのままセカンダリノードでの運用を続けたいときは、
/etc/ha.d/ha.cfのauto_failbackをoffに設定します。

このパラメータで、フェイルオーバーからの復帰時、リソースを自動的にフェイルバックさせるかどうかを指定します。
onのときは、稼動系ダウン→待機系アップ→稼動系アップ時に、リソースが稼動系に戻ります。
offのときは、稼動系ダウン→待機系アップ→稼動系アップ時に、リソースが稼動系に戻りません。

続く....