Fail to unify allocation_capacity_gb values among multiple Active-Active Cinder-Volume services
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
In Progress
|
Low
|
Unassigned | ||
Victoria |
New
|
Low
|
Unassigned |
Bug Description
Description
===========
Three cinder-volume services was started in different hosts and
they all refer to the same rbd backend by setting same cinder backend
configuration. In order to achieve Active-Active configurations
the cluster configuration option is defined in the [DEFAULT] section
of cinder.conf for each cinder-volume service.
After these cinder-volume services was started, three records could be
seen in volume service list. However, just one record could be seen for
cinder get-pools conmmand.
When 10 volumes of 10GB of that backend was created successfully, three
different values of allocation_
inspected by executing cinder get-pools conmmand many times.
Therefore, each cinder-volume service has its own allocation_
and allocation_
Steps to reproduce
==================
1. Spawn three cinder-volume services which all refer to the same rbd
backend and belong to one cluster whose name is clus1 e.g.
$ openstack volume service list
+------
| Binary | Host | Zone | Status | State | Updated At |
+------
| cinder-volume | host1@rbd-clus-1 | az-stackdev | enabled | up | 2022-10-
| cinder-volume | host2@rbd-clus-1 | az-stackdev | enabled | up | 2022-10-
| cinder-volume | host3@rbd-clus-1 | az-stackdev | enabled | up | 2022-10-
$ cinder get-pools --filters name=clus1@
+------
| Property | Value |
+------
| allocated_
| backend_state | up |
| driver_version | 1.2.0 |
| filter_function | None |
| free_capacity_gb | 5912.85 |
| goodness_function | None |
| location_info | ceph:/etc/
| max_over_
| multiattach | True |
| name | clus1@rbd-
| replication_enabled | False |
| reserved_percentage | 0 |
| storage_protocol | ceph |
| thin_provisioni
| timestamp | 2022-10-
| total_capacity_gb | 6310.3 |
| vendor_name | Open Source |
| volume_backend_name | rbd-clust-1 |
+------
2. Create 10 volumes of 10GB of that cinder backend e.g.
$ for i in {1..10};do openstack volume create --type rbd-clust-1 --size 10 clus-v$i;done
$ openstack volume list
+------
| ID | Name | Status | Size | Attached to |
+------
| 20ac2305-
| a902574e-
| 5a3e85f3-
| 1c0d720f-
| d7c08ba6-
| 5d01544e-
| b510820d-
| 139c1922-
| 888e3fc7-
| 82b29c4c-
+------
3. Inspect the allocated_
Expected result
===============
The allocated_
Actual result
=============
Different allocated_
[stackdev-
+------
| Property | Value |
+------
| allocated_
...
[stackdev-
+------
| Property | Value |
+------
| allocated_
...
[stackdev-
+------
| Property | Value |
+------
| allocated_
...
Environment
===========
Victoria branch Of Openstack
description: | updated |
tags: |
added: active-active removed: get-pools |
Fix proposed to branch: master /review. opendev. org/c/openstack /cinder/ +/863600
Review: https:/