[Linux-ha-jp] 時刻同期によるpacemaker+corosyncのクラスタ障害検知について

Back to archive index

AKIBA Makoto akiba****@acroq*****
2018年 4月 4日 (水) 17:23:49 JST


お世話になっております。
秋葉と申します。

先日、当方で運用している、
pacemaker + corosync で2台ACT-SBY構成にしている
PostgreSQLのサーバで、時刻同期を契機に最終的に2台とも
利用できなくなるという事象が発生しました。

以下に詳細情報を記載しますが、相談したいポイントは以下3点です。
(1) 時刻同期によりpacemakerが障害を(誤)検知することはあるでしょうか?
(2) (1)を回避するための設定などはありますでしょうか?
  (heartbeat間隔を長くする以外にあれば…)
(3) 2台ともダウンしてしまう事象について、発生契機及び原因を
  調べたいのですが、ログ等どこを見るのが良いでしょうか?

----
■構成
VMWare5.5上の仮想マシン
OS: CentOS Linux release 7.2.1511 (Core)
    kernel - 3.10.0-327.36.3.el7
    glibc - 2.17-106.el7_2.6
Systemd: 219-19.el7_2.9
Pacemaker: 1.1.13-10.el7_2.2
Corosync: 2.3.4-7.el7_2.1
PostgreSQL: 9.4.10-1PGDG.rhel7
時刻同期:chrony-2.1.1-1.el7

サーバ:
  DB01A、DB01Bの2台をHotStandby構成にして
  PostgreSQLを運用しています。
  (両サーバでPostgreSQLが起動し、hot-standby構成にしている)
  Active側にVIPを割り当てるようにして、
  アプリケーションからはVIPに接続するようにしています。

■事象
(1) DB01A(Active側)でシステム時刻が188秒前後変化した
  (/var/log/messagesでは正確な変化幅はわからないが、以下のような形で記録が出ている)
  Mar 30 10:26:58 DB01A systemd: Starting Session c3455908 of user postgres.
  Mar 30 10:30:06 DB01A systemd: Time has been changed

(2) このタイミングで、DB01Aのpacemaker.logにDB01Bの切断を
  検知したログが出ている。
  Mar 30 10:30:07 [2717] DB01A crmd: info: crm_update_peer_proc: pcmk_cpg_membership: Node DB01B[2] - corosync-cpg is now offline
  Mar 30 10:30:07 [2717] DB01A crmd: info: peer_update_callback: Client DB01B/peer now has status [offline] (DC=true, changed=4000000)
  Mar 30 10:30:07 [2717] DB01A crmd: info: peer_update_callback: Peer DB01B left us
  
(3) DB01Bは、(DB01Aが時刻変化する前ぐらいの時刻に)DB01Aの異常を検知した
  Mar 30 10:27:15 [8779] DB01B crmd: info: crm_update_peer_proc: pcmk_cpg_membership: Node DB01A[1] - corosync-cpg is now offline
  Mar 30 10:27:15 [8779] DB01B crmd: info: peer_update_callback: Client DB01A/peer now has status [offline] (DC=DB01A, changed=4000000)
  Mar 30 10:27:15 [8774] DB01B cib: info: pcmk_cpg_membership: Node 1 left group cib (peer=DB01A, counter=1.0)
  Mar 30 10:27:15 [8779] DB01B crmd: notice: peer_update_callback: Our peer on the DC (DB01A) is dead

(4) DB01A、DB01Bも、最終的にPostgreSQLを起動できない状態になった。
  (起動できなかった理由がどこにあるか?はまだわかっていない状況です)


以上、よろしくお願い致します。
----------------
AKIBA Makoto
akiba****@acroq*****




Linux-ha-japan メーリングリストの案内
Back to archive index