9.2. 多状態のリソース: 複数モードのリソース

多状態リソースはクローンリソースの特殊化です。多状態リソースにより、インスタンスは Master および Slave の 2 つの操作モードのいずれかになることができます。モードの名前に特別な意味はありませんが、インスタンスの起動時に Slave 状態にならなければならない制限があります。
以下のコマンドを実行すると、リソースをマスター/スレーブクローンとして作成できます。
pcs resource create resource_id standard:provider:type|type [resource options] \
--master [meta master_options]
マスター/スレーブクローンの名前は resource_id-master になります。
また、作成済みのリソースまたはリソースグループからマスター/スレーブリソースを作成することもできます。このコマンドを使用する場合はマスター/スレーブクローンの名前を指定することができます。名前を指定しない場合は resource_id-master または group_name-master になります。
pcs resource master master/slave_name resource_id|group_name [master_options]
リソースオプションについては 「リソースの作成」 を参照してください。
表9.2「多状態リソースのプロパティー」 には、多状態リソースに指定できるオプションが記載されています。

表9.2 多状態リソースのプロパティー

フィールド説明
id
多状態リソースに付ける名前
prioritytarget-roleis-managed
clone-maxclone-node-maxnotifyglobally-uniqueorderedinterleave
master-max
How many copies of the resource can be promoted to master status; default 1.
master-node-max
How many copies of the resource can be promoted to master status on a single node; default 1.

9.2.1. 多状態リソースの監視

マスターリソースのみに監視操作を追加するには、リソースに別の監視操作を追加します。同じリソース上では各監視操作の間隔が異なるようにする必要があります。
以下の例は、ms_resource のマスターリソースに 11 秒間隔の監視操作を設定します。この監視操作は、10 秒間隔で行われるデフォルトの監視操作とは別に追加されます。
# pcs resource op add ms_resource interval=11s role=Master

9.2.2. 多状態制約

ほとんどの場合、多状態リソースにはアクティブなクラスターノードごとに 1 つのコピーがあります。そうではない場合、リソースの場所制約を使用して、クラスターが優先的にコピーを割り当てるノードを指定できます。これらの制約は、通常のリソースと同様に記述されます。
リソースの場所制約については 「場所の制約」 を参照してください。
リソースをマスターにするかスレーブにするかを指定するコロケーション制約を作成することができます。次のコマンドはリソースのコロケーション制約を作成しています。
pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]
コロケーション制約の詳細は 「リソースのコロケーション」 を参照してください。
多状態リソースが含まれる順序制約を設定する場合、リソースに指定できるアクションの 1 つがリソースのスレーブからマスターへの昇格を指定する promote です。さらに、demote を指定するとリソースをマスターからスレーブに降格できます。
順序制約を設定するコマンドを以下に示します。
pcs constraint order [action] resource_id then [action] resource_id [options]
リソースの順序制約については 「順序の制約」 を参照してください。

9.2.3. 多状態の粘着性 (Stickiness)

To achieve a stable allocation pattern, multistate resources are slightly sticky by default. If no value for resource-stickiness is provided, the multistate resource will use a value of 1. Being a small value, it causes minimal disturbance to the score calculations of other resources but is enough to prevent Pacemaker from needlessly moving copies around the cluster.