Red Hat Training

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

第 13 章 重新引导节点

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

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

建议的节点重新引导顺序

  1. 重新引导 director
  2. 重新引导 Controller 节点和其他可组合节点
  3. 重新引导 Ceph Storage 节点
  4. 重新引导 Compute 节点

13.1. 重新引导 undercloud 节点

以下操作过程旨在重新引导 undercloud 节点。

步骤

  1. stack 用户的身份登录 undercloud。
  2. 重新引导 undercloud:

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

13.2. 重新引导 Controller 节点和可组合节点

以下操作过程旨在基于可组合角色重新引导 Controller 节点和独立节点,其中不包括 Compute 节点和 Ceph Storage 节点。

步骤

  1. 选择要重新引导的节点。登录这个节点并停止集群,然后重新引导。

    [heat-admin@overcloud-controller-0 ~]$ sudo pcs cluster stop
  2. 重新引导节点:

    [heat-admin@overcloud-controller-0 ~]$ sudo reboot
  3. 稍等片刻,直到节点启动。
  4. 重新启用该节点的集群:

    [heat-admin@overcloud-controller-0 ~]$ sudo pcs cluster start
  5. 登录该节点并检查各项服务。例如:

    1. 如果该节点使用 Pacemaker 服务,请检查该节点是否已重新加入集群:

      [heat-admin@overcloud-controller-0 ~]$ sudo pcs status
    2. 如果该节点使用 Systemd 服务,请检查是否所有服务都已启用:

      [heat-admin@overcloud-controller-0 ~]$ sudo systemctl status

13.3. 重新引导 Ceph Storage (OSD) 集群

以下操作过程旨在重新引导一个由 Ceph Storage (OSD) 节点构成的集群。

步骤

  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

13.4. 重新引导 Compute 节点

以下操作过程旨在重新引导 Compute 节点。为确保最大限度地缩短 OpenStack 平台环境中的实例停机时间,这个操作过程还提供了有关从选定 Compute 节点迁移实例的说明。其中会涉及以下工作流:

  • 选择要重新引导的 Compute 节点,然后将其禁用以确保其不会置备新实例
  • 将实例迁移到另一个 Compute 节点中
  • 重新引导空白 Compute 节点,然后将其禁用

步骤

  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. 使用以下命令之一迁移实例:

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

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

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

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

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

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

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

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

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

    (overcloud) $ openstack compute service list