Wrong representor port was unplugged from OVS during cold migration
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Adrian Chiris | ||
Queens |
Fix Committed
|
Medium
|
Adrian Chiris | ||
Rocky |
Fix Committed
|
Medium
|
Adrian Chiris | ||
Stein |
Fix Committed
|
Medium
|
Adrian Chiris |
Bug Description
Description
===========
Wrong representor port was unplugged from OVS during cold migration.
This happens when VM is scheduled to use a different PCI device to target host vs.
to what PCI device it is using from source host. Nova uses new PCI device information to unplug
representor port in source compute.
Steps to reproduce
==================
1. Create representor ports
$ openstack port create --network private --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port1
$ openstack port create --network private --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port2
2. Create VMs using the ports created above:
openstack server create --flavor m1.small --image fedora24 --nic port-id=
openstack server create --flavor m1.small --image fedora24 --nic port-id=
3. Migrate VM2
$ openstack server migrate vm2
$ openstack server resize --confirm vm2
4. VM2 was migrated to compute-1, however representor port is still attached to OVS
$ sudo ovs-dpctl show
system@ovs-system:
lookups: hit:466465 missed:5411 lost:0
flows: 12
masks: hit:739146 total:2 hit/pkt:1.57
port 0: ovs-system (internal)
port 1: br-pro0.0 (internal)
port 2: br-pro0 (internal)
port 3: ens6f0
port 4: br-int (internal)
port 5: eth3
Expected result
===============
After cold migration, VM's previously used representor port should be unplugged from OVS
Actual result
=============
VM's previously used representor port is still plugged in source host. In some scenarios, wrong representor port was unplugged from source host. Thus affecting VMs that were not cold migrated.
Environment
===========
Libvirt+KVM
$ /usr/libexec/
QEMU emulator version 2.10.0
$ virsh --version
3.9.0
Neutron+OVS HW Offload
Openstack Queens openstack-
Logs & Configs
==============
1. Plug vif device using pci address 0000:81:00.5
2018-12-15 13:12:04.871 108055 DEBUG os_vif [req-cd20d9ab-
2. VM was migrated from compute-1 to compute-2. New pci device is now 0000:81:00.4
2018-12-15 13:13:58.721 108055 DEBUG os_vif [req-afd99706-
2018-12-15 13:13:58.759 108055 INFO os_vif [req-afd99706-
vif_plug_ovs used the new information passed by Nova to unplug representor port:
https:/
tags: | added: pci resize |
Fix proposed to branch: master /review. openstack. org/630978
Review: https:/