[Linux-ha-jp] Active/Passive構成でのSTONITHの設定について

Back to archive index

renay****@ybb***** renay****@ybb*****
2012年 2月 28日 (火) 08:51:48 JST


和田さん

こんにちは、山内です。


> こんにちは。
> 和田です。
> 
> Active/Passive構成でのSTONITH関連の設定についてご教示ください。
> 
> STONITHを設定している状態で、
> 
> -------------------------------------------------------------------------
> 
> property no-quorum-policy="freeze" \
>     stonith-enabled="true" \
>          startup-fencing="false" \
>          stonith-timeout="430s"
> 
> -------------------------------------------------------------------------
> 
> と設定した場合、
> 
> ・片故障状態で、システムを起動すると正常に起動しない。
> ・Active側がハード故障等でダウンするとうまく切り替わらない。
> 
> という動作をします。
> 
> 以前、山内さんに教えて頂いた様に、quorum定数が半分以下になるため、切り替わらないと
> 認識しているのですが、認識はあっているでしょうか?

はい。あっています。


> freezeからignoreにすることで、正常に切り替わることは確認しました。
> #ただし、スプリットブレインなどが困りますよね。。。
> 
> また、一般的な設定として、みなさんは上記の事象に対応する際に、
> どのような設定としているのでしょうか?
> NICを冗長化することで、Active/Passive構成ではSTONITHを利用しない
> というような構成が一般的なのでしょうか?

私個人の意見ですが、単純にActive/Passive構成を考えた場合、stonithは設定するべきだと思っています。

ですので、no-quorum-policyはActive/Passiveの場合"ignore"に設定して、stonithを設定する構成です。

ただし、2ノードの場合、分断時に落としあいが発生することを回避する為に、
stonith-helperなどを利用することが望ましいです。

stonith-helperは、日本コミュニティのpm_extrasパッケージにあります。
また、場合によっては、vipcheckなども有効でしょう。


以上、宜しくお願いいたします。




> 
> なお、構成は以前質問させて頂いたときと同様で、Corosync + Pacemaker + DRBDで
> 以下の構成となっています。
> 
> -------------------------------------------------------------------------
> 
> primitive drbd_db ocf:linbit:drbd \
>          params drbd_resource="pgsql" \
>          op start interval="0s" timeout="240s" on-fail="restart" \
>          op monitor interval="11s" timeout="60s" on-fail="restart" \
>          op monitor interval="10s" timeout="60s" on-fail="restart" role="Master" \
>          op stop interval="0s" timeout="100s" on-fail="fence"
> 
> primitive ip_db ocf:heartbeat:IPaddr2 \
>          params ip="192.168.1.175" \
>                  nic="eth1" \
>                  cidr_netmask="24" \
>          op start interval="0s" timeout="90s" on-fail="restart" \
>          op monitor interval="10s" timeout="60s" on-fail="restart" \
>          op stop interval="0s" timeout="100s" on-fail="fence"
> 
> primitive prmPing ocf:pacemaker:ping \
>          params \
>                  name="ping_set" \
>                  host_list="192.168.1.1 192.168.2.1" \
>                  multiplier="100" \
>                  dampen="0" \
>          meta \
>                  migration-threshold="3" \
>                  failure-timeout="60s" \
>          op start interval="0s" timeout="90s" on-fail="restart" \
>          op monitor interval="10s" timeout="60s" on-fail="restart" \
>          op stop interval="0s" timeout="100s" on-fail="ignore"
> 
> primitive fs_db ocf:heartbeat:Filesystem \
>          params device="/dev/drbd/by-res/pgsql" directory="/data" fstype="ext4" \
>          op start interval="0s" timeout="60s" on-fail="restart" \
>          op monitor interval="10s" timeout="60s" on-fail="restart" \
>          op stop interval="0s" timeout="60s" on-fail="fence"
> 
> primitive prmPg ocf:heartbeat:pgsql \
>          params pgctl="/usr/bin/pg_ctl" \
>          start_opt="-p 5432" \
>          psql="/usr/bin/psql" \
>          pgdata="/data/" \
>          pgdba="postgres" \
>          pgport="5432" \
>          pgdb="postgres" \
>          op start interval="0s" timeout="120s" on-fail="restart" \
>          op monitor interval="10s" timeout="60s" on-fail="restart" \
>          op stop interval="0s" timeout="120s" on-fail="fence"
> 
> primitive apache ocf:heartbeat:apache \
>          params configfile="/etc/httpd/conf/httpd.conf" \
>          port="80" \
>          op start interval="0s" timeout="40s" on-fail="restart" \
>          op monitor interval="10s" timeout="60s" on-fail="restart" \
>          op stop interval="0s" timeout="60s" on-fail="fence"
> 
> primitive prmDiskd ocf:pacemaker:diskd \
>          params name="diskd_set" \
>          device="/dev/sda1" \
>          op start interval="0s" timeout="60s" on-fail="restart" \
>          op monitor interval="10s" timeout="60s" on-fail="restart" \
>          op stop interval="0s" timeout="60s" on-fail="ignore"
> 
> primitive prmStonith1-1 stonith:external/stonith-helper \
>     params \
>         priority="1" \
>         stonith-timeout="60s" \
>         hostlist="it13" \
>         dead_check_target="192.168.1.173" \
>         run_standby_wait="no" \
>     op start interval="0s" timeout="60s" \
>     op monitor interval="3600s" timeout="60s" \
>     op stop interval="0s" timeout="60s"
> 
> primitive prmStonith1-2 stonith:external/ssh \
>     params \
>         priority="2" \
>         stonith-timeout="60s" \
>         hostlist="it13" \
>     op start interval="0s" timeout="60s" \
>     op monitor interval="3600s" timeout="60s" \
>     op stop interval="0s" timeout="60s"
> 
> primitive prmStonith1-3 stonith:meatware \
>     params \
>         priority="3" \
>         stonith-timeout="600" \
>         hostlist="it13" \
>     op start interval="0s" timeout="60s" \
>     op monitor interval="3600s" timeout="60s" \
>     op stop interval="0s" timeout="60s"
> 
> primitive prmStonith2-1 stonith:external/stonith-helper \
>     params \
>         priority="1" \
>         stonith-timeout="60s" \
>         hostlist="it14" \
>         dead_check_target="192.168.1.174" \
>         run_standby_wait="no" \
>     op start interval="0s" timeout="60s" \
>     op monitor interval="3600s" timeout="60s" \
>     op stop interval="0s" timeout="60s"
> 
> primitive prmStonith2-2 stonith:external/ssh \
>     params \
>         priority="2" \
>         stonith-timeout="60s" \
>         hostlist="it14" \
>     op start interval="0s" timeout="60s" \
>     op monitor interval="3600s" timeout="60s" \
>     op stop interval="0s" timeout="60s"
> 
> primitive prmStonith2-3 stonith:meatware \
>     params \
>         priority="3" \
>         stonith-timeout="600" \
>         hostlist="it14" \
>     op start interval="0s" timeout="60s" \
>     op monitor interval="3600s" timeout="60s" \
>     op stop interval="0s" timeout="60s"
> 
> group group_all fs_db ip_db prmPg apache
> 
> group grpStonith1 \
>     prmStonith1-1 \
>     prmStonith1-2 \
>     prmStonith1-3
> 
> group grpStonith2 \
>     prmStonith2-1 \
>     prmStonith2-2 \
>     prmStonith2-3
> 
> ms ms_drbd_db drbd_db \
>          meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
> 
> clone clnPing prmPing \
>          meta clone-max="2" clone-node-max="1"
> 
> clone clnDiskd prmDiskd \
>          meta clone-max="2" clone-node-max="1"
> 
> location group_all-location group_all \
>          rule 200: #uname eq it13 \
>          rule 100: #uname eq it14 \
>          rule -INFINITY: defined ping_set and ping_set lt 200 \
>          rule -INFINITY: defined diskd_set and diskd_set eq SUCCESS
> 
> location master-location_db ms_drbd_db \
>          rule 200: #uname eq it13 \
>          rule 100: #uname eq it14 \
>          rule role=master -INFINITY: defined ping_set and ping_set lt 200 \
>          rule role=master -INFINITY: defined diskd_set and diskd_set eq SUCCESS \
>          rule role=master -INFINITY: defined fail-count-fs_db \
>          rule role=master -INFINITY: defined fail-count-ip_db \
>          rule role=master -INFINITY: defined fail-count-prmPg \
>          rule role=master -INFINITY: defined fail-count-apache
> 
> location rsc_location-grpStonith1-1 grpStonith1 \
>     rule -INFINITY: #uname eq it13
> 
> location rsc_location-grpStonith2-1 grpStonith2 \
>     rule -INFINITY: #uname eq it14
> 
> colocation db_on_drbd INFINITY: group_all ms_drbd_db:Master
> colocation clnPing-colocation INFINITY: group_all clnPing
> colocation clnDiskd-colocation INFINITY: group_all clnDiskd
> order order_db_after_drbd INFINITY: ms_drbd_db:promote group_all:start
> order order_clnPing_after_all 0: clnPing group_all symmetrical=false
> order order_clnDiskd_after_all 0: clnDiskd group_all symmetrical=false
> 
> property no-quorum-policy="freeze" \
>     stonith-enabled="true" \
>          startup-fencing="false" \
>          stonith-timeout="430s"
> 
> rsc_defaults resource-stickiness="INFINITY" \
>          migration-threshold="1"
> 
> -------------------------------------------------------------------------
> 
> よろしくお願い致します。
> 
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
> 





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