Openstack:nova migrate 和 nova evacuate 有什么区别?

G. *_*am. 4 migration openstack openstack-nova

关于自由,我一直在寻找一种从所有虚拟机中“清空”管理程序的方法。在nova client docs 中,我发现了以下与此相关的命令:

  • nova evacuate : 从故障主机中疏散服务器。

  • nova migrate :迁移服务器。新主机将由调度程序选择

  • nova live-migration : 将正在运行的服务器迁移到新机器上。

和:

  • nova host-evacuate :从故障主机中撤离所有实例。

  • nova host-evacuate-live :将指定主机的所有实例实时迁移到其他可用主机。

  • nova host-servers-migrate :将指定主机的所有实例迁移到其他可用主机。

我可以使用第一组中的命令将服务器(又名 VM)从一个虚拟机管理程序一个一个地移动到另一个虚拟机管理程序。类似地,通过使用来自第二组的命令,以管理程序为目标,其所有服务器都被移动到其他管理程序。混乱来了。

当用于工作管理程序时,“迁移”和“撤离”命令(除了参数略有不同)之间有什么区别?

他们是在做同样的事情,还是他们在下面不同而我遗漏了什么?应该在某些情况下使用一种,而在其他情况下使用另一种吗?即使在词汇表上也说:

  • 迁移:将 VM 实例从一台主机移动到另一台主机的过程。
  • 疏散:将一个或所有虚拟机 (VM) 实例从一台主机迁移到另一台主机的过程,兼容共享存储实时迁移和块迁移。

所以,应该是类似的。但是为什么两者都存在呢?

Mic*_*ton 5

nova 帮助有点令人困惑,因为它经常使用“服务器”这个词,实际上是指“实例”,而“主机”是指“计算节点”。OpenStack 的术语在其历史上发生了变化,这里使用的一些术语是历史旧术语。

所以我尝试了一些来找出这些命令实际上做了什么。我想出的是:

在失败的计算节点上运行的命令:

  • nova evacuate重新启动在已关闭的计算节点上运行的单个实例。默认情况下,OpenStack 选择哪些计算节点将接收实例,但可以使用 选择计算节点--target-host
  • nova host-evacuate重新启动在已关闭的计算节点上运行的所有实例。默认情况下,OpenStack 选择哪些计算节点将接收实例,但可以使用 选择计算节点--target-host

    在任何一种情况下,如果计算节点实际上已启动,则疏散都会失败。

在运行的计算节点上运行的命令:

  • nova host-evacuate-live尝试将在一个计算节点上运行的所有实例实时迁移到其他计算节点。默认情况下,OpenStack 选择哪些计算节点将接收实例,但可以使用 选择计算节点--target-host
  • nova host-servers-migrate从计算节点迁移停止的实例。OpenStack 选择将接收实例的计算节点。
  • nova live-migration实时迁移计算节点上的单个实例。默认情况下,OpenStack 选择哪些计算节点将接收实例,但可以使用 选择计算节点--target-host
  • nova migrate从计算节点迁移已停止的实例。OpenStack 选择将接收实例的计算节点。

Red Hat 的 OpenStack 文档比上游文档对疏散和这些命令之间的区别有更好的解释