Live Migration broken in Mitaka due to Nova Object Change

Bug #1551954 reported by Drew Thorstensen
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
nova-powervm
Fix Released
Undecided
Kyle L. Henderson

Bug Description

With the objectify-live-migrate-data blueprint the nova core now requires the conductor to send an object for migration data.

This requires a per-virt driver object to be registered in the conductor. This change impacts PowerVM because the driver (being out of tree) can not register an object on the main nova conductor.

PowerVM needs to move to a migration object model. However, even upon doing so, since that object (being out of tree) can't be registered on the main conductor it is not clear how the PowerVM driver can perform a live migration.

Revision history for this message
Drew Thorstensen (thorst) wrote :

This was discussed in the following IRC chat: http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2016-02-24.log.html

See the discussion around 15:55

Changed in nova-powervm:
assignee: nobody → Kyle L. Henderson (kyleh)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova-powervm (master)

Reviewed: https://review.openstack.org/284964
Committed: https://git.openstack.org/cgit/openstack/nova-powervm/commit/?id=cb5a4d1cb2fdf0e92d56d1878113f3db825ef83d
Submitter: Jenkins
Branch: master

commit cb5a4d1cb2fdf0e92d56d1878113f3db825ef83d
Author: Kyle L. Henderson <email address hidden>
Date: Thu Feb 25 06:42:54 2016 -0600

    Use LiveMigrateData object

    Nova now sends LiveMigrateData objects exclusively to pass data
    between the compute managers and conductor during live migration.
    Since dicts are no longer supported the conversion to objects
    must be done to continue to support live migration.

    There are multiple parts of this conversion.

    - Create a PowerVMLiveMigrateData object. This object must be
    'registered' in both the compute manager and conductor in order
    for it to be sent over the wire. It can be registered in the
    compute manager by importing it in the compute driver, but for
    conductor there is no way to dynamically load it. This forces
    the use of a unique PowerVM conductor manager for that sole
    purpose.

    - Update the live migration code to return and accept the new
    PowerVMLiveMigrateData object. As part of that conversion, it's
    no longer necessary to pass both a source and destination copy
    of the data. It's now just one object.

    - Update the volume drivers to accept the object. The drivers
    were not using the data provided in most of the object so limit
    them to just a dict of volume data they can originate and
    consume.

    Work not covered:

    - There has been limited real system testing of migration of
    VMs with attached volumes.

    - Updates to the devstack code to enable the PowerVM specific
    version of conductor.

    Partial-Bug: #1551954
    Change-Id: I58e3cd3cf83a5089399b093202d88e17cfcb2bf2

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Reviewed: https://review.openstack.org/288070
Committed: https://git.openstack.org/cgit/openstack/nova-powervm/commit/?id=c3ce18868e9af2def675c294b1e789da501cfe04
Submitter: Jenkins
Branch: master

commit c3ce18868e9af2def675c294b1e789da501cfe04
Author: Chhavi Agarwal <email address hidden>
Date: Thu Mar 3 14:03:55 2016 -0500

    Conductor changes to register nova-powervm objects

    Nova now sends the LiveMigrateData objects exclusively to
    pass data between compute managers and conductor during live
    migration. Since dicts are no longer supported the conversion
    to objects must be done to continue to support live migration.

    A previous change set added the object support to the nova-powervm
    project. This change set adds the hack (as the nova core team described
    to the PowerVM team on Feb 24th in IRC) that enables operators to use a
    custom conductor that supports the PowerVM live migrate object.

    Change-Id: I2517d543cc66696a43b2cdb160e2452653f402f1
    Closes-Bug: #1551954

Changed in nova-powervm:
status: New → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova-powervm (stable/mitaka)

Fix proposed to branch: stable/mitaka
Review: https://review.openstack.org/299952

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova-powervm (stable/mitaka)

Reviewed: https://review.openstack.org/299952
Committed: https://git.openstack.org/cgit/openstack/nova-powervm/commit/?id=cde3fee66f86d5f71d5e39a5cdf98dc443a8306a
Submitter: Jenkins
Branch: stable/mitaka

commit cde3fee66f86d5f71d5e39a5cdf98dc443a8306a
Author: Chhavi Agarwal <email address hidden>
Date: Thu Mar 3 14:03:55 2016 -0500

    Conductor changes to register nova-powervm objects

    Nova now sends the LiveMigrateData objects exclusively to
    pass data between compute managers and conductor during live
    migration. Since dicts are no longer supported the conversion
    to objects must be done to continue to support live migration.

    A previous change set added the object support to the nova-powervm
    project. This change set adds the hack (as the nova core team described
    to the PowerVM team on Feb 24th in IRC) that enables operators to use a
    custom conductor that supports the PowerVM live migrate object.

    Change-Id: I2517d543cc66696a43b2cdb160e2452653f402f1
    Closes-Bug: #1551954
    (cherry picked from commit c3ce18868e9af2def675c294b1e789da501cfe04)

tags: added: in-stable-mitaka
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.