OVS drops RARP packets by QEMU upon live-migration - VM temporarily disconnected

asked 2015-01-26 02:01:00 -0500

liazkam gravatar image

When live-migrating a VM the QEMU send 5 RARP packets in order to allow re-learning of the new location of the VM's MAC address. However the VIF creation scheme between nova-compute and neutron-ovs-agent drops these RARPs: 1. nova creates a port on OVS but without the internal tagging. 2. At this stage all the packets that come out from the VM, or QEMU process it runs in, will be dropped. 3. The QEMU sends five RARP packets in order to allow MAC learning. These packets are dropped as described in #2. 4. In the meanwhile neutron-ovs-agent loops every POLLING_INTERVAL and scans for new ports. Once it detects a new port is added. it will read the properties of the new port, and assign the correct internal tag, that will allow connection of the VM.

The flow above suggests that: 1. RARP packets are dropped, so MAC learning takes much longer and depends on internal traffic and advertising by the VM. 2. VM is disconnected from the network for a mean period of POLLING_INTERVAL/2

Is there any way to make the internal tagging by ovs-agent more deterministic?

As a reference I submitted a bug to neutron: https://bugs.launchpad.net/neutron/+bug/1414559 (https://bugs.launchpad.net/neutron/+b...)

edit retag flag offensive close merge delete