動かして理解するPacemaker ~CRM設定編~ その3


■実験3 属性値を評価する

location制約で、属性値の評価をしてみます。

CRM設定は、1つのDummyリソースをlocationで配置制約をかけただけのシンプルなものを使用します。

### Cluster Option ###
property no-quorum-policy="ignore" \
    stonith-enabled="false" \
    crmd-transition-delay="2s"

### Resource Defaults ###
rsc_defaults resource-stickiness="INFINITY" \
    migration-threshold="1"

### Primitive Configuration ###
primitive resource1 ocf:heartbeat:Dummy \
    op start interval="0s" timeout="300s" on-fail="restart" \
    op monitor interval="10s" timeout="60s" on-fail="restart" \
    op stop interval="0s" timeout="300s" on-fail="block"

### Resource Location ###
location rsc_location-1 resource1 \
    rule -INFINITY: not_defined my_attribute or my_attribute lt 100

これをPacemakerへ反映します。
ですが、以下のようにresource1は停止したままになるはずです(★部分)。

# crm_mon -rfA
~略~
Online: [ pm01 pm02 ]

Full list of resources:

resource1       (ocf::heartbeat:Dummy): Stopped ★resource1は停止したまま

Node Attributes:
* Node pm01:
    + pm02-eth1                         : up
    + pm02-eth2                         : up
* Node pm02:
    + pm01-eth1                         : up
    + pm01-eth2                         : up

Migration summary:
* Node pm01:
* Node pm02:

これはCRM設定の中の以下の部分で、「my_attribute」という属性値が存在しない場合または100以下の場合は起動できないと制約しているためです。

location rsc_location-1 resource1 \
    rule -INFINITY: not_defined my_attribute or my_attribute lt 100

resource1を起動させるには、以下のcrm_attributeコマンドで属性値を手動で定義します。
どちらのノードで実行してもかまいません。
-Nオプションで属性値を作成するノードを、-nで属性値名を、-vで値を設定します。
-lはrebootまたはforeverのいずれかで、rebootはその属性値がPacemakerの停止で属性値がクリアされることを示します。foreverはPacemaker停止後も属性値が残存します。

# crm_attribute -N pm01 -n my_attribute -v 100 -l reboot

属性値が設定されると、resource1が起動します。

# crm_mon -rfA
~略~

Online: [ pm01 pm02 ]

Full list of resources:

resource1       (ocf::heartbeat:Dummy): Started pm01 ★resource1が起動

Node Attributes:
* Node pm01:
    + my_attribute                      : 100 ★属性値が100で設定された
    + pm02-eth1                         : up
    + pm02-eth2                         : up
* Node pm02:
    + pm01-eth1                         : up
    + pm01-eth2                         : up

Migration summary:
* Node pm01:
* Node pm02:

属性値の値を10に変更してみます。

# crm_attribute -N pm01 -n my_attribute -v 10 -l reboot

resource1が停止すると思います。

# crm_mon -rfA
~略~
Online: [ pm01 pm02 ]

Full list of resources:

resource1       (ocf::heartbeat:Dummy): Stopped ★resource1が停止

Node Attributes:
* Node pm01:
    + my_attribute                      : 10 ★属性値が10に変更
    + pm02-eth1                         : up
    + pm02-eth2                         : up
* Node pm02:
    + pm01-eth1                         : up
    + pm01-eth2                         : up

Migration summary:
* Node pm01:
* Node pm02:

なお、実際には、本実験のように属性値を手動で設定、変更することは滅多になく、NW監視(ocf:pacemaker:pingd)やディスク監視(ocf:pacemaker:diskd)が内部的に使用しています。




■おわりに

3回に渡った「動かして理解するPacemaker ~CRM設定編~」は今回で終わりです。

最後まで読んでいただいた方は、例の設定ファイルはもちろん、デモ環境のCRM設定ファイルも読めるようになっていると思います。


まだまだ紹介しきれていない機能やトピックもあるので、今後も皆様のお役に立てるような情報提供を心がけていきます。
質問、リクエスト等あれば、Linux-HA Japan MLへご連絡ください。

以上です。ありがとうございました。

Pages: 1 2 3 4

Comments are closed.