Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第 11 章 重新引导节点
某些情况要求在 undercloud 和 overcloud 中重新引导节点。以下流程介绍了重新引导不同节点类型的方法。请注意以下几点:
- 如果重新引导一个角色中的所有节点,建议单独重新引导各节点。这有助于在重新引导期间保持该角色的服务。
- 如果在您的 OpenStack Platform 环境中重新引导所有节点,请按照以下列表给出的顺序进行重新引导:
建议的节点重新引导顺序
- 重新引导 director
- 重新引导 Controller 节点
- 重新引导 Ceph Storage 节点
- 重新引导 Compute 节点
- 重新引导 Object Storage 节点
11.1. 重新引导 Director
要重新引导 director 节点,请遵循此流程:
重新引导节点:
$ sudo reboot
- 稍等片刻,直到节点启动。
检查所有服务的状态:
$ sudo systemctl list-units "openstack*" "neutron*" "openvswitch*"
注意重新引导之后,
openstack-nova-compute
可能大约需要 10 分钟的时间才能生效。确认 overcloud 及其节点是否存在:
$ source ~/stackrc $ openstack server list $ openstack baremetal node list $ openstack stack list
11.2. 重新引导 Controller 节点
要重新引导 Controller 节点,请遵循此流程:
选择要重新引导的节点。登录到该节点,并重新引导:
[heat-admin@overcloud-controller-0 ~]$ sudo reboot
集群中剩余的 Controller 节点在重新引导期间保持高可用性服务。
- 稍等片刻,直到节点启动。
登录到节点,并检查集群的状态:
[heat-admin@overcloud-controller-0 ~]$ sudo pcs status
该节点重新加入到集群中。
注意重新引导之后,如果有服务失败,请运行 sudo
pcs resource cleanup
清除错误,并将各资源的状态设置为Started
。如果错误继续存在,请联系红帽获取指导和帮助。确认 Controller 节点上的所有容器都已激活:
[heat-admin@overcloud-controller-0 ~]$ sudo docker ps
- 注销节点,选择下一个要重新引导的 Controller 节点,然后重复此流程,直至您已重新引导所有 Controller 节点。
11.3. 重新引导 Ceph Storage 节点
要重新引导 Ceph Storage 节点,请遵循此流程:
登录到 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
11.4. 重新引导 Compute 节点
单独重新引导各 Compute 节点,确保您的 OpenStack Platform 环境中实例出现停机的时间为零。此操作涉及以下工作流:
- 选择要重新引导的 Compute 节点
- 将其实例迁移到另一个 Compute 节点中
- 重新引导空白 Compute 节点
列出所有的 Compute 节点及其 UUID:
$ source ~/stackrc (undercloud) $ openstack server list --name compute
选择要重新引导的 Compute 节点,然后先按照以下流程迁移其实例:
从 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 节点
登录到 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
11.5. 重新引导 Object Storage 节点
要重新引导 Object Storage 节点,请遵循此流程:
选择要重新引导的 Object Storage 节点。登录到节点,然后重新引导:
[heat-admin@overcloud-objectstorage-0 ~]$ sudo reboot
- 稍等片刻,直到节点启动。
登录到节点并检查容器的状态:
[heat-admin@overcloud-objectstorage-0 ~]$ sudo docker ps
- 从节点中登出,然后对下一个 Object Storage 节点重复此流程。