yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #78627
[Bug 1821089] Re: assign PCI slot for VM's NIC persistently
Stable device naming within the guest is OS dependent and strictly out of scope of nova to fix.
nova does not chose the address at which device are attached and the nova api doe not
guarentee stable nic ordering. the vm pci adress is determined by libvirt.
the device role tagging feature was developed for this usecase specifically so that vms could determin the mapping
between device that are exposed to the guest and the openstack resouce the correspond to in a hyperviors and os independent way. https://specs.openstack.org/openstack/nova-specs/specs/mitaka/approved/virt-device-role-tagging.html
** Changed in: nova
Status: New => Invalid
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1821089
Title:
assign PCI slot for VM's NIC persistently
Status in OpenStack Compute (nova):
Invalid
Bug description:
Nova doesn't care about PCI slot number where virtual NIC is attached.
As a result guests (recent Ubuntu for example) in which NIC name depends on PCI slot number rename interfaces in circumstances described below:
1. Launch VM using Ubuntu cloud image with 1 interface.
Name of the interface will be like "ens3"
$ lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:04.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:05.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:06.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon
2. Attach more interfaces (nova interface-attach).
Attached interfaces will get names like "ens7"
$ lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:04.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:05.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:06.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon
00:07.0 Ethernet controller: Red Hat, Inc Virtio network device
3. Do "nova reboot --hard" for this VM (this action regenerates XML in
Libvirt).
Interfaces "ens7" will be renamed to "ens4" since Libvirt XML for this
VM will be recreated.
lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:04.0 Ethernet controller: Red Hat, Inc Virtio network device
00:05.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:06.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:07.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon
4. Compare names of interfaces after step 2 and step 3.
Same happens after interfaces detached:
For example if VM has ens3, ens4, ens5 then detach ens4 then ens5 will be renamed to renamed on hard reboot.
Ideally I would expect from Nova to assign PCI slot number to attached
devices and keep this assignment in XML in
/var/lib/nova/instances/<instanceUUID>/libvirt.xml
OpenStack version: Newton (newer versions also affected)
hypervisor: Libvirt+KVM
networking type: Neutron with OpenVSwitch
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1821089/+subscriptions
References