Resize to the same host leaves original Representor plugged to br-int
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=
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 emulator version 2.12.0
$ virsh --version
4.5.0
Neutron+OVS HW Offload
Deployment from Master (Nova: caa37cf099933c5
tags: | added: resize |
tags: | added: libvirt |
Changed in nova: | |
status: | New → Triaged |
importance: | Undecided → Medium |
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/ 2529ddfbe7940e9 0548175d6e20323 83c38cda8f/ nova/virt/ libvirt/ driver. py#L1262