[Linux-ha-jp] pingdの使い方について

Back to archive index

古川秀明 tim12****@gmail*****
2010年 2月 18日 (木) 11:48:56 JST


岡田様

古川です。
サンプルを見てようやく書き方がなんとなくイメージできてきました。
primitiveでdefault_ping_set1等を作成して、
locationの制約でdefault_ping_set1が定義されているかスコアを見てあげればいいわけですね。

パターンAの2つの方法はばっちり望んでいた動作で動いてくれました。
パターンBのほうは、bond1には必ずpingが通るノードで無ければならないが、
bond0とbond2はできればpingが通るノード(できればなので、最悪通信できていなくても良い)
で・・・という風にしたいと考えています。

恐らくは頂いたサンプルの「rule $id="pingd-grou00-rule-2" -inf: defined
default_ping_set2 and default_ping_set2 lt
200」を-infではなくて、(cib.xmlでいう)score_attribute="default_ping_set"
にすれば動いてくれる気がしています。
crmコマンドでの書き方を調べて後日試してみます。

NFSのほうですが、こちらのミスでした・・・
いつの間にか/etc/sysconfig/nfsに「RPCMOUNTDOPTS="--no-tcp"」を入れてしまっていて、
それが原因だったようです。
他にこんなミスをする人はいなそうですが一応バッドノウハウとして。



2010年2月16日10:39 OKADA Satoshi <okada****@oss*****>:
> 古川さま
>
> 岡田です。こんにちは。
>
> 古川秀明 さんは書きました:
>> 初めまして、古川です。
>> pingdの使い方について質問です。
>> heartbeatというよりpacemakerの質問なので、ここで良いか自信が有りませんが・・・
>
> 良いと思います。
>
> drbd等の環境は用意できないので、pingdとDummyのみで考えてみました。
>
>
> パターンAはpingdでのネットワーク監視先が3箇所あり、一つでも切れたら、
> フェイルオーバさせるということで案を作っています。
> 二つの方法を添付します。
>
> A-1は一つのpingdリソースで複数個所監視しています。
> 全部監視OKなら内部の管理情報が300(3箇所×multiplierの100)
> になり、一箇所接続が切れた場合には200になるので、その際には
> そのノードでは動作しないという制約をrsc_locationで記述しています。
>
> A-2は監視先ごとに制約を記述するものです。
>
>
>
> パターンBは質問の意味を正しく理解できているか不安なのですが、
> bond0と2で一方が切れた場合にはそのノードではリソースは動作
> させないということで案を作りました。
>
> 参考になればよいのですが。
>
>
>
>
> ##
> nfs mount/umountの件は情報をもってませんので、どなたかよろしくお願いします。
>
>
>
>>
>> 使用バージョン
>> CentOS5.4
>> drbd8.3.6
>> heartbeat3.0.1
>> pacemaker1.0.7
>>
>> ノード名とIP等
>> ・pacemaker1:bond0 192.168.0.1、bond1 192.168.1.1、bond2 192.168.10.1
>> ・pacemaker2:bond0 192.168.0.2、bond1 192.168.1.2、bond2 192.168.10.2
>> bond0をdrbd用、bond1を外部向け、bond2を内部向けとしています。
>> pacemaker1とpacemaker2はシリアルケーブルで接続済み
>> 両ノードで「mount -t nfsd nfsd /proc/fs/nfsd」実行済み
>>
>> リソース
>> ・drbd drbd内リソース名mysql
>> ・Filesystem /dev/drbd0を/dataにマウント、マウントオプションとしてnoatimeを追加。
>> ・IPAddr2 192.168.1.10
>> ・IPAddr2 192.168.10.10
>> ・nfsserver 共有ディレクトリは/data
>> ※drbd以外はグループとして1つにまとめています
>>
>> この環境で、以下のようなポリシーでdrbdを使ったnfsサーバの冗長化を行いたいと思っています。
>> ※パターンAとBはひとまず両パターンの設定で動作確認したいということで、同時に実現したいわけでは有りません
>> ・自動フェイルバックしない
>> ・リソース故障時に必ず全リソースフェイルオーバー
>> default-resource-failure-stickiness="-INFINITY"が該当すると思っています
>> ・正常時はpacemaker1で全リソースが起動する
>>
>> ・パターンA bond0〜2のどれか1つでも該当セグメントのGW(第4オクテッド254)と通信断時に、全リソースフェイルオーバー
>> ・パターンB bond1通信断時は全リソースフェイルオーバー、bond0と2はより多くpingが通る方のノードで全リソース稼働
>>
>> 何となくpingdを使って下のようにすれば良いのかな、と思っていますが書き方がわかりません。
>> ご教示お願いします。(そもそも下が間違っている可能性大ですが)
>> パターンAはpingdリソースを3つ(192.168.0.254、192.168.1.254、192.168.10.254)の3つを作成し、
>> 1つでも通信不能になったらフェイルオーバー
>> パターンBはbond1についてはパターンA同様に行い、bond0と2はGWと通信出来た場合スコア上昇
>>
>>
>> あと、先ほど気づいたんですが他マシンから「192.168.1.10」に対して
>> nfsマウント実施したところ、マウントは問題無いもののアンマウント時に
>> 「not found / mounted or server not reachable」と表示されました。(フェイルオーバー発生前から)
>> こちらについてもご存じの方がいらっしゃいましたら教えてください。
>>
>> 以上よろしくお願いします。
>>
>>
>> 備考
>> http://www.clusterlabs.org/wiki/Pingd_with_resources_on_different_networks
>> http://wiki.linux-ha.org/ja/v2/faq/pingd_ja?action=show&redirect=ja%2Fpingd+ja
>> 上記2つを見たものの、operation="defined"や"lte""not_defined"のところが特に理解できませんでした・・・
>>
>> ==========crm configure saveの結果==========
>> node $id="省略" pacemaker1
>> node $id="省略" pacemaker2 \
>>         attributes standby="off"
>> primitive drbd0 ocf:linbit:drbd \
>>         params drbd_resource="mysql"
>> primitive res_fs ocf:heartbeat:Filesystem \
>>         params device="/dev/drbd0" directory="/data" fstype="ext3"
>> options="noatime"
>> primitive res_ip-dmz ocf:heartbeat:IPaddr2 \
>>         params ip="192.168.1.10" cidr_netmask="24" nic="bond1"
>> primitive res_ip-mgm ocf:heartbeat:IPaddr2 \
>>         params ip="192.168.10.10" cidr_netmask="24" nic="bond2"
>> primitive res_nfs ocf:heartbeat:nfsserver \
>>         params nfs_init_script="/etc/init.d/nfs" nfs_ip="192.168.1.10"
>> nfs_shared_infodir="/" nfs_notify_cmd="/sbin/rpc.statd"
>> group rg_group1 res_fs res_ip-mgm res_ip-dmz res_nfs
>> ms ms-drbd0 drbd0 \
>>         meta clone-max="2" notify="true" clone-node-max="1"
>> master-node-max="1" master-max="1"
>> location l_group1 rg_group1 100: pacemaker1
>> colocation c_group1 inf: rg_group1 ms-drbd0:Master
>> order o_group1 0: ms-drbd0:promote rg_group1:start
>> property $id="cib-bootstrap-options" \
>>         dc-version="1.0.7-省略" \
>>         cluster-infrastructure="Heartbeat" \
>>         stonith-enabled="false" \
>>         no-quorum-policy="ignore" \
>>         default-resource-stickiness="200" \
>>         last-lrm-refresh="省略" \
>>         default-resource-failure-stickiness="-INFINITY"
>> ==========================================
>>
>> _______________________________________________
>> Linux-ha-japan mailing list
>> Linux****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
>>
>
>
> --
>
> primitive clnPrmPingd ocf:pacemaker:pingd \
>        params name="default_ping_set" host_list="192.168.0.A 192.168.1.B 192.168.10.C" 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"
> primitive dum00 ocf:pacemaker:Dummy \
>        op start interval="0" timeout="60s" on-fail="restart" \
>        op monitor interval="10" timeout="60s" on-fail="restart" \
>        op stop interval="0" timeout="60s" on-fail="block"
> group group00 dum00
> clone clnPingd clnPrmPingd
> location pingd-group00 group00 \
>        rule $id="pingd-grou00-rule-1" -inf: defined default_ping_set and default_ping_set lt 300
> property $id="cib-bootstrap-options" \
>        cluster-infrastructure="openais" \
>        expected-quorum-votes="2" \
>        no-quorum-policy="ignore" \
>        stonith-enabled="false" \
> rsc_defaults $id="rsc_defaults-meta_attributes" \
>        resource-stickiness="INFINITY" \
>        migration-threshold="1"
>
> primitive clnPrmPingd1 ocf:pacemaker:pingd \
>        params name="default_ping_set1" host_list="192.168.0.A" 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"
> primitive clnPrmPingd2 ocf:pacemaker:pingd \
>        params name="default_ping_set2" host_list="192.168.1.B" 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"
> primitive clnPrmPingd3 ocf:pacemaker:pingd \
>        params name="default_ping_set3" host_list="192.168.10.C" 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"
> primitive dum00 ocf:pacemaker:Dummy \
>        op start interval="0" timeout="60s" on-fail="restart" \
>        op monitor interval="10" timeout="60s" on-fail="restart" \
>        op stop interval="0" timeout="60s" on-fail="block"
> group group00 dum00
> clone clnPingd1 clnPrmPingd1
> clone clnPingd2 clnPrmPingd2
> clone clnPingd3 clnPrmPingd3
> location pingd-group00-1 group00 \
>        rule $id="pingd-grou00-rule-1" -inf: defined default_ping_set1 and default_ping_set1 lt 100
> location pingd-group00-2 group00 \
>        rule $id="pingd-grou00-rule-2" -inf: defined default_ping_set2 and default_ping_set2 lt 100
> location pingd-group00-3 group00 \
>        rule $id="pingd-grou00-rule-3" -inf: defined default_ping_set3 and default_ping_set3 lt 100
> property $id="cib-bootstrap-options" \
>        cluster-infrastructure="openais" \
>        expected-quorum-votes="2" \
>        no-quorum-policy="ignore" \
>        stonith-enabled="false" \
> rsc_defaults $id="rsc_defaults-meta_attributes" \
>        resource-stickiness="INFINITY" \
>        migration-threshold="1"
>
>
> primitive clnPrmPingd1 ocf:pacemaker:pingd \
>        params name="default_ping_set1" host_list="192.168.0.A" 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"
> primitive clnPrmPingd2 ocf:pacemaker:pingd \
>        params name="default_ping_set2" host_list="192.168.1.B 192.168.10.C" 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"
> primitive dum00 ocf:pacemaker:Dummy \
>        op start interval="0" timeout="60s" on-fail="restart" \
>        op monitor interval="10" timeout="60s" on-fail="restart" \
>        op stop interval="0" timeout="60s" on-fail="block"
> group group00 dum00
> clone clnPingd1 clnPrmPingd1
> clone clnPingd2 clnPrmPingd2
> location pingd-group00-1 group00 \
>        rule $id="pingd-grou00-rule-1" -inf: defined default_ping_set1 and default_ping_set1 lt 100
> location pingd-group00-2 group00 \
>        rule $id="pingd-grou00-rule-2" -inf: defined default_ping_set2 and default_ping_set2 lt 200
> property $id="cib-bootstrap-options" \
>        cluster-infrastructure="openais" \
>        expected-quorum-votes="2" \
>        no-quorum-policy="ignore" \
>        stonith-enabled="false"
> rsc_defaults $id="rsc_defaults-meta_attributes" \
>        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