Takatoshi MATSUO
matsu****@gmail*****
2012年 3月 13日 (火) 19:16:24 JST
和田さん 松尾です。 2012年3月13日17:20 和田 伸一朗 <wada.****@jp*****>: > 松尾さん > > こんにちは。 > 和田です。 > > コメントおよびご指摘ありがとうございます。 > diskdのパッチは参考にさせて頂きたいと思います。 > > diskd(リソース)の設定に関して少しよくわかってないのでご教示ください。 > >> diskd に SUCCESS という属性はなく、 >> diskd は、正常時は、normal, 異常時は ERROR になります。 > > とありますが、OCF_SUCCESSを返却していたので、SUCCESSかと > 思っていたのですが、認識が違っていたようですね。 > #pingdは矛盾していますね。。。 この辺りは分かりづらいですよね。。。 RA には、大きく分けて二つの種類があると思うとわかりやすいと思います。 diskdやpingd のような属性値変更型RAと、通常のRAです。 通常のRAは、起動・監視・停止時に、制御対象が故障するとそれをPacemakerが 検知します。 diskd, pingd は、RA起動時に監視専用のデーモンを起動します。 監視では、RAはデーモンプロセス正常性しか監視しておらず、ネットワークやディスク 故障が発生してRAの故障とはなりません。 代わりに、故障時はデーモンがPacemakerに属性値変更として通知します。 この属性値が、crm_mon -A のNode Attributesとして表示され、 通常のリソースと連携させたい場合は、このlocation設定を使って、 この属性値と連携させます。 今回のdiskd は、属性名として "diskd_set" (和田さんが設定) 、 属性値は diskd の場合、normal または ERROR となります。(ハードコーディング) ちなみに、今回設定されている ocf:pacemaker:ping RA と、Linux-HA Japan でよく紹介している設定例の ocf:pacemaker:pingd は別物なので注意してください。(pingはpingdの間違え?) ※ ping RAの方は使ったことないので詳しい動作はわかりません。 > > 各リソースの属性はどのように確認すればよいのでしょうか? > > diskdのruleは・・・変ですね。 > #pingdもよろしくはないですね。。。 > >>> rule -INFINITY: defined ping_set and ping_set lt 200 \ >>> rule -INFINITY: defined diskd_set and diskd_set eq SUCCESS > > ではなく、 > > rule -INFINITY: not_defined ping_set or ping_set lt 200 \ > rule -INFINITY: not_defined diskd_set or diskd_set eq ERROR > > とすべきなのですね。 diskdはこの設定で意図した動作になると思います。 ping は、multiplier="100" が設定されているので、ping 成功時に属性値として "100" が 設定されるはずなので、"200未満の場合(lt 200)” という条件式にすると、ping成功時も 式は TRUE なので、リソースは常に起動できないと思います。 (ping ではなく pingd RAを前提に話していますが・・・) rule -INFINITY: not_defined ping_set or ping_set lt 200 以上よろしくお願い致します。