Pacemaker 1.1 Configuration Explained – (11)設定の再利用

(11)設定の再利用

 

Pacemakerでは複数の箇所で設定のパーツを再利用することでXMLの設定文を簡潔にすることができ、さらに、複数の設定要素を一度に変更することが可能になります。

リソース定義の再利用

設定内容の類似したリソースを多く作りたい場合は、リソーステンプレートを定義しておくと作業が楽になります。これはプリミティブや制約条件から参照することができます。

テンプレートでリソース設定する

テンプレートを参照するプリミティブは、テンプレート中のメタ属性、インスタンス属性、utilizations属性、operationsの定義を継承します。プリミティブとテンプレートで同じ設定項目があった場合には、プリミティブの設定を優先します。

このため、テンプレートを使用する事で設定の量を減らすことができます。変更が必要になった場合には、テンプレートへ変更を行う事で、そのテンプレートを参照するすべてのリソース定義の内容へ反映する効果を持ちます。

テンプレート例:

<template id="vm-template" class="ocf" provider="heartbeat" type="Xen">
  <meta_attributes id="vm-template-meta_attributes">
    <nvpair id="vm-template-meta_attributes-allow-migrate" name="allow-migrate" value="true"/>
  </meta_attributes>
  <utilization id="vm-template-utilization">
    <nvpair id="vm-template-utilization-memory" name="memory" value="512"/>
  </utilization>
  <operations>
    <op id="vm-template-monitor-15s" interval="15s" name="monitor" timeout="60s"/>
    <op id="vm-template-start-0" interval="0" name="start" timeout="60s"/>
  </operations>
</template>

リソーステンプレートを使ったプリミティブの例:

<primitive id="vm1" template="vm-template">
  <instance_attributes id="vm1-instance_attributes">
    <nvpair id="vm1-instance_attributes-name" name="name" value="vm1"/>
    <nvpair id="vm1-instance_attributes-xmfile" name="xmfile" value="/etc/xen/shared-vm/vm1"/>
  </instance_attributes>
</primitive>

 

制約中でテンプレートを使う

以下の制約条件でリソーステンプレートを使うことができます。

  • order制約
  • colocation制約
  • rec_ticket制約

制約条件が参照しているリソーステンプレートは、そのテンプレートから派生するすべてのプリミティブを代表しています。つまりリソーステンプレートを参照しているすべてのプリミティブに対してこの制約条件が適用されます。

制約文でリソーステンプレートを参照することで、リソースセットの代替となり、クラスタ設定を簡潔にできます。

 

リソースセット中でテンプレートを使用する。

リソーステンプレートはリソースセット文中からでも参照できます。

 

ルールの再利用、オプションとオペレーションのセット

複数の制約条件で同じルールを使用したり、同じオプションやパラメータがリソースに必要になる場合があります。こうした場合にはid-refを使って簡潔に表記することができます。

このようなリソース設定は、

<rsc_location id="WebServer-connectivity" rsc="Webserver">
   <rule id="ping-prefer-rule" score-attribute="pingd" >
    <expression id="ping-prefer" attribute="pingd" operation="defined"/>
   </rule>
</rsc_location>

以下のようにすることができます。

<rsc_location id="WebDB-connectivity" rsc="WebDB">
      <rule id-ref="ping-prefer-rule"/>
</rsc_location>

重要 : クラスタはルールが存在していることを確認しています。存在しないルールを追加しようとしたり、他から参照されているルールを削除しようとするとエラーになります。

 

設定要素のタグ付け

どのような設定要素でもXMLのIDがあればタグ付けすることができます。

高レベルユーザーインターフェースに対応するための機能です。Pacemaker自体では制約文中で使用する程度です。