4.3. 重新引导 Compute 节点
为确保 Red Hat OpenStack Platform 环境中 实例的停机时间最少,迁移实例工作流 概述了从您要重新引导的 Compute 节点迁移实例所需的步骤。
迁移实例工作流
- 决定是否在重新引导节点前将实例迁移到另一个 Compute 节点。
- 选择并禁用您要重新引导的 Compute 节点,使其不置备新实例。
- 将实例迁移到另一个 Compute 节点中。
- 重新引导空的 Compute 节点。
- 启用空的 Compute 节点。
先决条件
重启 Compute 节点之前,必须决定是否在节点重启过程中将实例迁移到另一个 Compute 节点。
查看在 Compute 节点间迁移虚拟机实例时可能会遇到的迁移约束列表。如需更多信息,请参阅为实例创建配置 Compute Service 中的迁移限制。
如果您无法迁移实例,则可设置以下核心模板参数以在 Compute 节点重启后控制实例的状态:
NovaResumeGuestsStateOnHostBoot
-
确定重新引导后是否将实例返回 Compute 节点上的相同状态。设为
False
时,实例保持关闭,必须手动启动。默认值为False
。 NovaResumeGuestsShutdownTimeout
重启前等待实例被关闭的时间(以秒为单位)。建议不要将此值设置为
0
。默认值为300
。有关 overcloud 参数及其用法的更多信息,请参阅 Overcloud 参数。
流程
-
以
stack
用户的身份登录 undercloud。 列出所有的 Compute 节点及其 UUID:
source ~/stackrc
$ source ~/stackrc (undercloud) $ metalsmith list | grep compute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 识别您要重新引导的 Compute 节点的 UUID。
在 overcloud 中,选择一个 Compute 节点并禁用它:
source ~/overcloudrc
$ source ~/overcloudrc (overcloud)$ openstack compute service list (overcloud)$ openstack compute service set <hostname> nova-compute --disable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<hostname
> 替换为 Compute 节点的主机名。
-
将
列出 Compute 节点上的所有实例:
openstack server list --host <hostname> --all-projects
(overcloud)$ openstack server list --host <hostname> --all-projects
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 要将实例迁移到另一个 Compute 节点,请完成以下步骤:
如果您决定将实例迁移至另一个 Compute 节点,则使用以下命令之一:
要将实例迁移到其他主机,请运行以下命令:
(overcloud) $ openstack server migrate <instance_id> --live <target_host> --wait
(overcloud) $ openstack server migrate <instance_id> --live <target_host> --wait
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<instance_id&
gt; 替换为您的实例 ID。 -
将
<target_host
> 替换为您要将实例迁移到的主机。
-
将
让
nova-scheduler
自动选择目标主机:(overcloud) $ nova live-migration <instance_id>
(overcloud) $ nova live-migration <instance_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一次性实时迁移所有实例:
nova host-evacuate-live <hostname>
$ nova host-evacuate-live <hostname>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意nova
命令可能会引发一些弃用警告,这些警告信息可以被安全忽略。
- 稍等片刻,直至迁移完成。
确认迁移成功完成:
(overcloud) $ openstack server list --host <hostname> --all-projects
(overcloud) $ openstack server list --host <hostname> --all-projects
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 继续迁移实例,直到 Compute 节点上没有剩余的实例。
登录到 Compute 节点并重新引导节点:
sudo reboot
[tripleo-admin@overcloud-compute-0 ~]$ sudo reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 稍等片刻,直到节点启动。
重新启用 Compute 节点:
source ~/overcloudrc
$ source ~/overcloudrc (overcloud) $ openstack compute service set <hostname> nova-compute --enable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认是否已启用 Compute 节点:
(overcloud) $ openstack compute service list
(overcloud) $ openstack compute service list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow