xen 启动虚拟机后,domain0 可以看到虚拟网卡设备,但是有几种显示 tapx.y , vifx.y 或者 vifx.y-emu .
在我的实验里,同样的配置,如 vif = ["type=ioemu, bridge=virbr0, mac=00:16:3e:eb:ca:65"] , 在 xen4.1 和 xen4.2 的显示是不同的,
xen4.2 启动hvm guest 的情况:ifconfig出现两个接口,vif1.0 这个实际发现没有使用,vif1.0-emu 这个是发挥作用的
xen4.2 启动hvm guest 的情况:
========
wiki.xen.org 的说明, vifx.y 是有pv驱动的情况(pv模式,或者hvm模式但使用 pv驱动) , tapx.y 是hvm模式使用 qemu emulated 网卡的显示
What's the difference between vifX.Y and tapX.Y network interfaces in dom0?
vifX.Y network interfaces are used with domUs (VMs) using paravirtualized network drivers, which means for pure PV domUs or for Xen HVM guests with paravirtualized PVHVM drivers in use. tapX.Y interfaces are used for HVM guests which are using emulated virtual NICs (Intel E1000, Realtek RTL8139, NE2k).
vifX.Y interfaces are created by the xen-netback backend driver in dom0 kernel. The frontend driver xen-netfront runs in the kernel of each VM.
There's exactly one vif/tap interface per virtual NIC in the VM. "X" means the domain ID, and "Y" is the number of the virtual NIC. So if you have a domU with ID 5 with 3 virtual NICs (eth0, eth1, eth2), the corresponding VIF interfaces in dom0 would be vif5.0, vif5.1, vif5.2.
xen4.3 doc 有下面的介绍, 如果是qemu emulated 接口则有后缀 -emu , 否则就是 vifx.y, 其中 x 是 domid, y是 devid
vifname
Specifies the backend device name for the virtual device.
If the domain is an HVM domain then the associated emulated (tap) device will have a "-emu" suffice added.
The default name for the virtual device is vifDOMID.DEVID
where DOMID
is the guest domain ID and DEVID
is the device number. Likewise the default tap name is vifDOMID.DEVID-emu
.
结论:如果使用的是 xen4.2 及以上版本,则pv(包括pvhvm)驱动对应网卡显示为 vifDOMID.DEVID, 如果是hvm emulated 驱动,则显示 vifDOMID.DEVID-emu