Bugfix: Account for consumed space better

When the volume service starts up, it goes through all
volumes for a host in the db and adds up the volume size as
a mechanism to account for that allocate space against the
backend.  The problem was that the volume manager was only
counting volumes with a state of 'in-use' or 'available'.
If a volume has a host set on it, then we account for it's
allocated space.

This patch adds other volume states to use to account for
allocated space at volume service startup.

Closes-Bug: 1910767
Change-Id: I90d5dfbe62e630dc8042e725d411cadc2762db56
(cherry picked from commit 72da8249d9)
This commit is contained in:
Hemna 2022-01-26 13:35:20 -05:00 committed by Alexa Ștefan
parent a3c8857ee3
commit aa920e2fd4
2 changed files with 9 additions and 2 deletions

View File

@ -585,8 +585,8 @@ class VolumeManager(manager.CleanableManager,
try:
for volume in volumes:
# available volume should also be counted into allocated
if volume['status'] in ['in-use', 'available']:
# Account for volumes that have been provisioned already.
if volume['host']:
# calculate allocated capacity for driver
self._count_allocated_capacity(ctxt, volume)

View File

@ -0,0 +1,7 @@
---
fixes:
- |
`Bug #1910767 <https://bugs.launchpad.net/cinder/+bug/1910767>`_: Fixed
the calculation of the allocated capacity for the volume manager.
The fix takes into account all volumes that have a host setting, not just
volumes with a status of 'in-use' or 'available'.