Current RBD code is incorrectly reporting the stats of the pool in the
following ways:
- `provisioned_capacity_gb` contains physical space used by cinder created
volumes.
- `free_capacity_gb` is not taking into account that pools can have quota
restrictions and they should be used as the reference for the free capacity.
- `total_capacity` dynamically changes, which means that there is no way to
have a fixed over provisioning capacity.
This patch fixes the stats reporting making sure we return the right
values in `provisioned_capacity_gb` and `free_capacity_gb`, and allows
us to use a static calculation of the `total_capacity` using
`report_dynamic_total_capacity` configuration option.
We don't report `allocated_capacity_gb` because this is something that
is calculated by the Cinder core code and should not be reported by
drivers, even if it's not currently working as expected [1][2].
[1] https://bugs.launchpad.net/cinder/+bug/1712549
[2] https://bugs.launchpad.net/cinder/+bug/1706057
Change-Id: I1e82bf9d0b6cc0fb1d1fc2dd8b8ccc59aea3f73f
Closes-Bug: #1706060
(cherry picked from commit 8469109016)
Conflicts:
cinder/tests/unit/volume/drivers/test_rbd.py
cinder/volume/drivers/rbd.py
19 lines
768 B
YAML
19 lines
768 B
YAML
---
|
|
features:
|
|
- |
|
|
RBD driver supports returning a static total capacity value instead of a
|
|
dynamic value like it's been doing. Configurable with
|
|
`report_dynamic_total_capacity` configuration option.
|
|
upgrade:
|
|
- |
|
|
RBD/Ceph backends should adjust `max_over_subscription_ratio` to take into
|
|
account that the driver is no longer reporting volume's physical usage but
|
|
it's provisioned size.
|
|
fixes:
|
|
- |
|
|
RBD stats report has been fixed, now properly reports
|
|
`allocated_capacity_gb` and `provisioned_capacity_gb` with the sum of the
|
|
sizes of the volumes (not physical sizes) for volumes created by Cinder and
|
|
all available in the pool respectively. Free capacity will now properly
|
|
handle quota size restrictions of the pool.
|