2ノードのマスター/スレーブ構成でペースメーカーを使用する。
いくつかのテストを実行するために、マスターの役割をnode1からnode2に、またはその逆に切り替えたいと考えています。たとえば、現在のマスターがnode1の場合、
# crm resource migrate r0 node2
実際にリソースをnode2に移動します。次に、理想的には、
# crm resource migrate r0 node1
node1に移行します。問題はmigrate設定に行を追加して切り替えを実行することです
location cli-prefer-r0 r0 role=Started inf: node2
元に戻すには、まずその行を削除する必要があります...
マスターをあるノードから別のノードに切り替えるより良い方法はありますか?
私はこの少し古いことを知っています。しかし、だれもこれに満足に答えていないようで、問題が解決したかどうかにかかわらず、要求者は投稿しませんでした。だからここに説明があります。
実行すると:
# crm resource migrate r0 node2
cli-prefer-*
ルールが作成されます。
ここで、r0をnode1に戻したい場合は、実行しません。
# crm resource migrate r0 node1
しかし、あなたは実行します:
# crm resource unmigrate r0
umigrate
またはunmove
を使用すると、cli-prefer-*
ルールを自動的に。
このルールをクラスター構成で手動で削除しようとすると、クラスターで本当に悪いことが発生するか、少なくとも私の場合は悪いことが発生します。
1つの解決策は、それらを削除することですcli-prefer
移行を再試行する前に手動で制約を設定するか、または(非アクティブな制約が残っていることを気にしない場合は)5分のような時間を追加します。
crm resource migrate r0 node2 PT5M
5分後、ルールは無効になります(およびr0
は元に戻る可能性があります)が、引き続き表示されます。
また、2ノードクラスタでは、他のノードを指定する必要がないことにも注意してください。
ああ、喜び。
これはすべて、ターゲットノードの有無にかかわらずmigrate
コマンドを使用するかどうかで決まります。現在のCLIドキュメントからcrm resource help migrate
を介して:
宛先ノードが省略されている場合、リソースは、現在のノードで実行できないようにする制約を作成することによって移行されます。このタイプの制約を作成するには、force引数が必要です。
以前はforce
なしでも実行できました。2ノードのクラスターを実行すると(2つのノードが適切なクラスターを構成することはありませんが、ここでは回避できません)、ペースメーカーのステートメントが実行されてしまいました。 migrate
コマンドが実行されたときに、実行したノードで実行しないように明示的に指示するconfigなので、pacemakerは強制的に別のノードに移動します。
crm resource migrate
を実行した場合、ペースメーカーの構成にlocation cli-...
ステートメントが含まれることになります。このようなステートメントには2つのタイプがあり、簡単に確認できます。
crm configure show | grep -e cli-prefer -e cli-ban
深刻なビジネスでは、上記のコマンドはnagios/icinga/whateverモニタリングチェックの一部でもあるはずです。これらの手動の制約は、長期的には実行中の構成に存在してはならないからです。
再度別のノードに移行した場合、最後のノードもリソースの「実行不可能な」場所としてマークする、さらに別のそのようなステートメントで終了しました。最終的にすべてのノードがそのような方法で「移行」された場合...問題のリソースはどこからも開始されず、運が悪かったため、この質問が最初に尋ねられた理由である可能性があります。
解決策は、ターゲットノードを省略するときは常にcrm resource migrate
コマンドの後にcrm resource unmigrate
コマンドを続け、最終的に後で自分の足を撃たないようにすることでした。
ただし、常にターゲットノードを指定する場合、これはすべて問題ではありません。
crm resource migrate RESOURCE NODE
/pcs resource move RESOURCE NODE
を再実行すると、pacemaker構成内のcli-prefer...
ステートメントが調整されるため、心配する必要はありません。
したがって、crm resource migrate
/pcs resource move
は、リソースを起動できないという問題に遭遇することなく、何度でも実行できます。
特にリソースに対するこれらの手動の制約を取り除くには、次のいずれかを実行します。
crm resource unmigrate RESOURCE
crm resource clear RESOURCE
pcs resource clear RESOURCE
ただし、これは、最初に場所の制約を作成しなかった場合、リソースを最初のホストに魔法のように作成することはありません。