Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第 13 章 重新引导节点
某些情况要求在 undercloud 和 overcloud 中重新引导节点。以下流程介绍了重新引导不同节点类型的方法。请注意以下几点:
- 如果重新引导一个角色中的所有节点,建议单独重新引导各节点。这有助于在重新引导期间保持该角色的服务。
- 如果在您的 OpenStack 平台环境中重新引导所有节点,请按照以下列表给出的顺序进行重新引导:
建议的节点重新引导顺序
- 重新引导 director
- 重新引导 Controller 节点和其他可组合节点
- 重新引导 Ceph Storage 节点
- 重新引导 Compute 节点
13.1. 重新引导 undercloud 节点
以下操作过程旨在重新引导 undercloud 节点。
步骤
-
以
stack
用户的身份登录 undercloud。 重新引导 undercloud:
$ sudo reboot
- 稍等片刻,直到节点启动。
13.2. 重新引导 Controller 节点和可组合节点
以下操作过程旨在基于可组合角色重新引导 Controller 节点和独立节点,其中不包括 Compute 节点和 Ceph Storage 节点。
步骤
选择要重新引导的节点。登录这个节点并停止集群,然后重新引导。
[heat-admin@overcloud-controller-0 ~]$ sudo pcs cluster stop
重新引导节点:
[heat-admin@overcloud-controller-0 ~]$ sudo reboot
- 稍等片刻,直到节点启动。
重新启用该节点的集群:
[heat-admin@overcloud-controller-0 ~]$ sudo pcs cluster start
登录该节点并检查各项服务。例如:
如果该节点使用 Pacemaker 服务,请检查该节点是否已重新加入集群:
[heat-admin@overcloud-controller-0 ~]$ sudo pcs status
如果该节点使用 Systemd 服务,请检查是否所有服务都已启用:
[heat-admin@overcloud-controller-0 ~]$ sudo systemctl status
13.3. 重新引导 Ceph Storage (OSD) 集群
以下操作过程旨在重新引导一个由 Ceph Storage (OSD) 节点构成的集群。
步骤
登录到 Ceph MON 或 Controller 节点,然后暂时禁用 Ceph 存储集群重新平衡:
$ sudo ceph osd set noout $ sudo ceph osd set norebalance
- 选择要重新引导的首个 Ceph Storage 节点,然后登录该节点。
重新引导节点:
$ sudo reboot
- 稍等片刻,直到节点启动。
登录到节点,并检查集群的状态:
$ sudo ceph -s
确认
pgmap
报告的所有pgs
的状态是否都正常 (active+clean
)。- 注销节点,重新引导下一个节点,并检查其状态。重复此流程,直到您已重新引导所有 Ceph 存储节点。
完成之后,登录 Ceph MON 或 Controller 节点,然后重新启用集群重新平衡:
$ sudo ceph osd unset noout $ sudo ceph osd unset norebalance
执行最后的状态检查,确认集群报告
HEALTH_OK
:$ sudo ceph status
13.4. 重新引导 Compute 节点
以下操作过程旨在重新引导 Compute 节点。为确保最大限度地缩短 OpenStack 平台环境中的实例停机时间,这个操作过程还提供了有关从选定 Compute 节点迁移实例的说明。其中会涉及以下工作流:
- 选择要重新引导的 Compute 节点,然后将其禁用以确保其不会置备新实例
- 将实例迁移到另一个 Compute 节点中
- 重新引导空白 Compute 节点,然后将其禁用
步骤
-
以
stack
用户的身份登录 undercloud。 列出所有的 Compute 节点及其 UUID:
$ source ~/stackrc (undercloud) $ openstack server list --name compute
识别要重新引导的 Compute 节点的 UUID。
从 undercloud 中选择一个 Compute 节点,然后将其禁用:
$ source ~/overcloudrc (overcloud) $ openstack compute service list (overcloud) $ openstack compute service set [hostname] nova-compute --disable
列出 Compute 节点上的所有实例:
(overcloud) $ openstack server list --host [hostname] --all-projects
使用以下命令之一迁移实例:
将实例迁移至您选择的特定主机:
(overcloud) $ openstack server migrate [instance-id] --live [target-host]--wait
让
nova-scheduler
自动选择目标主机:(overcloud) $ nova live-migration [instance-id]
一次性实时迁移所有实例:
$ nova host-evacuate-live [hostname]
注意nova
命令可能会引发一些弃用警告,这些警告信息可以被安全忽略。
- 稍等片刻,直至迁移完成。
确认迁移成功完成:
(overcloud) $ openstack server list --host [hostname] --all-projects
- 继续迁移实例,直到所选 Compute 节点中不剩任何实例。
登录到 Compute 节点并重新引导该节点:
[heat-admin@overcloud-compute-0 ~]$ sudo reboot
- 稍等片刻,直到节点启动。
重新启用 Compute 节点:
$ source ~/overcloudrc (overcloud) $ openstack compute service set [hostname] nova-compute --enable
确认是否已启用 Compute 节点:
(overcloud) $ openstack compute service list