← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1728603] Re: Resize a boot-from-volume instance with NFS destroys instance

 

Reviewed:  https://review.openstack.org/516395
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=f02afc6569bd930114a4b56413dbd6becc5e7e75
Submitter: Zuul
Branch:    master

commit f02afc6569bd930114a4b56413dbd6becc5e7e75
Author: Matt Riedemann <mriedem.os@xxxxxxxxx>
Date:   Mon Oct 30 12:49:31 2017 -0400

    libvirt: do not remove inst_base when volume-backed during resize
    
    When confirming a resize, the libvirt driver on the source host checks
    to see if the instance base directory (which contains the domain xml
    files, etc) exists and if the root disk image does not, it removes the
    instance base directory.
    
    However, the root image disk won't exist on local storage for a
    volume-backed instance and if the instance base directory is on shared
    storage, e.g. NFS or Ceph, between the source and destination host, the
    instance base directory is incorrectly deleted.
    
    This adds a check to see if the instance is volume-backed when checking
    to see if the instance base directory should be removed from the source
    host when confirming a resize.
    
    Change-Id: I29fac80d08baf64bf69e54cf673e55123174de2a
    Closes-Bug: #1728603


** Changed in: nova
       Status: In Progress => Fix Released

-- 
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/1728603

Title:
  Resize a boot-from-volume instance with NFS destroys instance

Status in OpenStack Compute (nova):
  Fix Released
Status in OpenStack Compute (nova) ocata series:
  Confirmed
Status in OpenStack Compute (nova) pike series:
  Confirmed

Bug description:
  Turns out that the fix for
  https://bugs.launchpad.net/nova/+bug/1666831 accidentally broke boot-
  from-volume setups that use NFS. In particular, this line:

  https://github.com/openstack/nova/blob/stable/ocata/nova/virt/libvirt/driver.py#L1149

          if os.path.exists(inst_base) and not root_disk.exists():
              try:
                  shutil.rmtree(inst_base)
              except OSError as e:
                  if e.errno != errno.ENOENT:
                      raise

  Causes the instance basedir which includes the instances libvirt.XML
  file to be deleted.

  The above needs to be changed to this in order to prevent BFV
  instances from being destroyed on resize...

   if os.path.exists(inst_base) and not root_disk.exists() and not
  compute_utils.is_volume_backed_instance(instance._context, instance):

  This bug was reported and the fix confirmed by Joris S'heeren

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


References