7.5. 替换 Compute 节点
当一个 Compute 节点出现问题时,您可以使用一个正常的节点替换它。使用以下步骤替换 Compute 节点:
- 迁移 Compute 节点的工作负载
- 关闭当前的 Compute 节点
- 把 Compute 节点从 Overcloud 中删除
- 使用一个新的 Compute 节点来扩展 Overcloud
这个过程确保了替换节点的操作不会影响到任何虚拟机的可用性。
过程 7.1. 设置密钥
所有 Compute 节点都需要一个共享的 SSH 密钥,从而使每个主机的
nova 用户都可以在迁移的过程中访问这些节点。使用以下步骤在每个 Compute 节点上设置一个 SSH 密钥对。
- 创建一个 SSH 密钥:
ssh-keygen -t rsa -f nova_id_rsa
$ ssh-keygen -t rsa -f nova_id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 把 SSH 密钥复制到每个 Compute 节点上的
nova用户的家目录中。 - 以
nova用户登录到每个 Compute 节点,运行以下命令来设置密钥:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
过程 7.2. 从 Compute 节点上迁移虚拟机
- 从 director 上 source
overcloudrc,并获得当前的 Nova 服务列表:source ~stack/overcloudrc nova service-list
$ source ~stack/overcloudrc $ nova service-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在要迁移的节点上禁用
nova-compute服务。nova service-disable [service-id] nova-compute
$ nova service-disable [service-id] nova-computeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会防止新的虚拟机在它上面运行。 - 开始把虚拟机从节点上迁移的过程:
nova host-servers-migrate [service-id]
# nova host-servers-migrate [service-id]Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用以下命令可以查看迁移过程的当前状态:
nova migration-list
# nova migration-listCopy 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 的 Compute 节点上删除(禁用)运行的服务:
nova service-delete [service-id]
# nova service-delete [service-id]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,您可以重启或关闭节点(使用 Ironic API);或把它从 overcloud 环境中删除。
过程 7.3. 从 Overcloud 中删除 Compute 节点
- 根据 第 7.4 节 “从 Overcloud 中删除节点” 中的介绍进行操作。
过程 7.4. 使用一个新的 Compute 节点来扩展 Overcloud
- 根据 第 7.3 节 “扩展 Overcloud” 中的介绍进行操作。