我有一个拥有84个Openstack Essex计算节点的集群,其中一个决定在大约2小时前松下峡湾,其上有8个正在运行的实例。
这些实例都在NFS共享上运行qcow2磁盘,因此磁盘映像仍然可用。
nova live-migration似乎只能将正在运行的实例从一个function节点迁移到另一个function节点。
我想要的是将死亡实例从死亡计算节点“迁移”到任何实时计算节点。 事实将被重新启动(并且将不得不在启动fsck)实际上并不重要 – 它比完全丢失它更好。
在开始处理关于virsh和hacking nova的mysql数据库直接攻击的想法之前,有没有人知道这种“死亡迁移”的任何工具或文档化的程序?
这是个老问题,但是可以用新星撤离命令。 将vm_name移动到nova_compute1节点的示例:
nova evacuate vm_name nova_compute1 nova reboot --hard vm_name
实例将在新节点上启动。
我从来没有这样做过。 我希望这个参考可以帮助你恢复实例。
http://docs.openstack.org/essex/openstack-compute/admin/content/nova-disaster-recovery-process.html
Openstack实例迁移只有在执行以下步骤后才能成功。
两台主机都需要为用户nova连接ssh而不用密码。
为此,我们需要在运行命令su nova之后用ssh-keygen创build一个密钥对
# 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 )从第二个主机id_rsa.pub到第一个主机并添加到授权密钥/var/lib/nova/.ssh/的授权密钥文件应包含来自两个主机的公钥。 然后
# su nova # ssh nova@otherhost should connect without password.
然后Openstack迁移将工作。