У меня 2 узла: - patroni1: 192.168.1.38 - patroni2: 192.168.1.39
и виртуальный IP: 192.168.1.40
У меня на обоих установлен HA-Proxy.
Вот мой статус ПК, когда VIP привязан к patroni2, а haproxy активирован на patroni2
-----------
[root@patroni1 ~]# pcs status
Cluster name: haproxy_cluster
Stack: corosync
Current DC: patroni2 (version 1.1.18-11.el7_5.3-2b07d5c5a9) - partition with quorum
Last updated: Thu Nov 29 21:29:00 2018
Last change: Thu Nov 29 21:24:52 2018 by root via cibadmin on patroni1
2 nodes configured
4 resources configured
Online: [ patroni1 patroni2 ]
Full list of resources:
xen-fencing-patroni2 (stonith:fence_xenapi): Started patroni1
xen-fencing-patroni1 (stonith:fence_xenapi): Started patroni2
Resource Group: HAproxyGroup
haproxy (ocf::heartbeat:haproxy): Started patroni2
VIP (ocf::heartbeat:IPaddr2): Started patroni2
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
[root@patroni1 ~]# pcs resource show VIP
Resource: VIP (class=ocf provider=heartbeat type=IPaddr2)
Attributes: cidr_netmask=24 ip=192.168.1.40
Operations: monitor interval=1s (VIP-monitor-interval-1s)
start interval=0s timeout=20s (VIP-start-interval-0s)
stop interval=0s timeout=20s (VIP-stop-interval-0s)
[root@patroni1 ~]# pcs resource show haproxy
Resource: haproxy (class=ocf provider=heartbeat type=haproxy)
Attributes: binpath=/usr/sbin/haproxy conffile=/etc/haproxy/haproxy.cfg
Operations: monitor interval=10s (haproxy-monitor-interval-10s)
start interval=0s timeout=20s (haproxy-start-interval-0s)
stop interval=0s timeout=20s (haproxy-stop-interval-0s)
-----------
Моя проблема: ограждение не срабатывает всякий раз, когда я вручную убиваю haproxy на patroni2. фехтование срабатывает только когда я вручную останавливаю или перезагружаю patroni2.
вот статус ПК, когда я вручную убиваю haproxy
------------
[root@patroni1 ~]# pcs status
Cluster name: haproxy_cluster
Stack: corosync
Current DC: patroni2 (version 1.1.18-11.el7_5.3-2b07d5c5a9) - partition with quorum
Last updated: Thu Nov 29 21:37:37 2018
Last change: Thu Nov 29 21:24:52 2018 by root via cibadmin on patroni1
2 nodes configured
4 resources configured
Online: [ patroni1 patroni2 ]
Full list of resources:
xen-fencing-patroni2 (stonith:fence_xenapi): Started patroni1
xen-fencing-patroni1 (stonith:fence_xenapi): Started patroni2
Resource Group: HAproxyGroup
haproxy (ocf::heartbeat:haproxy): Started patroni2
VIP (ocf::heartbeat:IPaddr2): Starting patroni2
Failed Actions:
* haproxy_monitor_10000 on patroni2 'not running' (7): call=38, status=complete, exitreason='',
last-rc-change='Thu Nov 29 21:37:36 2018', queued=0ms, exec=0ms
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
------------
Как сделать срабатывание ограждения, когда HA-Proxy не отвечает?
С уважением -bino-
Вы наблюдаете ожидаемое поведение. Просто потому, что ресурс остановлен, не означает, что лучший способ действий - принудительно выключить и включить систему.
Вы вручную закрываете HA-Proxy, Pacemaker обнаруживает, что эта служба по какой-то причине не работает, и регистрирует этот сбой: haproxy_monitor_10000 on patroni2 'not running' [...]
. Затем кластер перезапускает эту службу. Что, как я полагаю, сработало успешно, поскольку теперь кластер показывает, что служба работает без проблем на том же узле patroni2.
Сбой в работе монитора не считается фатальным и не перерастает в действие STONITH. Однако отказ при операции остановки считается фатальным. Если кластер не может остановить ресурс, как он может перезапустить его или выполнить аварийное переключение? Путем ограждения узла и включения и выключения питания через STONITH.