Print

CAS虚拟机迁移失败,报错null的一种可能原因

组网及说明

CAS E0710 

问题描述

某局点windows虚拟机,虚拟机在线迁移失败,报错null

过程分析

前台检查发现是数据库中的网卡与虚拟机内存中的网卡不一致,导致迁移失败。

数据库、虚拟机静态配置文件(CVK下/etc/libvirt/qemu/xxxx.xml)都存在两张网卡,但是dumpxml中(virsh dumpxml <虚机名称>)只有一张网卡。


判断问题原因为,客户在windows虚拟机内部USB管理中弹出了网络适配器,即VirtIO Ethernet Adapter。


解决方法

内部弹出的网卡,在CAS前台无法直接添加,需要后台重新添加回虚拟机。

查看虚拟机的静态xml(CVK下/etc/libvirt/qemu/xxxx.xml),使用virsh edit <虚机名称>,找到被弹出的网卡部分的配置:


新建一个xml文件,如本例中在home下新建的interface.xml。将这一部分单独拷贝出来,放置在新建的xml文件中,如下:


使用命令virsh attach-device <虚机名称> /home/interface.xml   将网卡添加回虚拟机:


此时再使用virsh dumpxml <虚机名称>,即可看到网卡被重新添加回去,虚拟机内部看网卡也已正常添加,虚拟机迁移不再报错。