attach-interface - unexpected action
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
Bug Description
Hello,
Not sure where to report this, or if it is a bug. However, I feel like the behaviour is not what would/should be expected.
-------
Environment:
KVM Version: root@hostname:~# virsh version
Compiled against library: libvirt 1.2.9
Using library: libvirt 1.2.9
Using API: QEMU 1.2.9
Running hypervisor: QEMU 2.1.2
uname -a: Linux hostname 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux
CPU: Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
Host Debian Version: 8.7 (Jessie)
Guest Debian Version: 8.7 (Jessie)
-------
Issue:
When adding an interface to a live VM, the position of interfaces within the VM may change post reboot.
It appears a new interface takes up the first available “pci slot”. If you have removed an interface in the past, this will be the one that is taken up.
-------
Example:
If the VM Has the following interfaces layout:
eth0 HWaddr 00:00:00:00:00:00
eth1 HWaddr 11:11:11:11:11:11
eth2 HWaddr 22:22:22:22:22:22
eth3 HWaddr 33:33:33:33:33:33
Now I delete the interface with MAC address 11:11:11:11:11:11, you now have this:
eth0 HWaddr 00:00:00:00:00:00
eth1 HWaddr 22:22:22:22:22:22
eth2 HWaddr 33:33:33:33:33:33
And then you add a new interface with MAC address 44:44:44:44:44:44, using virsh:
virsh attach-interface --domain guest --type bridge --source br3 --mac 44:44:44:44:44:44 --model e1000 --target vmeth3 --live --persistent
It will now look like this:
eth0 HWaddr 00:00:00:00:00:00
eth1 HWaddr 22:22:22:22:22:22
eth2 HWaddr 33:33:33:33:33:33
eth3 HWaddr 44:44:44:44:44:44
However, after a reboot, it will look like this:
eth0 HWaddr 00:00:00:00:00:00
eth1 HWaddr 44:44:44:44:44:44
eth2 HWaddr 22:22:22:22:22:22
eth3 HWaddr 33:33:33:33:33:33
This can be a problem, as /etc/network/
To resolve this issue, I need to edit the .xml file in the KVM machine, and edit the following lines:
<address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
Changing these into the order I want them to be loaded in, i.e. eth0, eth1, eth2…. (I know 4 are taken already and not usable by ethernet interfaces.)
-------
Thanks in advance.
Kind regards,
Aaron Doyle
Looking through old bug tickets ... Have you tried to discuss this issue with the libvirt people? They might need to have a look at your virsh commands first before one could decide whether this is a libvirt or a qemu problem...