[SRU] disk over-commit still not correctly calculated during live migration
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Low
|
int32bit | ||
Queens |
In Progress
|
Low
|
Lee Yarwood | ||
Rocky |
In Progress
|
Low
|
Lee Yarwood | ||
Ubuntu Cloud Archive |
Fix Released
|
High
|
Unassigned | ||
Mitaka |
Fix Released
|
High
|
Unassigned | ||
Ocata |
Fix Released
|
High
|
Sahid Orentino | ||
Pike |
Fix Released
|
High
|
Unassigned | ||
Queens |
Fix Released
|
High
|
Unassigned | ||
Rocky |
Fix Released
|
High
|
Unassigned | ||
nova (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Xenial |
Fix Released
|
High
|
Unassigned | ||
Bionic |
Fix Released
|
High
|
Unassigned | ||
Cosmic |
Fix Released
|
High
|
Unassigned | ||
Disco |
Fix Released
|
High
|
Unassigned |
Bug Description
[Impact]
nova compares disk space with disk_available_
So the migration may fail because of a "Migration pre-check error: Unable to migrate dfcd087a-
[Test Case]
Deploy openstack environment. Make sure there is a negative disk_available_
This is the formula to compute disk_available_
disk_free_gb = disk_info_
disk_over_committed = self._get_
available_least = disk_free_gb * units.Gi - disk_over_committed
data['disk_
The following command can be used to query the value of disk_available_
nova hypervisor-show <ID> |grep disk
Steps to Reproduce:
1. set disk_allocation
2. qemu-img resize cirros-
3. glance image-create --disk-format qcow2 ...
4. boot VMs based on resized image
5. we see disk_available_
[Regression Potential]
Minimal - we're just changing from the following line:
disk_available_gb = dst_compute_
to the following codes:
if disk_over_commit:
disk_
else:
disk_
When enabling overcommit, disk_available_
https:/
https:/
This is the code path for check_can_
_migrate_
BTW, redhat also has a same bug - https:/
[Original Bug Report]
Change I8a705114d47384
if disk_over_commit:
Unfortunately local_gb is *total* disk, not available disk. We actually want free_disk_gb. Fun fact: due to the way we calculate this for filesystems, without taking into account reserved space, this can also be negative.
The test we're currently running is: could we fit this guest's allocated disks on the target if the target disk was empty. This is at least better than it was before, as we don't spuriously fail early. In fact, we're effectively disabling a test which is disabled for microversion >=2.25 anyway. IOW we should fix it, but it's probably not a high priority.
Changed in nova: | |
assignee: | nobody → int32bit (int32bit) |
tags: | added: libvirt |
summary: |
- disk over-commit still not correctly calculated during live migration + [SRU] disk over-commit still not correctly calculated during live + migration |
description: | updated |
tags: | added: sts |
tags: |
added: sts-sru removed: sts |
tags: |
added: sts-sru-needed removed: sts-sru |
tags: | added: sts-sponsor |
no longer affects: | nova (Ubuntu) |
tags: | added: sts |
Changed in nova: | |
importance: | Undecided → Low |
Changed in nova (Ubuntu Bionic): | |
status: | New → Triaged |
Changed in nova (Ubuntu Cosmic): | |
status: | New → Triaged |
Changed in nova (Ubuntu Disco): | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in nova (Ubuntu Cosmic): | |
importance: | Undecided → High |
Changed in nova (Ubuntu Bionic): | |
importance: | Undecided → High |
Changed in cloud-archive: | |
status: | Triaged → Fix Committed |
Changed in nova (Ubuntu Xenial): | |
importance: | Undecided → High |
status: | New → Triaged |
tags: | removed: sts-sponsor sts-sru-needed |
tags: | added: sts-sru-needed |
tags: |
added: verification-done removed: verification-needed |
Changed in cloud-archive: | |
status: | Fix Committed → Fix Released |
tags: |
added: sts-sru-done removed: sts-sru-needed |
Fix proposed to branch: master /review. openstack. org/536351
Review: https:/