Public bug reported:

When live migrating libvirt instances, the destination host doesn't
properly check the available disk space when using image files and doing
overcommit, leading to migration failures.

Trace: http://paste.openstack.org/raw/798895/

It seems to be using resource tracker information that is not aware of
disk overcommitment, so we end up with negative values. The
"local_gb_used" value reflects the total allocated space, not the
actually used disk space.

https://github.com/openstack/nova/blob/20.4.0/nova/compute/resource_tracker.py#L1254

The same incorrect values will be reported by "openstack hypervisor show":
http://paste.openstack.org/raw/798898/

Additionally, the "disk_over_commit" boolean flag is incorrectly
checked. The driver checks if the field exists as part of the
"dest_check_data" dict but doesn't actually check its value.

https://github.com/openstack/nova/blob/20.4.0/nova/virt/libvirt/driver.py#L8224

The "disk_over_commit" parameter is deprecated. Recent Nova API versions
do not use it, which bypasses the disk allocation check on the libvirt
driver side. This might be used as a workaround (e.g. using nova client
instead of the openstack client or horizon), but this is not ideal.

** Affects: nova
     Importance: Undecided
         Status: New


** Tags: libvirt live-migration resource-tracker

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

Title:
  Live migrations don't properly handle disk overcommitment

Status in OpenStack Compute (nova):
  New

Bug description:
  When live migrating libvirt instances, the destination host doesn't
  properly check the available disk space when using image files and
  doing overcommit, leading to migration failures.

  Trace: http://paste.openstack.org/raw/798895/

  It seems to be using resource tracker information that is not aware of
  disk overcommitment, so we end up with negative values. The
  "local_gb_used" value reflects the total allocated space, not the
  actually used disk space.

  
https://github.com/openstack/nova/blob/20.4.0/nova/compute/resource_tracker.py#L1254

  The same incorrect values will be reported by "openstack hypervisor show":
  http://paste.openstack.org/raw/798898/

  Additionally, the "disk_over_commit" boolean flag is incorrectly
  checked. The driver checks if the field exists as part of the
  "dest_check_data" dict but doesn't actually check its value.

  
https://github.com/openstack/nova/blob/20.4.0/nova/virt/libvirt/driver.py#L8224

  The "disk_over_commit" parameter is deprecated. Recent Nova API
  versions do not use it, which bypasses the disk allocation check on
  the libvirt driver side. This might be used as a workaround (e.g.
  using nova client instead of the openstack client or horizon), but
  this is not ideal.

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to