Comment 10 for bug 1712008

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/496031
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=5d3a11b9c9a6a5aecd46ad7ecc635215184d930e
Submitter: Jenkins
Branch: master

commit 5d3a11b9c9a6a5aecd46ad7ecc635215184d930e
Author: Matt Riedemann <email address hidden>
Date: Mon Aug 21 18:35:07 2017 -0400

    Allocate resources on forced dest host during live migration

    When forcing a host during live migration, conductor bypasses
    the scheduler so the scheduler won't create an allocation in
    Placement against the destination host.

    With change Ia93168b1560267178059284186fb2b7096c7e81f, once all
    computes are upgraded to Pike, the computes won't auto-heal the
    allocations for their respective nodes either, so we end up with
    no allocation for the destination node during a live migration when
    the host is forced.

    This change makes conductor use the source compute node allocations
    for the instance to claim the same resource amounts on the forced
    destination host in Placement. If the claim fails, a
    MigrationPreCheckError is raised.

    This is a short-term fix for Pike. A longer-term fix to avoid this
    duplication with the scheduler is to have conductor call the
    scheduler even when force=True but pass a flag to the scheduler
    so it skips the filters but still makes the claim on the destination
    node.

    Finally, some comments are left in the live_migrate method in the
    compute API code since this is all tightly-coupled between the
    API and conductor when a host is specified in the request, and it's
    easy to get lost on what the API is doing to the request spec which
    changes how conductor behaves, i.e. if it calls the scheduler or not.

    Change-Id: I40b5af5e85b1266402a7e4bdeb3705e1b0bd6f3b
    Closes-Bug: #1712008