LoginSignup
0
0

More than 3 years have passed since last update.

Pacemaker+Corosync PingでNIC監視とリソースのフェイルオーバー

Last updated at Posted at 2020-10-24

概要

クラウド環境でのPacemaker+Corosyncのクラスタ構成のシステム構築の際、GW宛のPing結果次第でリソースのフェイルオーバーを実装しようとしたらインターネットに通じるDMZのGWがPingを返さなかった。

GW側の設定変更も難しかった為、場当たり的な対応としてインスタンスの持つNICのIP叩いて監視することに。

環境

RHEL 7.9
pacemaker-1.1.15
corosync-2.3.6
drbd-9.15.0-1(Master/Slaveリソース)

host1(master):192.168.1.1
host2(slave):192.168.1.2

/etc/hosts

192.168.1.1   host1
192.168.1.2   host2

リソース設定

pcsコマンドからリソースを作成する。

PING-HOSTXや各種パラメータは適宜変更
host_listはホスト名でもIPv6でもおーけー。

# Pingリソース作成 HOST1
# 今回は自らのNICの監視のみなので --cloneは付与せず
pcs resource create PING-HOST1 ocf:pacemaker:ping \
dampen=5s multiplier=1000 \
host_list=192.168.1.1

# Pingリソース作成 HOST2
pcs resource create PING-HOST2 ocf:pacemaker:ping \
dampen=5s multiplier=1000 \
host_list=192.168.1.2



自分の持つNICに対してのみPing監視を行うように制限を付与する。
(masterのnicが死んだときslaveが死んだnicを見ないように)

# 自サーバが保有するNICに向けてPing
# 除外ホスト指定のため、対向のホスト名を入力
pcs constraint location PING-HOST1 avoids host2
pcs constraint location PING-HOST2 avoids host1



pingの結果でMaster/Slaveリソースをフェイルオーバーする。
他にping監視を追加していた場合はそれもフェイルオーバー条件に入るので注意

# Ping系が失敗した場合フェイルオーバー
pcs constraint location マスタースレーブリソース \
rule score=-INFINITY pingd lt 1 or not_defined pingd

参考

6.1. 場所の制約
7.3. 接続状態が変化したためリソースの移動を行う

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0