web-dev-qa-db-ja.com

ペースメーカーフェンシングがトリガーされない

私は2つのノードを持っています:-patroni1:192.168.1.38-patroni2:192.168.1.39

および仮想IP:192.168.1.40

両方にHA-Proxyをインストールしています。

VIPがpatroni2に接続され、haproxyがpatroni2でアクティブ化されたときの私のPCステータスは次のとおりです

-----------
[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)

-----------

私の問題は、patroni2でhaproxyを手動で強制終了しても、フェンシングがトリガーされないことです。フェンシングは、patroni2を手動で停止または再起動した場合にのみトリガーされます。

これは、haproxyを手動で強制終了したときのPCのステータスです

------------
[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-

1
Bino Oetomo

あなたが観察しているのは、期待される振る舞いです。リソースが停止したからといって、システムの電源を強制的に入れ直すことが最善の行動であるとは限りません。

HA-Proxyを手動で強制終了すると、Pacemakerはこのサービスが何らかの理由で実行されていないことを検出し、この失敗をログに記録します。haproxy_monitor_10000 on patroni2 'not running' [...]。その後、クラスターはこのサービスを再開します。クラスターは、まったく同じpatroni2ノードで問題なくサービスが実行されていることを示しているため、これは正常に機能したと思います。

モニター操作の失敗は致命的とは見なされないため、STONITHアクションにエスカレートすることはありません。ただし、停止操作での障害は致命的な障害と見なされます。クラスターがリソースを停止できない場合、どのようにリソースを再起動またはフェイルオーバーできますか?ノードをフェンシングし、STONITHを介して電源を入れ直す。

4
Dok