第9章 高度な設定
本章では Pacemaker で対応している高度なリソースタイプと高度な設定機能を説明します。
9.1. リソースのクローン
リソースが複数のノードでアクティブになるよう、リソースをクローンすることができます。たとえば、ノードの分散のために、クローンとなるリソースを使用して、クラスター全体に分散させる IP リソースのインスタンスを複数設定できます。リソースエージェントが対応していれば、任意のリソースのクローンを作成できます。クローンは、1 つのリソースまたは 1 つのリソースグループで構成されます。
注記
同時に複数のノードでアクティブにできるリソースのみがクローンに適しています。たとえば、共有メモリーデバイスから
ext4
などの非クラスター化ファイルシステムをマウントする Filesystem
リソースのクローンは作成しないでください。ext4
パーティションはクラスターを認識しないため、このファイルシステムは同時に複数のノードから発生する読み取り/書き込み操作には適していません。
9.1.1. クローンリソースの作成と削除
リソースの作成と、そのリソースのクローン作成を同時に行う場合は、次のコマンドを使用します。
pcs resource create resource_id standard:provider:type|type [resource options] \ clone [meta clone_options]
クローンの名前は
resource_id-clone
になります。
1 つのコマンドで、リソースグループの作成と、リソースグループのクローン作成の両方を行うことはできません。
作成済みリソースまたはリソースグループのクローンを作成する場合は、次のコマンドを実行します。
pcs resource clone resource_id | group_name [clone_options]...
クローンの名前は、
resource_id-clone
または group_name-clone
になります。
注記
リソース設定の変更が必要なのは、1 つのノードのみです。
注記
制約を設定する場合は、グループ名またはクローン名を必ず使用します。
リソースのクローンを作成すると、そのクローンの名前は、リソース名に
-clone
を付けた名前になります。次のコマンドは、webfarm という名前のタイプ apache
のリソースと、 webfarm
-clone
という名前のそのリソースのクローンを作成します。
# pcs resource create webfarm apache clone
注記
別のクローンの後に順序付けされるリソースまたはリソースグループのクローンを作成する場合は、ほとんどの場合
interleave=true
オプションを設定する必要があります。これにより、依存されているクローンが同じノードで停止または開始した時に、依存しているクローンのコピーを停止または開始できるようになります。このオプションを設定しない場合は、次のようになります。クローンリソース B がクローンリソース A に依存していると、ノードがクラスターから離れてから戻ってきてから、そのノードでリソース A が起動すると、リソース B の全コピーが、全ノードで再起動します。これは、依存するクローンリソースに interleave
オプションが設定されていない場合、そのリソースのすべてのインスタンスは、そのリソースの実行中のインスタンスに依存するためです。
リソースまたはリソースグループのクローンを削除する場合は、次のコマンドを使用します。リソースやリソースグループ自体は削除されません。
pcs resource unclone resource_id | group_name
リソースオプションの詳細は、「リソースの作成」 を参照してください。
表9.1「リソースのクローンオプション」 には、クローンのリソースに指定できるオプションを示します。
フィールド | 説明 |
---|---|
priority, target-role, is-managed
|
表6.3「リソースのメタオプション」 に従って、クローンされたリソースから継承されるオプション。
|
clone-max
| |
clone-node-max
| |
notify
| |
globally-unique
|
クローンの各コピーで異なる機能を実行させるかどうか。使用できる値は
false 、true です。
このオプションの値が
false の場合、これらのリソースは実行中のすべての場所で同じように動作するため、マシンごとにアクティブなクローンのコピーは 1 つだけです。
このオプションの値が
true の場合、あるマシンで実行しているクローンのコピーは、そのインスタンスが別のノードで実行されているか、同じノード上で実行されているかに関係なく、別のインスタンスと同等ではありません。clone-node-max の値が 1 より大きい場合、デフォルト値は true です。そうでない場合は、デフォルト値は false です。
|
ordered
| |
interleave
| |
clone-min
|
値を指定すると、
interleave オプションが true に設定されていても、元のクローンの後に順序付けされたクローンは、元のクローンで指定された数のインスタンスが実行されるまで起動できません。
|
9.1.2. 制約のクローン作成
ほとんどの場合、アクティブなクラスターノードに対するクローンのコピーは 1 つです。ただし、リソースクローンの
clone-max
には、クラスター内のノードの合計数より小さい値に設定できます。この場合は、リソースの場所の制約を使用して、クラスターが優先的にコピーを割り当てるノードを指定できます。クローンの ID を使用する点以外、制約は通常のリソースの場合と全く変わらずクローンに記述されます。
次のコマンドは、クラスターがリソースクローン
webfarm-clone
を node1
に優先的に割り当てる場所の制約を作成します。
# pcs constraint location webfarm-clone prefers node1
順序制約の動作はクローンでは若干異なります。以下の例では、
interleave
クローンオプションがデフォルトの false
のままであるため、起動する必要がある webfarm-clone
のすべてのインスタンスが完了するまで、webfarm-stats
のインスタンスは起動しません。webfarm-clone
のコピーを開始できない場合にのみ、webfarm-stats
がアクティブではなくなります。さらに、webfarm-clone
は、webfarm-stats
が停止するのを待ってから、それ自体を停止します。
# pcs constraint order start webfarm-clone then webfarm-stats
通常のリソース (またはリソースグループ) とクローンのコロケーションは、リソースを、クローンのアクティブコピーを持つ任意のマシンで実行できることを意味します。どのコピーが実行しているマシンでそのリソースを実行させるかはクローンが実行している場所とそのリソース自体の場所の優先度に応じて選択されます。
クローン間のコロケーションも可能です。この場合、クローンに対して許可できる場所は、そのクローンが実行中のノード (または実行するノード) に限定されます。割り当ては通常通り行われます。
次のコマンドは、コロケーション制約を作成し、リソース
webfarm-stats
が webfarm-clone
のアクティブなコピーと同じノードで実行されるようにします。
# pcs constraint colocation add webfarm-stats with webfarm-clone
9.1.3. 粘着性のクローン作成
安定性のある割り当てパターンにするためクローンはデフォルトで若干の粘着性を備えています。
resource-stickiness
の値を指定しないと、クローンは 1 の値を使用します。値を小さくすることで他のリソースのスコア計算への阻害を最小限に抑えながら、Pacemaker によるクラスター内の不要なコピーの移動を阻止することができます。