From wkenji @ jp.fujitsu.com Thu Sep 4 17:43:55 2008
From: wkenji @ jp.fujitsu.com (Kenji Wakamiya)
Date: Thu, 04 Sep 2008 17:43:55 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?GyRCIzElaiU9ITwlOSRORGQ7XyRHGyhC?=
=?iso-2022-jp?b?GyRCJVUlJyUkJWslKiE8JVAhPBsoQg==?=
Message-ID: <48BF9FCB.1060008@jp.fujitsu.com>
初めまして、若宮と申します。
見よう見まねで CRM モード + DRBD、MySQL の OCF RA を用いてクラスタを構
成し、引き続きリソース毎の監視 (主には MySQL) に取り組んでいるところな
のですが、ここで期待した動作を実現できずにおります。さらには基本的な疑
問が沸いてきましたので、ご教示を賜りたくメールいたしました。
期待した動作というのは、例えば MySQL サーバが1つ停止しただけで、
crm_standby on した時のようにリソースグループとマスタースレーブ (DRBD)
をすべて放棄して、待機系にフェイルオーバーさせるというものです。
DTD やネット上の例を見て、これは CIB の op 要素で on_fail="fence" にす
ることでできそうだと思い、MySQL 用の primitive 内に以下のように記述し
てみました。しかし、この状態で "service mysqld stop" して crm_mon で見
ていても、MySQL リソースが Stopped になるだけで、他のリソースには動き
がありませんでした。
DTD のコメントによると on_fail="restart" も期待の動作に近そうに思えて、
こちらも試してみましたら、止めた MySQL が自動的に再起動されて Started
になるだけで、フェイルオーバーは起こりませんでした。実運用上はこれでも
足りるかも知れませんが…。
そこで、そもそもそのような動作は CRM のモニタ機能で実現できるものなの
かが疑問に思えてきました。実際のところはどうなのでしょうか?
ちょっと大きい?ですが、末尾に cib.xml を添付いたします。環境は CentOS
5.2 と extras リポジトリの heartbeat パッケージを使っています。RA 群は
ほとんど付属の OCF 版ですが、quotaon/quotaoff のために、ネットで拾った
Quota RA (class="heartbeat") も使っています。
あと、少し前のスレッドに CentOS の crm_mon が one-shot mode になる話が
ありましたが、自分も脱力してこんなの↓で代用しています;-)
while true; do clear; crm_mon; sleep 2; done
よろしくお願いいたします。
-------->8-------->8-------->8-------->8-------->8-------->8--------
From okada.satoshi @ oss.ntt.co.jp Thu Sep 4 19:57:30 2008
From: okada.satoshi @ oss.ntt.co.jp (OKADA Satoshi)
Date: Thu, 04 Sep 2008 19:57:30 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?GyRCIzElaiU9ITwlOSRORGQ7XyRHGyhC?=
=?iso-2022-jp?b?GyRCJVUlJyUkJWslKiE8JVAhPBsoQg==?=
In-Reply-To: <48BF9FCB.1060008@jp.fujitsu.com>
References: <48BF9FCB.1060008@jp.fujitsu.com>
Message-ID: <48BFBF1A.6020608@oss.ntt.co.jp>
岡田です。 こんにちは。
DBRB + MySQLの環境が無いので、若宮さんの環境と同じに
することはできませんでしたが、擬似環境でちょっとためして
みました。
二つ、サンプルのcib.xmlをつけてみました。
sample1.xmlは
稼動系(ACT)のリソースに故障が発生したら、フェイルオーバ
して、旧ACTはslaveとして動作するものです。
#こっちではダメですか?
sample2.xmlは
"crm_standby on した時のように "とありましたので、
さらにconstraintsの記述をつけて、故障発生ノードでは
slaveリソースも動かないようにしてみました。
#うまく動くか自信なしです・・・
#無理やり制約をつけたので、もう少し、スマートな
#方法があれば、どなたか教えてください。
Kenji Wakamiya さんは書きました:
> 初めまして、若宮と申します。
>
> 見よう見まねで CRM モード + DRBD、MySQL の OCF RA を用いてクラスタを構
> 成し、引き続きリソース毎の監視 (主には MySQL) に取り組んでいるところな
> のですが、ここで期待した動作を実現できずにおります。さらには基本的な疑
> 問が沸いてきましたので、ご教示を賜りたくメールいたしました。
>
> 期待した動作というのは、例えば MySQL サーバが1つ停止しただけで、
> crm_standby on した時のようにリソースグループとマスタースレーブ (DRBD)
> をすべて放棄して、待機系にフェイルオーバーさせるというものです。
>
> DTD やネット上の例を見て、これは CIB の op 要素で on_fail="fence" にす
> ることでできそうだと思い、MySQL 用の primitive 内に以下のように記述し
> てみました。しかし、この状態で "service mysqld stop" して crm_mon で見
> ていても、MySQL リソースが Stopped になるだけで、他のリソースには動き
> がありませんでした。
>
on_fail="fence"はstonith(強制電源断機能)の利用を前提としているようで、
stonithを使わない場合には期待する動作とならないようです。
>
>
>
>
> DTD のコメントによると on_fail="restart" も期待の動作に近そうに思えて、
> こちらも試してみましたら、止めた MySQL が自動的に再起動されて Started
> になるだけで、フェイルオーバーは起こりませんでした。実運用上はこれでも
> 足りるかも知れませんが…。
>
stonithを使わない環境ではrestartでフェイルオーバさせる方がよいと思います。
若宮さんのcib.xmlではの中に
default-resource-failure-stickiness
の設定が無かったために、フェイルオーバが発生
しなかったのだと思います。
> そこで、そもそもそのような動作は CRM のモニタ機能で実現できるものなの
> かが疑問に思えてきました。実際のところはどうなのでしょうか?
>
> ちょっと大きい?ですが、末尾に cib.xml を添付いたします。環境は CentOS
> 5.2 と extras リポジトリの heartbeat パッケージを使っています。RA 群は
> ほとんど付属の OCF 版ですが、quotaon/quotaoff のために、ネットで拾った
> Quota RA (class="heartbeat") も使っています。
>
> あと、少し前のスレッドに CentOS の crm_mon が one-shot mode になる話が
> ありましたが、自分も脱力してこんなの↓で代用しています;-)
> while true; do clear; crm_mon; sleep 2; done
>
> よろしくお願いいたします。
>
>
あと、Heartbeatのバージョンですが、2.1.3をお使いでしたら、
最新の2.1.4が出ていますので、こちらを使われた方がよい
と思います。Master/Slaveやベースとなっているcloseに
2.1.4化に際して手が入っているようですので。
ご参考まで。
--
NTTオープンソースソフトウェアセンタ
岡田 敏 <OKADA Satoshi>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: sample1.xml
型: text/xml
サイズ: 3275 バイト
説明: 無し
URL: http://lists.sourceforge.jp/mailman/archives/linux-ha-japan/attachments/20080904/aafb4d6b/attachment.bin
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: sample2.xml
型: text/xml
サイズ: 3973 バイト
説明: 無し
URL: http://lists.sourceforge.jp/mailman/archives/linux-ha-japan/attachments/20080904/aafb4d6b/attachment-0001.bin
From okada.satoshi @ oss.ntt.co.jp Thu Sep 4 20:24:13 2008
From: okada.satoshi @ oss.ntt.co.jp (OKADA Satoshi)
Date: Thu, 04 Sep 2008 20:24:13 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?GyRCIzElaiU9ITwlOSRORGQ7XyRHGyhC?=
=?iso-2022-jp?b?GyRCJVUlJyUkJWslKiE8JVAhPBsoQg==?=
In-Reply-To: <48BFBF1A.6020608@oss.ntt.co.jp>
References: <48BF9FCB.1060008@jp.fujitsu.com> <48BFBF1A.6020608@oss.ntt.co.jp>
Message-ID: <48BFC55D.1010601@oss.ntt.co.jp>
岡田です。たびたびすみません。
sample2.xmlの以下の部分は
以下の設定で動きそうです。
若宮さんの環境だと、リソースがたくさんあるので、
constraintsの記述が長くなってしまうかも・・・
思っていたのですが、少しは短くできるかもしれません。
KADA Satoshi さんは書きました:
> 岡田です。 こんにちは。
>
> DBRB + MySQLの環境が無いので、若宮さんの環境と同じに
> することはできませんでしたが、擬似環境でちょっとためして
> みました。
>
> 二つ、サンプルのcib.xmlをつけてみました。
>
> sample1.xmlは
> 稼動系(ACT)のリソースに故障が発生したら、フェイルオーバ
> して、旧ACTはslaveとして動作するものです。
> #こっちではダメですか?
>
> sample2.xmlは
> "crm_standby on した時のように "とありましたので、
> さらにconstraintsの記述をつけて、故障発生ノードでは
> slaveリソースも動かないようにしてみました。
> #うまく動くか自信なしです・・・
> #無理やり制約をつけたので、もう少し、スマートな
> #方法があれば、どなたか教えてください。
>
>
> Kenji Wakamiya さんは書きました:
>
>> 初めまして、若宮と申します。
>>
>> 見よう見まねで CRM モード + DRBD、MySQL の OCF RA を用いてクラスタを構
>> 成し、引き続きリソース毎の監視 (主には MySQL) に取り組んでいるところな
>> のですが、ここで期待した動作を実現できずにおります。さらには基本的な疑
>> 問が沸いてきましたので、ご教示を賜りたくメールいたしました。
>>
>> 期待した動作というのは、例えば MySQL サーバが1つ停止しただけで、
>> crm_standby on した時のようにリソースグループとマスタースレーブ (DRBD)
>> をすべて放棄して、待機系にフェイルオーバーさせるというものです。
>>
>> DTD やネット上の例を見て、これは CIB の op 要素で on_fail="fence" にす
>> ることでできそうだと思い、MySQL 用の primitive 内に以下のように記述し
>> てみました。しかし、この状態で "service mysqld stop" して crm_mon で見
>> ていても、MySQL リソースが Stopped になるだけで、他のリソースには動き
>> がありませんでした。
>>
>>
>
> on_fail="fence"はstonith(強制電源断機能)の利用を前提としているようで、
> stonithを使わない場合には期待する動作とならないようです。
>
>
>>
>>
>>
>>
>> DTD のコメントによると on_fail="restart" も期待の動作に近そうに思えて、
>> こちらも試してみましたら、止めた MySQL が自動的に再起動されて Started
>> になるだけで、フェイルオーバーは起こりませんでした。実運用上はこれでも
>> 足りるかも知れませんが…。
>>
>>
>
> stonithを使わない環境ではrestartでフェイルオーバさせる方がよいと思います。
> 若宮さんのcib.xmlではの中に
> default-resource-failure-stickiness
> の設定が無かったために、フェイルオーバが発生
> しなかったのだと思います。
>
>> そこで、そもそもそのような動作は CRM のモニタ機能で実現できるものなの
>> かが疑問に思えてきました。実際のところはどうなのでしょうか?
>>
>> ちょっと大きい?ですが、末尾に cib.xml を添付いたします。環境は CentOS
>> 5.2 と extras リポジトリの heartbeat パッケージを使っています。RA 群は
>> ほとんど付属の OCF 版ですが、quotaon/quotaoff のために、ネットで拾った
>> Quota RA (class="heartbeat") も使っています。
>>
>> あと、少し前のスレッドに CentOS の crm_mon が one-shot mode になる話が
>> ありましたが、自分も脱力してこんなの↓で代用しています;-)
>> while true; do clear; crm_mon; sleep 2; done
>>
>> よろしくお願いいたします。
>>
>>
>>
>
> あと、Heartbeatのバージョンですが、2.1.3をお使いでしたら、
> 最新の2.1.4が出ていますので、こちらを使われた方がよい
> と思います。Master/Slaveやベースとなっているcloseに
> 2.1.4化に際して手が入っているようですので。
>
>
> ご参考まで。
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Linux-ha-japan mailing list
> Linux-ha-japan @ lists.sourceforge.jp
> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
--
NTTオープンソースソフトウェアセンタ
岡田 敏 <OKADA Satoshi>
From wkenji @ jp.fujitsu.com Fri Sep 5 10:38:26 2008
From: wkenji @ jp.fujitsu.com (Kenji Wakamiya)
Date: Fri, 05 Sep 2008 10:38:26 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?GyRCIzElaiU9ITwlOSRORGQ7XyRHGyhC?=
=?iso-2022-jp?b?GyRCJVUlJyUkJWslKiE8JVAhPBsoQg==?=
In-Reply-To: <48BFBF1A.6020608@oss.ntt.co.jp>
References: <48BF9FCB.1060008@jp.fujitsu.com> <48BFBF1A.6020608@oss.ntt.co.jp>
Message-ID: <48C08D92.9070606@jp.fujitsu.com>
若宮です。
岡田さん、お返事&サンプルありがとうございます。
自分の知らなかったことが色々と浮き彫りになりました。
OKADA Satoshi さんは書きました:
> sample2.xmlは
> "crm_standby on した時のように "とありましたので、
> さらにconstraintsの記述をつけて、故障発生ノードでは
> slaveリソースも動かないようにしてみました。
すいません。crm_standby on した時のようにと書きましたのは、
Master/Started なリソースを一斉に待機系側に寄せたかっただけでして、相
方に Slave リソースがあっても問題なしでした(^^;。
ただ、fail-count の概念自体を知らなかったため、サンプルに書いていただ
いた constraints は目から鱗で、非常に勉強になりました。
> on_fail="fence"はstonith(強制電源断機能)の利用を前提としているようで、
> stonithを使わない場合には期待する動作とならないようです。
そうなんですね。stonith は未調査だったのですが、Red Hat Cluster でも
fencing は経験していたのに、なぜか on_fail="fence" がそういうものだと
気付きませんでした…。
> stonithを使わない環境ではrestartでフェイルオーバさせる方がよいと思います。
> 若宮さんのcib.xmlではの中に
> default-resource-failure-stickiness
> の設定が無かったために、フェイルオーバが発生
> しなかったのだと思います。
"service mysqld stop" をトリガーとしたフェイルオーバー自体は、ズバリ
default-resource-failure-stickiness でうまくいくようになりました。自動
フェイルバックするかしないかの話で default-resource-stickiness の方は
ネットでよく見たのですが failure の方は見落としていました (DTD にない?)。
ただ、フェイルオーバーした後、逆に移動先の MySQL を止めたらちゃんと元
のノード向きにフェイルオーバーするのだろうかと思って試してみると、フェ
イルオーバーはし始めるものの、mysql リソースだけが Stopped のまま起動
されず、これがしばらく理解できませんでした。
そこで、ふと example2.xml のfail-count-* 属性が気になって調べていたら、
crm_failcount コマンドの存在にも気づくことができ(^^;、思ったように制御
できるようになりました。
> あと、Heartbeatのバージョンですが、2.1.3をお使いでしたら、
> 最新の2.1.4が出ていますので、こちらを使われた方がよい
> と思います。Master/Slaveやベースとなっているcloseに
> 2.1.4化に際して手が入っているようですので。
なるほど。CentOS のパッケージがまだ 2.1.3 みたいなので、RHEL 用の RPM
で試してみようと思います (自力ビルドを避ける奴)。
色々教えていただき、サンプルまでご検討いただいてありがとうございました。
改めて CRM の奥深さを思い知りました。
From tanaka.takayuki @ oss.ntt.co.jp Fri Sep 5 11:25:57 2008
From: tanaka.takayuki @ oss.ntt.co.jp (Takayuki Tanaka)
Date: Fri, 05 Sep 2008 11:25:57 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?GyRCIzElaiU9ITwlOSRORGQ7XyRHGyhC?=
=?iso-2022-jp?b?GyRCJVUlJyUkJWslKiE8JVAhPBsoQg==?=
In-Reply-To: <48BF9FCB.1060008@jp.fujitsu.com>
References: <48BF9FCB.1060008@jp.fujitsu.com>
Message-ID: <48C098B5.3040509@oss.ntt.co.jp>
田中 と申します。
小ネタですが..
> あと、少し前のスレッドに CentOS の crm_mon が one-shot mode になる話が
> ありましたが、自分も脱力してこんなの↓で代用しています;-)
> while true; do clear; crm_mon; sleep 2; done
watchコマンドをかませると、デフォルトで2秒毎に実行してくれるので、便利で
すよ。
# watch crm_mon
結局このような事しなきゃならんってことは、やっぱり CentOS extras版
crm_monの one-shot mode デフォルトって、いただけないですね..
From wkenji @ jp.fujitsu.com Fri Sep 5 11:58:37 2008
From: wkenji @ jp.fujitsu.com (Kenji Wakamiya)
Date: Fri, 05 Sep 2008 11:58:37 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?GyRCIzElaiU9ITwlOSRORGQ7XyRHGyhC?=
=?iso-2022-jp?b?GyRCJVUlJyUkJWslKiE8JVAhPBsoQg==?=
In-Reply-To: <48C098B5.3040509@oss.ntt.co.jp>
References: <48BF9FCB.1060008@jp.fujitsu.com> <48C098B5.3040509@oss.ntt.co.jp>
Message-ID: <48C0A05D.1060206@jp.fujitsu.com>
若宮です。
Takayuki Tanaka さんは書きました:
>> あと、少し前のスレッドに CentOS の crm_mon が one-shot mode になる話が
>> ありましたが、自分も脱力してこんなの↓で代用しています;-)
>> while true; do clear; crm_mon; sleep 2; done
>
> watchコマンドをかませると、デフォルトで2秒毎に実行してくれるので、便利で
> すよ。
>
> # watch crm_mon
Linux 生活5年、こんなコマンドがあったとは知りませんでした;-)。
clear と違ってチラつかないし、-d なんてのもあって便利ですね。
> 結局このような事しなきゃならんってことは、やっぱり CentOS extras版
> crm_monの one-shot mode デフォルトって、いただけないですね..
まったくです…。
watch で済ませるとしても、curses 云々のメッセージが邪魔ですしね;-)。
またまた勉強になりました。
From wkenji @ jp.fujitsu.com Tue Sep 16 15:12:35 2008
From: wkenji @ jp.fujitsu.com (Kenji Wakamiya)
Date: Tue, 16 Sep 2008 15:12:35 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?Mi4xLjQbJEIkRyROGyhCTWFzdGVyL1Ns?=
=?iso-2022-jp?b?YXZlIChSZTogIBskQiMxJWolPSE8JTkkTkRkO18kRyVVJSclJCVrGyhC?=
=?iso-2022-jp?b?GyRCJSohPCVQITwbKEIp?=
In-Reply-To: <48BFBF1A.6020608@oss.ntt.co.jp>
References: <48BF9FCB.1060008@jp.fujitsu.com> <48BFBF1A.6020608@oss.ntt.co.jp>
Message-ID: <48CF4E53.6080706@jp.fujitsu.com>
若宮です。お世話になっております。
OKADA Satoshi さんは書きました:
> あと、Heartbeatのバージョンですが、2.1.3をお使いでしたら、
> 最新の2.1.4が出ていますので、こちらを使われた方がよい
> と思います。Master/Slaveやベースとなっているcloseに
> 2.1.4化に際して手が入っているようですので。
Linux-HA 日本語サイトの RHEL 用 2.1.4-1 RPM を使わせて頂き、CentOS 5.2
に入れてみました。当然ながら? CentOS にも問題なく入りました。
2.1.3 で気になっていた挙動として、Master/Slave の Slave 側ノードで
Heartbeat を stop & start した時、元のように Slave としてメンバに加わ
ってくれればいいのに、online になった途端になぜか Master 側のリソース
に stop が掛かって自動的に start され直す、というものがありました。そ
の際、location を制約していなかったせいか、どちらが Master になるかは
不定でした。
これでは Slave だからといって気軽に保守したりできないなと悩んでいたの
ですが、2.1.4 に替えたところ、Master に影響を与えることなく Slave 側の
stop/start ができるようになりました。2.1.3 の時に無意味に +1 されてい
た drbd リソースの failcount もバッチリ 0 のままです。
以上、ご報告でした(_ _)。
あと、2.1.4 の crm_mon には failcount を表示するオプション (-f) が追加
されていますね。いちいち crm_failcount で値を確認するのは面倒だったの
で、これはありがたいです。
From okada.satoshi @ oss.ntt.co.jp Tue Sep 16 19:27:33 2008
From: okada.satoshi @ oss.ntt.co.jp (OKADA Satoshi)
Date: Tue, 16 Sep 2008 19:27:33 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?Mi4xLjQbJEIkRyROGyhCTWFzdGVyL1Ns?=
=?iso-2022-jp?b?YXZlIChSZTogIBskQiMxJWolPSE8JTkkTkRkO18kRyVVJSclJCVrGyhC?=
=?iso-2022-jp?b?GyRCJSohPCVQITwbKEIp?=
In-Reply-To: <48CF4E53.6080706@jp.fujitsu.com>
References: <48BF9FCB.1060008@jp.fujitsu.com> <48BFBF1A.6020608@oss.ntt.co.jp>
<48CF4E53.6080706@jp.fujitsu.com>
Message-ID: <48CF8A15.2050606@oss.ntt.co.jp>
岡田です。こんにちは。
Kenji Wakamiya さんは書きました:
> Linux-HA 日本語サイトの RHEL 用 2.1.4-1 RPM を使わせて頂き、CentOS 5.2
> に入れてみました。当然ながら? CentOS にも問題なく入りました。
>
> 2.1.3 で気になっていた挙動として、Master/Slave の Slave 側ノードで
> Heartbeat を stop & start した時、元のように Slave としてメンバに加わ
> ってくれればいいのに、online になった途端になぜか Master 側のリソース
> に stop が掛かって自動的に start され直す、というものがありました。そ
> の際、location を制約していなかったせいか、どちらが Master になるかは
> 不定でした。
>
> これでは Slave だからといって気軽に保守したりできないなと悩んでいたの
> ですが、2.1.4 に替えたところ、Master に影響を与えることなく Slave 側の
> stop/start ができるようになりました。2.1.3 の時に無意味に +1 されてい
> た drbd リソースの failcount もバッチリ 0 のままです。
>
2.1.4になって、動きが少しずつまともになっているという話は出ては
いたのですが、具体的にどのようになっているのかあまり触れてなかった
ので、このような情報は助かりました。ありがとうございます。
私も2.1.4のMaster/Slave機能を触ってみたいのですが、なかなか
時間が・・・。
また、何かありましたら、お知らせいただければ助かります(^^;)
> 以上、ご報告でした(_ _)。
>
> あと、2.1.4 の crm_mon には failcount を表示するオプション (-f) が追加
> されていますね。いちいち crm_failcount で値を確認するのは面倒だったの
> で、これはありがたいです。
>
> _______________________________________________
> Linux-ha-japan mailing list
> Linux-ha-japan @ lists.sourceforge.jp
> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
>
>
--
NTTオープンソースソフトウェアセンタ
岡田 敏 <OKADA Satoshi>
From wkenji @ jp.fujitsu.com Thu Sep 18 16:48:14 2008
From: wkenji @ jp.fujitsu.com (Kenji Wakamiya)
Date: Thu, 18 Sep 2008 16:48:14 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?cGluZ2QbJEIkSyREJCQkRhsoQg==?=
Message-ID: <48D207BE.7030602@jp.fujitsu.com>
若宮です。たびたびの投稿で恐縮です。
また基本的な質問でお恥ずかしいのですが、pingd について教えて下さい。
Heartbeat は、ha.cf 内の ping や deadping で指定された情報を元に、自分
で ping 送信と不達の検知を行って/行えていると思います。とすると、ping
状況の CIB への反映も自分で行えばいいように思うのですが、その部分を
pingd に任せているのは、単にあくまでも Heartbeat と CRM が別モノだから、
第三者の pingd が仲を取り持っているということなのでしょうか? それとも
もっと深い理由があるのでしょうか?
もし「Heartbeat と CRM が別モノだから」という理由だとすると、V1 モード
の時に使用される ipfail の存在意義も掴みかねるところです。でも ipfail
がいないと、外部接続性に基づくフェイルオーバーはできないんですよね? 自
分は CRM モードでしか使ったことがないので、恐らく何か見落としている点
があるのだろうと思います…。
よろしくお願いいたします(_ _)。
From okada.satoshi @ oss.ntt.co.jp Thu Sep 18 19:50:00 2008
From: okada.satoshi @ oss.ntt.co.jp (OKADA Satoshi)
Date: Thu, 18 Sep 2008 19:50:00 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?cGluZ2QbJEIkSyREJCQkRhsoQg==?=
In-Reply-To: <48D207BE.7030602@jp.fujitsu.com>
References: <48D207BE.7030602@jp.fujitsu.com>
Message-ID: <48D23258.902@oss.ntt.co.jp>
岡田です。こんにちは。
少し、考えてみましたが、はっきりしたことは分かりませんでした。
詳しい方がいらっしゃいましたら、フォローをお願いします 。
Kenji Wakamiya さんは書きました:
> 若宮です。たびたびの投稿で恐縮です。
>
> また基本的な質問でお恥ずかしいのですが、pingd について教えて下さい。
>
> Heartbeat は、ha.cf 内の ping や deadping で指定された情報を元に、自分
> で ping 送信と不達の検知を行って/行えていると思います。とすると、ping
> 状況の CIB への反映も自分で行えばいいように思うのですが、その部分を
> pingd に任せているのは、単にあくまでも Heartbeat と CRM が別モノだから、
> 第三者の pingd が仲を取り持っているということなのでしょうか? それとも
> もっと深い理由があるのでしょうか?
>
開発の経緯を知らないので、正しい答えか分かりませんが、
役割分担かなと思います。
Heartbeatのプロセス(レイヤ)は通信のみ行う役割
通信がどのような状態になっているかを見て処理を判断・他
プロセスに依頼するのがpingdの役割
Heartbeatのレイヤではpingの疎通とともに他ノードとのheartbeat通信
もやっていますが、基本的に通信のみで、切れた/つながった場合の
処理は他のレイヤ(CCMプロセス)以上でやっているようなので、そうな
のかなと思いました。
> もし「Heartbeat と CRM が別モノだから」という理由だとすると、V1 モード
> の時に使用される ipfail の存在意義も掴みかねるところです。でも ipfail
> がいないと、外部接続性に基づくフェイルオーバーはできないんですよね? 自
> 分は CRM モードでしか使ったことがないので、恐らく何か見落としている点
> があるのだろうと思います…。
>
ipfailではHeartbeatAPIをつかって、Heartbeatプロセスが保持している
通信状態を確認し、切れていたら、pingdがCIBを書き換える相当のこと
をして、外部接続性に基づくフェイルオーバを行っているようです。
#私もV1モードは使ったことがないので、詳しくは分かってません。
--
NTTオープンソースソフトウェアセンタ
岡田 敏 <OKADA Satoshi>
From wkenji @ jp.fujitsu.com Thu Sep 18 22:00:31 2008
From: wkenji @ jp.fujitsu.com (Kenji Wakamiya)
Date: Thu, 18 Sep 2008 22:00:31 +0900
Subject: [Linux-ha-jp] =?iso-2022-jp?b?cGluZ2QbJEIkSyREJCQkRhsoQg==?=
In-Reply-To: <48D23258.902@oss.ntt.co.jp>
References: <48D207BE.7030602@jp.fujitsu.com> <48D23258.902@oss.ntt.co.jp>
Message-ID: <48D250EF.2010100@jp.fujitsu.com>
若宮です。
岡田さん、ご回答いただきありがとうございます。
OKADA Satoshi さんは書きました:
> 開発の経緯を知らないので、正しい答えか分かりませんが、
> 役割分担かなと思います。
>
> Heartbeatのプロセス(レイヤ)は通信のみ行う役割
> 通信がどのような状態になっているかを見て処理を判断・他
> プロセスに依頼するのがpingdの役割
>
> Heartbeatのレイヤではpingの疎通とともに他ノードとのheartbeat通信
> もやっていますが、基本的に通信のみで、切れた/つながった場合の
> 処理は他のレイヤ(CCMプロセス)以上でやっているようなので、そうな
> のかなと思いました。
おっしゃる通り、Heartbeat も色々なプロセスで構成されているので、pingd
の担当部分が独立したプロセスとなっていること自体は自然な感じがします。
それにしても、pingd だけはなぜ respawn 経由で起動するのだろうと思いま
したが、実は ccm や crmd なども、"crm yes" という命令の裏で自動的に
respawn/apiauth されているだけなんですね。
http://www.linux-ha.org/ja/ha.cf_ja#head-9749e3c9868c1fbbf5479698171452b59c8ed879
でもでも pingd の respawn はなぜユーザが設定することになっているのか、
pingd はプラガブルな方が都合がいいことがあるのか? と考えてみたところ、
状況によっては pingd が不要なこともあるにはあるか (HB 通信と他の通信を
LAN 1本で済ませているなど) と思いました。ちょっと苦しいですが(^^;。
> ipfailではHeartbeatAPIをつかって、Heartbeatプロセスが保持している
> 通信状態を確認し、切れていたら、pingdがCIBを書き換える相当のこと
> をして、外部接続性に基づくフェイルオーバを行っているようです。
> #私もV1モードは使ったことがないので、詳しくは分かってません。
フェイルオーバーのトリガーを掛けてやるのは、ここでもやはり respawn さ
れた ipfail なんですよね。
こんなことも考えました。「外部接続性を元にしたリソース管理というのは、
本来 Heartbeat の意図した範疇ではない(!)。けれども、それに限らずユーザ
が自分で外部プログラムを用意して HB API なり CIB なりを操作をすれば、
任意の外的要因をリソース管理のきっかけにできるよ」ということの最たる例
として pingd や ipfail が存在するのかも。でもそれなら ping の送信から
して pingd がやればよいはずなので、やはり疑問は残ります。
ちょっとナゼナゼ君すぎますかね(^^;。本家の ML で聞けばいいのかも知れま
せんが、こみ入った話なので英語に自信がなく…;)。これが分からないと運用
に支障が出るという話でもないので、あれこれ考えながら使っていきたいと思
います。
どうもありがとうございます(_ _)。
P.S.
また crm_mon ネタですが、pingd の更新対象属性 (-a) をデフォルトである
"pingd" とした場合、crm_mon -f の failcount のところに "pingd=100" の
ように現在のスコアが表示されますね。pingd -a default_ping_set としてい
た時には表示されなかったのでなぜかと思ったら、crm_mon のソースで
"pingd" がハードコードされていました:)。