[Linux-ha-jp] 別ネットワーク間のHA構成について

Back to archive index

uehat****@first***** uehat****@first*****
2011年 5月 28日 (土) 10:23:15 JST


はじめまして、上畑と申します。

GoogleやこのMLのアーカイブを確認したのですがどうしてもわからなかったので
質問させてください。

【構成説明】
・2台のHA
・Heartbeat3.x + Pacemaker 1.0.x
・経路は2台ともGlobal-NIC1本のみで、インターコネクトは張らない。
・2台はそれぞれ別のネットワークに存在。
サーバA(eth0:99.0.0.1 default-gw:99.0.0.254)
サーバB(eth0:10.0.0.1 default-gw:10.0.0.254)

【設定条件】
この状態でできるだけスプリットブレーンを防ぐ為に、それぞれの自分の
gatewayとお互いのHeartbeatサーバに対しpingを行い、両方のpingからの応答が
ない場合のみリソースをフェイルオーバーさせたい。

・Heartbeatv1ではha.cfのping設定にそれぞれのgatewayを設定してましたが、
Heartbeat3.xでも同じようにできますか?
ping設定ではログにWARNINGしか出力しなかった為、crmによる設定で行おうとし
てますが、どうやって設定すればいいのかわかりませんでした。

【考えた設定その1】
--------------------------------------------------
# STONITHのOFF
property $id="cib-bootstrap-options" \
stonith-enabled="false" no-quorum-policy="ignore" 

#Fail-over Off
rsc_defaults $id="rsc-options" resource-stickiness="INFINITY" 

# HTTPリソース設定
primitive httpd ocf:heartbeat:apache \
    params configfile="/etc/httpd/conf/httpd.conf" port="80" \
    op monitor interval="20s"

# PINGリソースA
primitive pingA ocf:pacemaker:pingd \ 
params name="default_ping_set" host_list="10.0.0.1 99.0.0.254" \
multiplier="100" dampen="0" \ 
op start interval="0" timeout="60s" on-fail="restart" \ 
op monitor interval="10s" timeout="60s" on-fail="restart" \ 
op stop interval="0" timeout="60s" on-fail="ignore" 

# PINGリソースB
primitive pingB ocf:pacemaker:pingd \ 
params name="default_ping_set" host_list="99.0.0.1 10.0.0.254" \
multiplier="100" dampen="0" \ 
op start interval="0" timeout="60s" on-fail="restart" \ 
op monitor interval="10s" timeout="60s" on-fail="restart" \ 
op stop interval="0" timeout="60s" on-fail="ignore" 

# pingのスコアが0の場合に切り替える
location l_ping httpd \ 
rule $id="l_ping" \
-inf: default_ping_set eq 0

#違う気がします...この辺りからわからない
clone c_pingA pingA
clone c_pingB pingB
--------------------------------------------------

【考えた設定その2】
--------------------------------------------------
# STONITHのOFF
property $id="cib-bootstrap-options" \
stonith-enabled="false" no-quorum-policy="ignore" 

#Fail-over Off
rsc_defaults $id="rsc-options" resource-stickiness="INFINITY" 

# HTTPリソース設定
primitive httpd ocf:heartbeat:apache \
    params configfile="/etc/httpd/conf/httpd.conf" port="80" \
    op monitor interval="20s"

# PINGリソースA
primitive pingA ocf:pacemaker:pingd \ 
params name="default_ping_set_no1" host_list="10.0.0.1" \
multiplier="100" dampen="0" \ 
op start interval="0" timeout="60s" on-fail="restart" \ 
op monitor interval="10s" timeout="60s" on-fail="restart" \ 
op stop interval="0" timeout="60s" on-fail="ignore" 

# PINGリソースB
primitive pingB ocf:pacemaker:pingd \ 
params name="default_ping_set_no2" host_list="99.0.0.254" \
multiplier="100" dampen="0" \ 
op start interval="0" timeout="60s" on-fail="restart" \ 
op monitor interval="10s" timeout="60s" on-fail="restart" \ 
op stop interval="0" timeout="60s" on-fail="ignore" 

# PINGリソースC
primitive pingC ocf:pacemaker:pingd \ 
params name="default_ping_set_no1" host_list="99.0.0.1" \
multiplier="100" dampen="0" \ 
op start interval="0" timeout="60s" on-fail="restart" \ 
op monitor interval="10s" timeout="60s" on-fail="restart" \ 
op stop interval="0" timeout="60s" on-fail="ignore" 

# PINGリソースD
primitive pingD ocf:pacemaker:pingd \ 
params name="default_ping_set_no2" host_list="10.0.0.254" \
multiplier="100" dampen="0" \ 
op start interval="0" timeout="60s" on-fail="restart" \ 
op monitor interval="10s" timeout="60s" on-fail="restart" \ 
op stop interval="0" timeout="60s" on-fail="ignore" 

# ping二つとものスコアが0の場合に切り替える
location l_ping httpd \ 
rule $id="l_ping" \
-inf: default_ping_set_no1 eq 0 and  default_ping_set_no2 eq 0

#違う気がします...この辺りからわからない
gloup g_ping1 pingA pingB
gloup g_ping2 pingC pingD
--------------------------------------------------





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