[Linux-ha-jp] pm_diskdの起動でエラーが発生?

Back to archive index

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

以上よろしくお願い致します。



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