Pacemaker 多数ノードのクラスタ構成
http://extstrg.asabiya.net/pukiwiki/index.php?Pacemaker%20%C2%BF%BF%F4%A5%CE%A1%BC%A5%C9%A4%CE%A5%AF%A5%E9%A5%B9%A5%BF%B9%BD%C0%AE目次
概要 †
3ノード以上のクラスタ構成を行う場合のTips
設定 †
構成 †
3ノード以上のクラスタを構成する場合も基本的な設定は2ノード構成と同様で、ha.chのnodeとして当該のunameを追加するのみとなる。
例
- /etc/ha.d/ha.cf
pacemaker on debug 0 udpport 694 keepalive 2 warntime 7 deadtime 10 initdead 10 logfacility local1 bcast eth1 node dev-ha01 node dev-ha02 node dev-ha03 watchdog /dev/watchdog respawn root /usr/lib/heartbeat/ifcheckd
リソース定義 †
仮想IPを割り当てるため、以下の設定を投入したことを以降の前提とする。
- デフォルト設定
## Default Set property no-quorum-policy="ignore" stonith-enabled="false"
- 仮想IPアドレス(172.16.2.180)のリソースを「vip」として定義し、「grp-vip」グループに含める
## VIP resource primitive vip ocf:heartbeat:IPaddr2 params ip="172.16.2.180" nic="eth0" cidr_netmask="16" op monitor interval="10s" group grp_vip vip
- ノードのネットワーク接続確認用として、172.16.0.254に対するPingを「ping」として定義
## Ping check primitive ping ocf:pacemaker:pingd params name="default_ping_set" host_list="172.16.0.254" multiplier="100" dampen="1" op monitor interval="10s"
- ノードのネットワーク接続確認用Pingをclone_pingとして定義し、全てのノードで実行させる
## Clone clone clone_ping ping
アクティブノードの優先順位設定 †
特定のノードが起動している場合に優先的にリソースを割り当てる場合、location設定にてルールを定義する。
下記の例では、loc_vip-rule1が最優先、以下番号順に優先度が割り当てられる。
- 設定例
## Location rsc_defaults resource-stickiness="INFINITY" migration-threshold="1" location web_location grp_vip \ rule $id="loc_vip-rule1" 300: #uname eq dev-ha01 \ rule $id="loc_vip-rule2" 200: #uname eq dev-ha02 \ rule $id="loc_vip-rule3" 100: #uname eq dev-ha03 \ rule $id="loc_vip-rule4" -inf: not_defined default_ping_set or default_ping_set lt 100
自動フェイルバック †
現行のアクティブノードよりも優先順位の高いノードが復旧した場合に自動的にアクティブノードを切り替える設定。
常に特定のノード(もしくは、ノードが格納された仮想化インフラ上)での動作を優先したい場合には便利な設定だが、勝手にフェイルバックすることから、障害復旧時などに予期せぬ切り替えが発生する可能性がある点を留意する必要がある。
尚、heartbeat側にauto_failbackというパラメータがあるが、pacemakerと組み合わせる場合には正常に動作しない。
このため、pacemaker側の設定にて対処を行う。
本来、pacemakerは自動フェイルバックする動作がデフォルトである。
多くの設定例において記載されている、以下の項目が自動フェイルバックを抑制している。
rsc_defaults resource-stickiness="INFINITY" migration-threshold="1"
このため、この設定を外し、ノードの優先順位を定義することで、優先度の高いノードに対して自動的にフェイルバックさせることができる。
- 設定例
location web_location grp_vip \ rule $id="loc_vip-rule1" 300: #uname eq dev-ha01 \ rule $id="loc_vip-rule2" 200: #uname eq dev-ha02 \ rule $id="loc_vip-rule3" 100: #uname eq dev-ha03 \ rule $id="loc_vip-rule4" -inf: not_defined default_ping_set or default_ping_set lt 100
Last-modified: 2013-10-30 (水) 21:18:14 (3830d)