Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
第8章 高度なリソースタイプ
本章では Pacemaker で対応している高度なリソースタイプについて説明しています。
8.1. リソースのクローン
リソースのクローンを作成することでそのリソースを複数のノードで実行することができます。たとえば、クローンのリソースを使って複数の IP インスタンスを設定しクラスターノード全体の負荷を分散します。リソースエージェントで対応しているリソースはすべてクローン作成が可能です。クローンとは 1 リソースまたは 1 リソースグループで構成されます。
注記
クローンに適しているのは同時に複数のノードで実行することができるリソースのみです。たとえば、共有ストレージデバイスから
ext4
などのクラスター化していないファイルシステムをマウントする Filesystem
リソースなどのクローンは作成しないでください。ext4
パーティションはクラスターを認識しないため、同時に複数のノードから繰り返し行われる読み取りや書き込み操作には適していません。
8.1.1. クローンリソースの作成と削除
リソースの作成とそのリソースのクローン作成を同時に行う場合は次のコマンドを使用します。
pcs resource create resource_id standard:provider:type|type [resource options] \ --clone [meta clone_options]
クローンの名前は
resource_id-clone
になります。
リソースグループの作成とそのリソースグループのクローン作成は一つのコマンドではできません。
作成済みリソースまたはリソースグループのクローンは次のコマンドで作成できます。
pcs resource clone resource_id | group_name [clone_options]...
クローンの名前は
resource_id-clone
または group_name-clone
になります。
注記
リソース設定の変更が必要なのは一つのノードのみです。
注記
制約を設定する場合はグループ名またはクローン名を必ず使用します。
リソースのクローンを作成すると、その名前はリソース名に
-clone
を付けた名前が付けられます。次のコマンドではタイプが apache
の webfarm
というリソースとそのクローンとして webfarm-clone
というリソースを作成します。
# pcs resource create webfarm apache clone
リソースまたはリソースグループのクローンを削除する場合は次のコマンドを使用します。リソースやリソースグループ自体は削除されません。
pcs resource unclone resource_id | group_name
リソースオプションについては 「リソースの作成」 を参照してください。
クローンのリソースに指定できるオプションを 表8.1「クローンのリソース用オプション」 に示します。
表8.1 クローンのリソース用オプション
フィールド | 説明 |
---|---|
priority, target-role, is-managed
|
クローン元のリソースから継承されるオプション、表5.3「リソースのメタオプション」 を参照
|
clone-max
| |
clone-node-max
| |
notify
| |
globally-unique
|
各クローンのコピーに異なる機能を行わせるかどうか、使用できる値:
false 、true
このオプションの値が
false の場合はリソースが実行しているいずれのノードであってもすべて同じ動作を行うため、1 台のマシンごと実行できるクローンのコピーは 1 つ
このオプションの値が
true の場合は任意のマシンで実行中のクローンのコピーは別のマシンまたは同じマシンで実行している他のコピーとは同じにならない、clone-node-max の値が「1」より大きい場合にはデフォルト値は true になり、これ以外の場合は false がデフォルト値になる
|
ordered
| |
interleave
|
8.1.2. 制約のクローン作成
ほとんどの場合、アクティブなクラスターノードに対してクローンのコピーはひとつです。ただし、
clone-max
にはクラスター内のノード合計数より小さい数をリソースのクローン数の値として設定することができます。この場合、リソースの場所制約を付けたコピーを優先的に割り当てるノードを示すことができます。クローンの ID を使用する点以外、制約は通常のリソースの場合と全く変わらずクローンに記述されます。
次のコマンドでは場所の制約を作成し、リソースのクローン
webfarm-clone
が node1
に優先的に割り当てられるようにしています。
# pcs constraint location webfarm-clone prefers node1
順序の制約の動作はクローンの場合、若干異なります。以下の例では、
webfarm-stats
は先に起動すべき webfarm-clone
のコピーがすべて起動完了するのを待ってから起動します。起動できる 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
8.1.3. 粘着性のクローン作成
安定性のある割り当てパターンにするためクローンはデフォルトで若干の粘着性を備えています。
resource-stickiness
に値を与えないとクローンは 1 の値を使用します。値を小さくすることで他のリソースのスコア計算への阻害を最小限に抑えながら、Pacemaker によるクラスターノード内での不必要なコピーの移動を適切に阻止することができます。