14.3. 为 Controller 替换准备集群

在替换旧节点前,您必须确保节点上不再运行 Pacemaker,然后将该节点从 Pacemaker 集群中删除。

步骤

  1. 获取 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 |
    +------------------------+-----------------------+
  2. 如果旧节点仍然可以连接,请登录其中一个剩余的节点,并停止旧节点上的 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 已经停止。

  3. 在旧节点上停止 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"
  4. 从 pacemaker 集群中删除旧节点后,再从 pacemaker 中的已知主机列表中删除该节点:

    (undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs host deauth overcloud-controller-1"

    无论节点是否可访问,都可运行该命令。

  5. overcloud 数据库必须在替换过程中继续运行。为了确保 Pacemaker 不会在此过程中停止 Galera,可选择一个运行中的 Controller 节点,然后使用该 Controller 节点的 IP 地址在 undercloud 上运行以下命令:

    (undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs resource unmanage galera-bundle"