14.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"
无论节点是否可访问,都可运行该命令。
overcloud 数据库必须在替换过程中继续运行。为了确保 Pacemaker 不会在此过程中停止 Galera,可选择一个运行中的 Controller 节点,然后使用该 Controller 节点的 IP 地址在 undercloud 上运行以下命令:
(undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs resource unmanage galera-bundle"