← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1351002] [NEW] live migration (non-block-migration) with shared instance storage and config drive fails

 

Public bug reported:

To reproduce:

1. Set up shared instance storage via NFS and use one of the file-based image backends
2. Boot an instance with a config drive
3. Attempt to live migrate said instance w/o doing a block migration

The issue is caused by the following lines in nova/virt/libvirt/driver.py:
        if not (is_shared_instance_path and is_shared_block_storage):
            # NOTE(mikal): live migration of instances using config drive is
            # not supported because of a bug in libvirt (read only devices
            # are not copied by libvirt). See bug/1246201
            if configdrive.required_by(instance):
                raise exception.NoLiveMigrationForConfigDriveInLibVirt()

The issue, I believe, was caused by commit bc45c56f1, which separated
checks for shared instance directories and shared block storage backends
like Ceph.  The issue is that if a deployer is not using Ceph, the call
to self.image_backend.backend().is_shared_block_storage() returns False.
However, is_shared_block_storage should not even be considered if the
image backend is a file-based one.

** Affects: nova
     Importance: High
         Status: New


** Tags: libvirt

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1351002

Title:
  live migration (non-block-migration) with shared instance storage and
  config drive fails

Status in OpenStack Compute (Nova):
  New

Bug description:
  To reproduce:

  1. Set up shared instance storage via NFS and use one of the file-based image backends
  2. Boot an instance with a config drive
  3. Attempt to live migrate said instance w/o doing a block migration

  The issue is caused by the following lines in nova/virt/libvirt/driver.py:
          if not (is_shared_instance_path and is_shared_block_storage):
              # NOTE(mikal): live migration of instances using config drive is
              # not supported because of a bug in libvirt (read only devices
              # are not copied by libvirt). See bug/1246201
              if configdrive.required_by(instance):
                  raise exception.NoLiveMigrationForConfigDriveInLibVirt()

  The issue, I believe, was caused by commit bc45c56f1, which separated
  checks for shared instance directories and shared block storage
  backends like Ceph.  The issue is that if a deployer is not using
  Ceph, the call to
  self.image_backend.backend().is_shared_block_storage() returns False.
  However, is_shared_block_storage should not even be considered if the
  image backend is a file-based one.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1351002/+subscriptions


Follow ups

References