neutron/tools/ovn_migration
Arnau Verdaguer 9fcf42d3d5 [OVN] Check if exists trunk ports before cleanup
While migrating from OVS to OVN one of the steps of the migration
is clean all the OVS trunk ports, this will fail if the environment
does not have any trunk ports configured.

This will do a comprovation in order to know if it's necessary
to clean them or not.

Also, since this playbook it will only clean the ovn interfaces
it is not necessary to stop the whole migration. If any error
occured while deleting any ovs interface a message will be
printed so the user can take action if necessary.

Change-Id: I6ec0b392b13daa9f64e051fb12b4b97a6c0a1730
2022-02-03 10:49:02 +01:00
..
infrared/tripleo-ovn-migration Replace cirros 0.4.0 by 0.5.2 in ovn migration create-resources.sh.j2 2021-09-28 10:51:51 +02:00
tripleo_environment [OVN] Check if exists trunk ports before cleanup 2022-02-03 10:49:02 +01:00
hosts.sample Migrate the OVN migration scripts 2020-03-31 15:35:35 +01:00
migrate-to-ovn.yml Migrate the OVN migration scripts 2020-03-31 15:35:35 +01:00
README.rst Migrate the OVN migration scripts 2020-03-31 15:35:35 +01:00

Migration from ML2/OVS to ML2/OVN

Proof-of-concept ansible script for migrating an OpenStack deployment that uses ML2/OVS to OVN.

If you have a tripleo ML2/OVS deployment then please see the folder tripleo_environment

Prerequisites:

  1. Ansible 2.2 or greater.
  2. ML2/OVS must be using the OVS firewall driver.

To use:

  1. Create an ansible inventory with the expected set of groups and variables as indicated by the hosts-sample file.

  2. Run the playbook:

    $ ansible-playbook migrate-to-ovn.yml -i hosts

Testing Status:

  • Tested on an RDO cloud on CentOS 7.3 based on Ocata.
  • The cloud had 3 controller nodes and 6 compute nodes.
  • Observed network downtime was 10 seconds.
  • The "--forks 10" option was used with ansible-playbook to ensure that commands could be run across the entire environment in parallel.

MTU:

  • If migrating an ML2/OVS deployment using VXLAN tenant networks to an OVN deployment using Geneve for tenant networks, we have an unresolved issue around MTU. The VXLAN overhead is 30 bytes. OVN with Geneve has an overhead of 38 bytes. We need the tenant networks MTU adjusted for OVN and then we need all VMs to receive the updated MTU value through DHCP before the migration can take place. For testing purposes, we've just hacked the Neutron code to indicate that the VXLAN overhead was 38 bytes instead of 30, bypassing the issue at migration time.