Migration from monolithic v2 plugin to ML2 plugin

Overview

MidoNet monolithic v2 plugin (midonet_v2) is not supported anymore. When upgrading to Pike, a deployer needs to switch to ML2 with MidoNet mechanism driver. This document outlines the migration procedure.

Note

The procedure documented here is appropriate only when upgrading to Pike.

How to migrate

  1. Take a backup. (not strictly necessary but strongly recommended)

  2. Upgrade to Pike as usual.

    This step includes the usual DB migration via neutron-db-manage.

  3. Update neutron configuration to use ML2 plugin.

    See the following section for examples.

  4. Start neutron server.

    On the first startup, MidoNet mechanism driver automatically migrates the data in the Neutron DB from the form what MidoNet monolithic plugin recognises. This is a one-way migration. On successful migration, the message “DB Migration from MidoNet v2 to ML2 completed successfully” will be logged in the neutron server log at INFO level.

Note

The Step 3 assumes it’s the only neutron server process using the Neutron DB. If your deployment has multiple neutron servers, make sure to shut them down prior to Step 3. After verifying that the migration succeeded, you can start them. Also, make sure that they are also configured to use ML2 and midonet mechanism driver.

Neutron server configuration

Basically, you need to:

  • Change core_plugin to ml2

  • Add the ml2 group.

The midonet group is common for both of the monolithic plugin and the ML2 driver. It doesn’t need any changes.

Example before migration

[DEFAULT]
core_plugin = midonet_v2

# Alternatively you might have non-alias version.
#core_plugin = midonet.neutron.plugin_v2.MidonetPluginV2

[MIDONET]
cluster_port = 8088
cluster_ip = 192.168.137.129
client = midonet.neutron.client.api.MidonetApiClient
project_id = service
password = midonet_service_password
username = neutron
midonet_uri = http://192.168.137.129:8181/midonet-api

Example after migration

[DEFAULT]
core_plugin = ml2

[MIDONET]
cluster_port = 8088
cluster_ip = 192.168.137.129
client = midonet.neutron.client.api.MidonetApiClient
project_id = service
password = midonet_service_password
username = neutron
midonet_uri = http://192.168.137.129:8181/midonet-api

[ml2]
mechanism_drivers = midonet
type_drivers = midonet,uplink
tenant_network_types = midonet
external_network_type = midonet
extension_drivers = port_security,qos
# Or, in case you don't have qos service plugin configured.
#extension_drivers = port_security