我有一个包含 84 个 Openstack Essex 计算节点的集群,其中一个节点在大约 2 小时前决定为峡湾松树,上面有 8 个正在运行的实例。
这些实例都在 NFS 共享上的 qcow2 磁盘上运行,因此磁盘映像仍然可用。
nova live-migration
似乎只能将正在运行的实例从一个正常运行的节点迁移到另一个。
我想要的是将死实例从死计算节点“迁移”到任何活动计算节点。实例将重新启动(并且必须在启动时进行 fsck)这一事实并不重要——这比完全丢失它们要好。
在我开始考虑弄乱 virsh 并直接入侵 nova 的 mysql 数据库之前,有没有人知道这种“死亡迁移”的任何工具或文档化程序?
这是一个老问题,但是是的,你可以使用 nova evacuate 命令。将 vm_name 移动到 nova_compute1 节点的示例:
实例将在新节点上启动。
我从来没有这样做过。我希望这个参考可以帮助您恢复实例。
http://docs.openstack.org/essex/openstack-compute/admin/content/nova-disaster-recovery-process.html
在较新的 openstack 客户端中,您可以使用:
按照以下步骤,Openstack 实例迁移成功。
两台主机都需要为用户 nova 连接 ssh 而无需密码。
为此,我们需要在运行命令后使用 ssh-keygen 创建密钥对
su nova
密钥对将在 /var/lib/nova/.ssh 中生成
对第二台主机执行上述步骤。
将公钥 (id_rsa.pub) 从第一台主机复制到第二台主机,并通过运行以下命令添加到授权密钥
将公钥(
id_rsa.pub
)从第二台主机复制到第一台主机并添加到授权密钥中的授权密钥文件/var/lib/nova/.ssh/
应包含来自两台主机的公钥。然后然后 Openstack 迁移将起作用。