Resize to the same host leaves original Representor plugged to br-int

Bug #1819914 reported by Adrian Chiris
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Triaged
Medium
Unassigned

Bug Description

Description
===========
When using a Hardware offloaded OVS, attempting to perform a resize operation to the same host will leave the original representor port plugged to the OVS bridge (br-int)

Steps to reproduce
==================
1. Create representor port
$ openstack port create --network private --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port1
2. Create VMs using the ports created above:
openstack server create --flavor m1.tiny--image fedora24 --nic port-id=direct_port1 --availability-zone=nova:compute-1 vm1
3. Resize vm1
$ openstack server resize --flavor m1.small vm1
$ openstack server resize --confirm vm1
4. vm1 was resized, a new PCI device was allocated and its representor (eth2) plugged to OVS bridge: br-int, however the original representor (eth3) port is still attached to OVS
$ sudo ovs-dpctl show
system@ovs-system:
        lookups: hit:16694 missed:9695 lost:0
        flows: 1
        masks: hit:81980 total:1 hit/pkt:3.11
        port 0: ovs-system (internal)
        port 1: br-int (internal)
        port 2: br-enp3s0f0 (internal)
        port 3: br-ex (internal)
        port 4: enp3s0f0
        port 5: tapd5f4403d-86 (internal)
        port 6: qr-947ea2b7-da (internal)
        port 7: qg-a4baec0e-89 (internal)
        port 8: qr-2ea0d9f7-25 (internal)
        port 9: eth3
        port 10: eth2

Expected result
===============
After Resize, VM's previously used representor port should be unplugged from OVS.

Actual result
=============
VM's previously used representor port is still plugged.

Environment
===========
CentOS-7.6
Libvirt+KVM
$ /usr/libexec/qemu-kvm --version
QEMU emulator version 2.12.0
$ virsh --version
4.5.0
Neutron+OVS HW Offload
Deployment from Master (Nova: caa37cf099933c5aed02dcdb256055e18479fe13, Neutron: 513dd7f46bc9a1a7671366f0ab94ae0fccde25a1 )

Tags: libvirt resize
Revision history for this message
Adrian Chiris (adrian.chiris) wrote :

since we are resizing to the same host, during nova.compute.manager.ComputeManager.confirm_resize() virt driver does not perform the vif.unplug() operation[1].

[1] https://github.com/openstack/nova/blob/2529ddfbe7940e90548175d6e2032383c38cda8f/nova/virt/libvirt/driver.py#L1262

Matt Riedemann (mriedem)
tags: added: resize
tags: added: libvirt
Changed in nova:
status: New → Triaged
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.