目次

概要

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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-30 (水) 21:18:14 (3830d)