31.2. クラスターリソースの手動による移行
クラスターの設定を無視して、強制的にリソースを現在の場所から移行させることができます。次のような 2 つの状況が考えられます。
- ノードがメンテナンスで、そのノードで実行中の全リソースを別のノードに移行する必要がある
- 個別に指定したリソースを移行する必要がある
ノードで実行中の全リソースを別のノードに移行する場合は、そのノードをスタンバイモードにします。クラスターノードをスタンバイノードにする方法については、ノードをスタンバイモードにする を参照してください。
個別に指定したリソースは、以下のいずれかの方法で移行できます。
-
pcs resource moveコマンドを使用して、リソースを現在実行中のノードから移動できます。これについては、現在のノードからのリソースの移動 で説明されています。 -
pcs resource relocate runコマンドを使用して、現在のクラスターステータス、制約、リソースの場所、およびその他の設定によって決定される優先ノードへリソースを移動できます。このコマンドの詳細は、優先ノードへのリソースの移動 を参照してください。
現在のノードからのリソースの移動
現在実行しているノードからリソースを移動するには、以下のコマンドを使用して、リソースの resource_id を定義どおりに指定します。移動するリソースを実行する移行先のノードを指定する場合は、destination_node を指定します。
# pcs resource move resource_id [destination_node] [--promoted] [--strict] [--wait[=n]]
pcs resource move コマンドを実行すると、現在実行しているノードでリソースが実行されないように、制約がリソースに追加されます。デフォルトでは、リソースを移動すると、コマンドが作成する場所の制約が自動的に削除されます。リソースの resource-stickiness 値が 0 の場合のように、制約を削除するとリソースが元のノードに戻る場合、pcs resource move コマンドは失敗します。リソースを移動し、その制約を適用したままにする場合は、pcs resource move-with-constraint を使用します。
-
pcs resource moveコマンドで--promotedパラメーターを指定すると、制約はリソースの昇格されたインスタンスにのみ適用されます。 -
pcs resource moveコマンドに--strictパラメーターを指定した場合は、コマンドで指定したリソース以外のリソースに影響を与えるとコマンドが失敗します。 任意で、
pcs resource moveコマンドに--wait[=n]パラメーターを設定し、移行先のノードでリソースが起動するまでの待機時間 (秒単位) を指定できます。待機時間がこの値を超えると、リソースが起動した場合に 0 が返され、リソースが起動しなかった場合は 1 が返されます。n を指定しない場合は、デフォルト値の 60 分になります。場所の制約の詳細は、リソースを実行するノードの決定 を参照してください。
優先ノードへのリソースの移動
フェイルオーバーや管理者の手作業によるノードの移行により、リソースが移行した後、フェイルオーバーの原因となった状況が改善されたとしても、そのリソースが必ずしも元のノードに戻るとは限りません。リソースを優先ノードへ移行するには、以下のコマンドを実行します。優先ノードは、現在のクラスター状態、制約、リソースの場所、およびその他の設定により決定され、時間とともに変更する可能性があります。
# pcs resource relocate run [resource1] [resource2] ...
リソースを指定しないと、すべてのリソースが優先ノードに移行します。
このコマンドは、リソースのスティッキネスを無視し、各リソースの優先ノードを算出します。優先ノードの算出後、リソースを優先ノードに移行する場所の制約を作成します。リソースが移行すると、制約が自動的に削除されます。pcs resource relocate run コマンドによって作成された制約をすべて削除するには、pcs resource relocate clear コマンドを入力します。リソースの現在のステータスと、resource stickiness を無視した最適なノードを表示するには、pcs resource relocate show コマンドを入力します。