如何将正在运行的KVM(具有完整磁盘副本)迁移到另一个节点?

我正在KVM上进行testing,我想看看是否可以进行热迁移,我的意思是虚拟机在迁移过程中不会停止运行(但几秒钟的冻结是可以的)。 我使用一个小群集来testing:kvm1,kvm2和kvmnfs。

  • kvm1和kvm2运行虚拟机
  • kvmnfs是一个NFS服务器,它安装在kvm1和kvm2上的/ KVM上

为了将虚拟机(实际上只是RAM)从kvm1迁移到kvm2,我在kvm1上运行了相同的kvm命令(with -incoming tcp:0:4444),然后我使用“migrate -d tcp:kvm2:4444” :它工作得很好,因为VM文件对于两台机器都是通用的。

现在,我不想将kvm1到kvm2的本地VM文件(不再是NFS)完全迁移(RAM +磁盘)。 我尝试在kvm2上创build一个空文件,并使用相同的kvm命令行+“-incoming …”)。 然后在kvm1上使用“migrate -d tcp:kvm2:4444”:它复制所有内容,然后…虚拟机失败(任何I / O磁盘出现I / O错误)! 而我的虚拟机文件kvm2,我用touch创build的,仍然是0字节的大小。

我究竟做错了什么 ? 在kvm2上使用的确切命令是什么? 在监视模式下启动kvm1的命令是什么?

不可能。 您可以拥有集中式存储(集群FS + SAN / DAS或NFS),并且映像可以通过两台主机访问,也可以使映像与drbd

//复制为答案

另外:你可以编写脚本,通过挂接guest到RAM,将映像映射到另一个主机上,对memstate进行操作,然后恢复虚拟机。 但停机时间将会与停止虚拟机相当,将其复制并重新启动