[cinder] Active-Active cluster support for allocated_capacity_gb

Ilya Popov ilya_p at hotmail.com
Thu Jun 8 15:50:30 UTC 2023


Hello, All !

There is one issue with Active/Actvie cinder cluster. Each cinder-volume instance in cluster holds it's own local allocated_capacity_gb. When cinder-volume service starts it counts all volumes created on particular pool and calculates allocated_capacity_gb accordingly. If one instance of cinder-volume create volume - it increase  its local allocated_capacity_gb. If other instance delete volume - it decrease its local allocated_capacity_gb. And each instance of cinder-volume in cluster reports its own local allocated_capacity_gb. It cause incorrect allocated_capacity_gb presented to cinder get-pools --detail. And it is able to see even negative value of allocated_capacity_gb for pool.

There is reported issue about it:
https://bugs.launchpad.net/cinder/+bug/1927186

There is document about different approaches of Active-Active cinder support, but there is nothing about incorrect allocated_capacity_gb report on it:
https://docs.openstack.org/cinder/latest/contributor/high_availability.html

Looks like without fixing allocated_capacity_gb we have to get all valumes and calculate this value by portal (it isnt quite effective and resource consuming by the way).

Are there any plans to complete Active/Active support for cinder ?
For example as the coordinator is demand for Active/Active support
(“My recommendation is to do this right: configure the cluster option,
remove the backend_host, and configure the coordinator.”, https://lists.openstack.org/pipermail/openstack-discuss/2020-November/018853.html)
 - it is possible to move allocated_capacity_gb for each pool to redis or to listen notification queue and change local allocated_capacity_gb for each instance of cinder-volume accordingly

Bug #1927186 “the value of allocated_capacity_gb is Incorrect wh...” : Bugs : Cinder<https://bugs.launchpad.net/cinder/+bug/1927186>
the value of allocated_capacity_gb is incorrect when the number of replaca of cinder-volume is more than one and all of them configurated same backend, We set up more than one cinder-volume service ,and all of them have the same config file with the same storage backend. When all cinder-volume services complete initialization, the value of 'allocated_capacity_gb' that command of 'cinder get pools -detail' returned is correct.But once any creating or deleting volumes has been done, the value...
bugs.launchpad.net


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.openstack.org/pipermail/openstack-discuss/attachments/20230608/f82f4c21/attachment-0001.htm>


More information about the openstack-discuss mailing list