Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第 10 章 重新引导节点

某些情况要求在 undercloud 和 overcloud 中重新引导节点。以下流程介绍了重新引导不同节点类型的方法。请注意以下几点:

  • 如果重新引导一个角色中的所有节点,建议单独重新引导各节点。这有助于在重新引导期间保持该角色的服务。
  • 如果在您的 OpenStack Platform 环境中重新引导所有节点,请按照以下列表给出的顺序进行重新引导:

建议的节点重新引导顺序

  1. 重新引导 director
  2. 重新引导 Controller 节点
  3. 重新引导 Ceph Storage 节点
  4. 重新引导 Compute 节点
  5. 重新引导 Object Storage 节点

10.1. 重新引导 Director

要重新引导 director 节点,请遵循此流程:

  1. 重新引导节点:

    $ sudo reboot
  2. 稍等片刻,直到节点启动。

节点启动时,检查所有服务的状态:

$ sudo systemctl list-units "openstack*" "neutron*" "openvswitch*"
注意

重新引导之后,openstack-nova-compute 可能大约需要 10 分钟的时间才能生效。

确认 overcloud 及其节点是否存在:

$ source ~/stackrc
$ openstack server list
$ openstack baremetal node list
$ openstack stack list

10.2. 重新引导 Controller 节点

要重新引导 Controller 节点,请遵循此流程:

  1. 选择要重新引导的节点。登录到该节点,并重新引导:

    $ sudo reboot

    集群中剩余的 Controller 节点在重新引导期间保持高可用性服务。

  2. 稍等片刻,直到节点启动。
  3. 登录到节点,并检查集群的状态:

    $ sudo pcs status

    该节点重新加入到集群中。

    注意

    重新引导之后,如果有服务失败,请运行 sudo pcs resource cleanup 清除错误,并将各资源的状态设置为 Started。如果错误继续存在,请联系红帽获取指导和帮助。

  4. 确认 Controller 节点上的所有 systemd 服务都有效:

    $ sudo systemctl list-units "openstack*" "neutron*" "openvswitch*"
  5. 注销节点,选择下一个要重新引导的 Controller 节点,然后重复此流程,直至您已重新引导所有 Controller 节点。

10.3. 重新引导 Ceph Storage 节点

要重新引导 Ceph Storage 节点,请遵循此流程:

  1. 登录到 Ceph MON 或 Controller 节点,然后暂时禁用 Ceph 存储集群重新平衡:

    $ sudo ceph osd set noout
    $ sudo ceph osd set norebalance
  2. 选择要重新引导的首个 Ceph Storage 节点,然后登录该节点。
  3. 重新引导节点:

    $ sudo reboot
  4. 稍等片刻,直到节点启动。
  5. 登录到节点,并检查集群的状态:

    $ sudo ceph -s

    确认 pgmap 报告的所有 pgs 的状态是否都正常 (active+clean)。

  6. 注销节点,重新引导下一个节点,并检查其状态。重复此流程,直到您已重新引导所有 Ceph 存储节点。
  7. 完成之后,登录 Ceph MON 或 Controller 节点,然后重新启用集群重新平衡:

    $ sudo ceph osd unset noout
    $ sudo ceph osd unset norebalance
  8. 执行最后的状态检查,确认集群报告 HEALTH_OK

    $ sudo ceph status

10.4. 重新引导 Compute 节点

单独重新引导各 Compute 节点,确保您的 OpenStack Platform 环境中实例出现停机的时间为零。此操作涉及以下工作流:

  1. 选择要重新引导的 Compute 节点
  2. 将其实例迁移到另一个 Compute 节点中
  3. 重新引导空白 Compute 节点

列出所有的 Compute 节点及其 UUID:

$ nova list | grep "compute"

选择要重新引导的 Compute 节点,然后先按照以下流程迁移其实例:

  1. 从 undercloud 中选择要重新引导的 Compute 节点,然后将其禁用:

    $ source ~/overcloudrc
    $ openstack compute service list
    $ openstack compute service set [hostname] nova-compute --disable
  2. 列出 Compute 节点上的所有实例:

    $ openstack server list --host [hostname] --all-projects
  3. 从禁用的主机上迁移每个实例。使用以下任意一个命令:

    1. 将实例迁移至您选择的特定主机:

      $ openstack server migrate [instance-id] --live [target-host]--wait
    2. nova-scheduler 自动选择目标主机:

      $ nova live-migration [instance-id]
      注意

      nova 命令可能会引发一些弃用警告,这些警告信息可以被安全忽略。

  4. 稍等片刻,直至迁移完成。
  5. 确认实例已从 Compute 节点被迁移:

    $ openstack server list --host [hostname] --all-projects
  6. 重复此步骤,直至从 Compute 节点迁移完所有实例:
重要

有关配置和迁移实例的完整说明,请参阅???

按照以下流程,重新引导 Compute 节点

  1. 登录到 Compute 节点并重新引导该节点:

    $ sudo reboot
  2. 稍等片刻,直到节点启动。
  3. 重新启用 Compute 节点:

    $ source ~/overcloudrc
    $ openstack compute service set [hostname] nova-compute --enable
  4. 确认是否已启用 Compute 节点:

    $ openstack compute service list

10.5. 重新引导 Object Storage 节点

要重新引导 Object Storage 节点,请遵循此流程:

  1. 选择要重新引导的 Object Storage 节点。登录到节点,然后重新引导:

    $ sudo reboot
  2. 稍等片刻,直到节点启动。
  3. 登录到节点并检查其状态:

    $ sudo systemctl list-units "openstack-swift*"
  4. 从节点中登出,然后对下一个 Object Storage 节点重复此流程。