18.5. 重新引导 Compute 节点

完成以下步骤以重新引导 Compute 节点。为确保 Red Hat OpenStack Platform 环境中实例的停机时间最少,此步骤还包括有关从您要重新引导的 Compute 节点迁移实例的说明。其中会涉及以下工作流:

  • 决定是否在重新引导节点前将实例迁移到另一个 Compute 节点。
  • 选择并禁用您要重新引导的 Compute 节点,使其不置备新实例。
  • 将实例迁移到另一个 Compute 节点中。
  • 重新引导空的 Compute 节点。
  • 启用空的 Compute 节点。

先决条件

重新引导 Compute 节点之前,必须决定是否在节点重新引导过程中将实例迁移到另一个 Compute 节点。

如果出于某种原因,您无法或不想迁移实例,则可设置以下核心模板参数以在 Compute 节点重新引导后控制实例的状态:

NovaResumeGuestsStateOnHostBoot
确定重新引导后是否将实例返回 Compute 节点上的相同状态。设为 False 时,实例保持关闭,必须手动启动。默认值为:False
NovaResumeGuestsShutdownTimeout
重启前等待实例被关闭的时间(以秒为单位)。建议不要将此值设置为 0。默认值为:300

有关 overcloud 参数及其用法的更多信息,请参见 Overcloud 参数

步骤

  1. stack 用户的身份登录 undercloud。
  2. 列出所有的 Compute 节点及其 UUID:

    $ source ~/stackrc
    (undercloud) $ openstack server list --name compute

    识别您要重新引导的 Compute 节点的 UUID。

  3. 从 undercloud 中,选择 Compute 节点。禁用该节点:

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

    (overcloud) $ openstack server list --host [hostname] --all-projects
  5. 如果您决定不迁移实例,则跳至此步骤
  6. 如果您决定将实例迁移至另一个 Compute 节点,则使用以下命令之一:

    • 将实例迁移至其他主机:

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

      (overcloud) $ nova live-migration [instance-id]
    • 一次性实时迁移所有实例:

      $ nova host-evacuate-live [hostname]
      注意

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

  7. 稍等片刻,直至迁移完成。
  8. 确认迁移成功完成:

    (overcloud) $ openstack server list --host [hostname] --all-projects
  9. 继续迁移实例,直到所选 Compute 节点中不剩任何实例。
  10. 登录到 Compute 节点并重新引导节点:

    [heat-admin@overcloud-compute-0 ~]$ sudo reboot
  11. 稍等片刻,直到节点启动。
  12. 重新启用 Compute 节点:

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

    (overcloud) $ openstack compute service list