Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第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「リソースのクローンオプション」 には、クローンのリソースに指定できるオプションを示します。

表9.1 リソースのクローンオプション

フィールド説明
priority, target-role, is-managed
表6.3「リソースのメタオプション」 に従って、クローンされたリソースから継承されるオプション。
clone-max
起動するリソースのコピーの数。デフォルトは、クラスター内のノード数です。
clone-node-max
1 つのノードで起動できるリソースのコピー数。デフォルト値は 1 です。
notify
クローンのコピーを停止したり起動する時に、前もって、およびアクションが成功した時に、他のコピーに通知します。使用できる値は falsetrue です。デフォルト値は false です。
globally-unique
クローンの各コピーで異なる機能を実行させるかどうか。使用できる値は falsetrueです。
このオプションの値が false の場合、これらのリソースは実行中のすべての場所で同じように動作するため、マシンごとにアクティブなクローンのコピーは 1 つだけです。
このオプションの値が true の場合、あるマシンで実行しているクローンのコピーは、そのインスタンスが別のノードで実行されているか、同じノード上で実行されているかに関係なく、別のインスタンスと同等ではありません。clone-node-max の値が 1 より大きい場合、デフォルト値は true です。そうでない場合は、デフォルト値は false です。
ordered
コピーを、(並列ではなく) 連続して開始する必要があります。使用できる値は falsetrue です。デフォルト値は false です。
interleave
2 番目のクローンのすべてのインスタンスが開始または停止するまで待機せずに、2 番目のクローンの同じノードでコピーを開始または停止した直後に最初クローンのコピーが開始または停止できるよう、順序制約の動作を変更します。使用できる値は falsetrue です。デフォルト値は false です。
clone-min
値を指定すると、interleave オプションが true に設定されていても、元のクローンの後に順序付けされたクローンは、元のクローンで指定された数のインスタンスが実行されるまで起動できません。

9.1.2. 制約のクローン作成

ほとんどの場合、アクティブなクラスターノードに対するクローンのコピーは 1 つです。ただし、リソースクローンの clone-max には、クラスター内のノードの合計数より小さい値に設定できます。この場合は、リソースの場所の制約を使用して、クラスターが優先的にコピーを割り当てるノードを指定できます。クローンの ID を使用する点以外、制約は通常のリソースの場合と全く変わらずクローンに記述されます。
次のコマンドは、クラスターがリソースクローン webfarm-clonenode1 に優先的に割り当てる場所の制約を作成します。
# 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-statswebfarm-clone のアクティブなコピーと同じノードで実行されるようにします。
# pcs constraint colocation add webfarm-stats with webfarm-clone

9.1.3. 粘着性のクローン作成

安定性のある割り当てパターンにするためクローンはデフォルトで若干の粘着性を備えています。resource-stickiness の値を指定しないと、クローンは 1 の値を使用します。値を小さくすることで他のリソースのスコア計算への阻害を最小限に抑えながら、Pacemaker によるクラスター内の不要なコピーの移動を阻止することができます。