17.3. Controller ノードを置き換えるためのクラスター準備
古いノードを置き換える前に、Pacemaker がノード上で実行されていないことを確認してからそのノードを Pacemaker クラスターから削除する必要があります。
手順
Controller ノードの IP アドレスリストを表示するには、以下のコマンドを実行します。
(undercloud) $ openstack server list -c Name -c Networks +------------------------+-----------------------+ | Name | Networks | +------------------------+-----------------------+ | overcloud-compute-0 | ctlplane=192.168.0.44 | | overcloud-controller-0 | ctlplane=192.168.0.47 | | overcloud-controller-1 | ctlplane=192.168.0.45 | | overcloud-controller-2 | ctlplane=192.168.0.46 | +------------------------+-----------------------+
まだ古いノードにアクセスできる場合は、残りのノードのいずれかにログインし、古いノード上の Pacemaker を停止します。以下の例では、overcloud-controller-1 上の Pacemaker を停止しています。
(undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs status | grep -w Online | grep -w overcloud-controller-1" (undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs cluster stop overcloud-controller-1"
注記古いノードが物理的に利用できない、または停止している場合には、そのノードでは Pacemaker はすでに停止しているので、この操作を実施する必要はありません。
古いノード上の Pacemaker を停止したら、Pacemaker クラスターから古いノードを削除します。以下に示すコマンドの例では、
overcloud-controller-0
にログインし、overcloud-controller-1
を削除しています。(undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs cluster node remove overcloud-controller-1"
置き換えるノードにアクセスすることができない場合には (ハードウェア障害などの理由により)、
pcs
コマンドを実行する際にさらに--skip-offline
および--force
オプションを指定して、ノードをクラスターから強制的に削除します。(undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs cluster node remove overcloud-controller-1 --skip-offline --force"
Pacemaker クラスターから古いノードを削除したら、Pacemaker の既知のホストリストからノードを削除します。
(undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs host deauth overcloud-controller-1"
ノードにアクセス可能かどうかにかかわらず、このコマンドを実行することができます。
置き換え後に新しい Controller ノードで正しい STONITH フェンシングデバイスが使用されるようにするには、以下のコマンドを入力してノードから古いデバイスを削除します。
(undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs stonith delete <stonith_resource_name>"
-
<stonith_resource_name>
を、古いノードに対応する STONITH リソースの名前に置き換えます。リソース名には<resource_agent>-<host_mac>
形式が使用されます。リソースエージェントおよびホストの MAC アドレスは、fencing.yaml
ファイルのFencingConfig
セクションに記載されています。
-
オーバークラウドデータベースは、置き換え手順の実行中に稼働し続ける必要があります。この手順の実行中に Pacemaker が Galera を停止しないようにするには、実行中の Controller ノードを選択して、その Controller ノードの IP アドレスを使用して、アンダークラウドで以下のコマンドを実行します。
(undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs resource unmanage galera-bundle"