1、查看 nova-compute 迁移失败log
2018-01-16 20:44:20.362 12778 ERROR
nova.virt.libvirt.driver [req-0ca0ebd9-7cda-465a-b17e-85cc27603ae5 e35986cb7a5b46e2ab7f3941e2776373 ddcca2166db24766ad77aacbb6303f3f - - -] [instance: 31a6a6da-50dd-490f-90b4-62c91d54a2db] Live Migration failure: internal error: qemu unexpectedly closed the
monitor: 2018-01-16T12:43:52.473918Z
qemu-kvm: -chardev pty,id=charserial0,logfile=/dev/fdset/2,logappend=on: char device
redirected to /dev/pts/1 (label
charserial0)
2018-01-16T12:43:55.951735Z
qemu-kvm: virtio-net: saved image requires TUN_F_UFO support
2018-01-16T12:43:55.951769Z
qemu-kvm: Failed to load virtio-net-device:tmp
2018-01-16T12:43:55.951775Z
qemu-kvm: Failed to load virtio-net:virtio
2018-01-16T12:43:55.951781Z
qemu-kvm: error while loading
state for instance 0x0 of
device '0000:00:03.0/virtio-net'
2018-01-16T12:43:55.953751Z
qemu-kvm: warning: TSC frequency mismatch between VM (2099998 kHz)
and host (1699998 kHz),
and TSC scaling unavailable
2018-01-16T12:43:55.953905Z
qemu-kvm: warning: TSC frequency mismatch between VM (2099998 kHz)
and host (1699998 kHz),
and TSC scaling unavailable
2018-01-16T12:43:55.954026Z
qemu-kvm: warning: TSC frequency mismatch between VM (2099998 kHz)
and host (1699998 kHz),
and TSC scaling unavailable
2018-01-16T12:43:55.954115Z
qemu-
|
从以上log可以粗略看出是需要TUN_F_UFO的支持,这是什么鬼?
2、于是查看两边qemu版本,发现只有小版本号不一样,大版本号是一样的。这个竟然还会造成热迁移失败。
源主机qemu版本:qemu-kvm-ev-2.9.0-16.el7_4.8.1.x86_64
目的主机qemu版本:qemu-kvm-ev-2.9.0-16.el7_4.13.1.x86_64
3、卸载qemu ,重新安装qemu
rpm
-e qemu-kvm-common-ev qemu-kvm-ev --nodeps
rpm
-e qemu-img-ev --nodeps
rmmod
vhost_net
rmmod
vhost
rmmod
tun
rmmod
tap
yum
install qemu-kvm-common-ev-2.9.0-16.el7_4.8.1.x86_64
qemu-kvm-ev-2.9.0-16.el7_4.8.1.x86_64
|
统一为相同的版本号的qemu
4、重新热迁移,结果还是报相同的错误,这就绝望了。于是reboot重启物理机
5、重启完毕后,热迁移成功
源主机的 tun.ko 默认支持TUN_F_UFO。目的主机tun.ko没有, 这就是QEMU中止live migration的原因。 导致在热迁移时不能改变正在运行的virtio-net。
tun.ko 是从qemu中把网络包转发给tap设备的。