8.9. 从一个 Overcloud Compute 节点中迁移虚拟机
在一些情况下,您可以在 Overcloud Compute 节点上执行维护操作。为了避免下线时间,按照以下方法把 Compute 节点上的虚拟机迁移到 Overcloud 中的另外一个 Compute 节点上。
过程 8.1. 设置 Compute 节点的 SSH 密钥
所有 Compute 节点都需要一个共享的 SSH 密钥,从而使每个主机的
nova
用户都可以在迁移的过程中访问这些节点。使用以下步骤在每个 Compute 节点上设置一个 SSH 密钥对。
- 创建一个 SSH 密钥:
ssh-keygen -t rsa -f nova_id_rsa
$ ssh-keygen -t rsa -f nova_id_rsa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 把 SSH 密钥复制到每个 Compute 节点上的
nova
用户的家目录中。 - 以
nova
用户登录到每个 Compute 节点,运行以下命令来设置密钥:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
过程 8.2. 从 Compute 节点上迁移虚拟机
- 在 director 上,source
overcloudrc
,并获得当前的 nova 服务列表:source ~/stack/overcloudrc nova service-list
$ source ~/stack/overcloudrc $ nova service-list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在要迁移的节点上禁用
nova-compute
服务。nova service-disable [hostname] nova-compute
$ nova service-disable [hostname] nova-compute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会防止新的虚拟机在它上面运行。 - 开始把虚拟机从节点上迁移实例的过程:
nova host-servers-migrate [hostname]
$ nova host-servers-migrate [hostname]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用以下命令可以查看迁移过程的当前状态:
nova migration-list
$ nova migration-list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 当每个实例的迁移过程完成后,它在 nova 中的状态将变为
VERIFY_RESIZE
。您将可以确认迁移已成功完成,或把它恢复到原来的状态。要确认进行迁移,使用以下命令:nova resize-confirm [server-name]
$ nova resize-confirm [server-name]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
这会从一个主机上迁移所有实例。现在,您就可以在没有实例下线的情况下执行维护操作。要把主机重新返回到启用的状态,运行以下命令:
nova service-enable [hostname] nova-compute
$ nova service-enable [hostname] nova-compute