Openstack:是否可以将实例从死机计算服务器迁移到活动计算服务器?

Openstack:是否可以将实例从死机计算服务器迁移到活动计算服务器?

我有一个包含 84 个 Openstack Essex 计算节点的集群,其中一个节点大约在 2 小时前决定前往峡湾,上面有 8 个正在运行的实例。

所有实例都在 NFS 共享上的 qcow2 磁盘上运行,因此磁盘映像仍然可用。

nova live-migration似乎只能将正在运行的实例从一个运行节点迁移到另一个运行节点。

我想要的是将死机实例从死机计算节点“迁移”到任何活动计算节点。实例将重新启动(并且必须在启动时进行 fsck)这一事实并不重要 - 这比完全丢失它们要好。

在我开始考虑使用 virsh 并直接入侵 nova 的 mysql 数据库之前,是否有人知道这种“死亡迁移”的工具或记录程序?

答案1

这是一个老问题,但你可以使用 nova evacuate 命令。将 vm_name 移动到 nova_compute1 节点的示例:

nova evacuate vm_name nova_compute1 
nova reboot --hard vm_name

实例将在新节点上启动。

答案2

我从来没有这样做过。我希望这个参考能帮助你恢复实例。

http://docs.openstack.org/essex/openstack-compute/admin/content/nova-disaster-recovery-process.html

答案3

在较新的 openstack 客户端中您可以使用:

openstack server evacuate $SERVER_ID

答案4

只有按照以下步骤操作,Openstack 实例迁移才会成功。

两台主机都需要为用户 nova 建立无密码 ssh 连接。

为此,我们需要在运行命令后使用 ssh-keygen 创建密钥对su nova

# usermod -s /bin/bash nova
# su nova
# ssh-keygen

密钥对将在 /var/lib/nova/.ssh 中生成

#cat <pub_key> >> /var/lib/nova/.ssh/authorized_keys
#echo 'StrictHostKeyChecking no' >> /var/lib/nova/.ssh/config

对第二台主机重复上述步骤。

将公钥(id_rsa.pub)从第一台主机复制到第二台主机,并通过运行以下命令添加到授权密钥中

#cat <pub_key> >> /var/lib/nova/.ssh/authorized_keys

将公钥(id_rsa.pub)从第二台主机复制到第一台主机,并添加到授权密钥中。授权密钥文件/var/lib/nova/.ssh/应包含来自两台主机的公钥。然后

# su nova
# ssh nova@otherhost should connect without password.

然后Openstack迁移将会起作用。

相关内容