Error "Quota gigabytes limit must be equal or greater than existing resources" received while attempting to change the volume quota value
search cancel

Error "Quota gigabytes limit must be equal or greater than existing resources" received while attempting to change the volume quota value

book

Article ID: 405517

calendar_today

Updated On:

Products

VMware Integrated OpenStack

Issue/Introduction

  • There is a discrepancy between the volume quota and the actual number of volumes in use.
  • Verify the total volume size using the "openstack volume list" command
  • Verify the volume quota by using the command "openstack quota list" 
  • An attempt to change the volume quota to match the actual number of volumes fails with the below error 

 # openstack quota set --gigabytes 48260 'xxxxx'         

 "Quota gigabytes limit must be equal or greater than existing resources. Current usage is 48660 and the requested limit is 48260."

   Log Snippets :

[2025-05-28 10:42:37.449] Quota gigabytes limit must be equal or greater than existing resources. Current usage is 48660 and the requested limit is 48260. (HTTP 400) (Request-ID: req- #######-###-####)

  • There are no volume snapshots or volume backups present.

Environment

  • VMware Integrated OpenStack 7.x

Cause

  • The issue may arise if there are any volumes which are stuck in "deleting" state in the VIO mariadb.
  • To verify if there are any stuck volume, login to database and run the following query

MariaDB [cinder]>
MariaDB [cinder]> SELECT id, size, status, deleted FROM volumes WHERE project_id='<Project UUID>';
+--------------------------------------+-------+----------+---------+
| id                                   | size  | status   | deleted |
+--------------------------------------+-------+----------+---------+
|  #######-###-####                    |   400 | deleting |       1 |
|  #######-###-####                    |  1650 | in-use   |       0 | 

Resolution

Mark the volume stuck in the deleting status as deleted, and then update the "quota_usages table" for the corresponding volume type.

 

1.) Check the project list 

#openstack project list --long

[root@vioadmin1-vioshim-xxxxx-xxxx ~]# openstack project list --long
+----------------------------------+--------+----------------------------------+-------------+---------+
 | ID                               | Name   | Domain ID                        | Description | Enabled |
+----------------------------------+--------+----------------------------------+-------------+---------+
 |  #######-###-####                | SVCXXX |  #######-###-####               | <8F><A4><97>p_VMS    | True |
+----------------------------------+--------+----------------------------------+-------------+---------+

2.) Check under the volume list for any volume that is missing or stuck in deleted or deleting state 

#openstack volume list

3.)  Check for any snapshots

#openstack volume snapshot list

[root@vioadmin1-vioshim-xxxx-xxxx ~]# openstack volume snapshot list

None 

4.) Check for any backups : 

#openstack volume backup list

[root@vioadmin1-vioshim-xxxx-xxxx ~]# openstack volume backup list

None

5.) If step 2,3 & 4 doesn't retrieve any anomalies, please validate for any discrepancies in the database. Connect to the "mariadb

 

MariaDB [cinder]>
MariaDB [cinder]> SELECT id, size, status, deleted FROM volumes WHERE project_id='<Project UUID>';


+--------------------------------------+-------+----------+---------+
| id                                   | size  | status   | deleted |
+--------------------------------------+-------+----------+---------+                                                                                                       
| xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx       |  400  | deleting |       1 |
| xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx       |  1650 | in-use   |       0 |

+--------------------------------------+-------+----------+---------+
34 rows in set (0.00 sec)

6.)  Check for space usage from the "mariadb"

 

#MariaDB [cinder]> SELECT resource, in_use, reserved
-> FROM quota_usages
-> WHERE project_id = 'Project UUID';


 +--------------------------------+--------+----------+
| resource                       | in_use | reserved |
+--------------------------------+--------+----------+
| gigabytes_SDS_super_large_comp |  47460 |        0 |
| volumes                        |     33 |        0 |
| volumes_SDS_super_large_comp   |     30 |        0 |
| gigabytes                      |  48660 |        0 |
| gigabytes_SDS_large_comp       |   1200 |        0 |
| volumes_SDS_large_comp         |      3 |        0 |
+--------------------------------+--------+----------+
6 rows in set (0.01 sec)

 

#MariaDB [cinder]> SELECT COUNT(*) AS active_volumes, SUM(size) AS used_gb FROM volumes WHERE project_id = 'Project UUID' AND deleted =  0;
+----------------+---------+
| active_volumes | used_gb |
+----------------+---------+
|             32 |   48260 |
+----------------+---------+
1 row in set (0.00 sec)

 

7.)  Mark the volume status as "deleted"  in mariadb.

#UPDATE volumes SET status = 'deleted' WHERE id = '<Volume UUID stuck in deleting>';

8.)  Space and Volume count calculation 


gigabytes = gigabytes_SDS_super_large_comp + gigabytes_SDS_large_comp (48660 = 47460 + 1200)


volumes = volumes_SDS_super_large_comp + volumes_SDS_large_comp (33 = 30 + 3)

9.) Find out which volume type is set on the missing volume so that we can adjust the subtotal of corresponding volume type as well.

  • Run the following in VIO database:

1.) Find the volume_type_id


#select id,volume_type_id from cinder.volumes where id='xxxxxx-xxxx-xxxx-xxxx-xxxxxxxx';

 

[2025-06-23 15:18:09.398] MariaDB [cinder]> select id, volume_type_id from cinder.volumes where id='xxxxx-xxx-xxx-xxx-xxxxx';
[2025-06-23 15:23:09.527] +--------------------------------------+--------------------------------------+
[2025-06-23 15:23:09.527] | id | volume_type_id |
[2025-06-23 15:23:09.527] +--------------------------------------+--------------------------------------+
[2025-06-23 15:23:09.527] | xxxxx-xxx-xxx-xxx-xxxxx | xxxx-xxx-xxxxx-xxxx-xxxxxxxxxx|
[2025-06-23 15:23:09.527] +--------------------------------------+--------------------------------------+
[2025-06-23 15:23:09.527] 1 row in set (0.00 sec)


2.) Find volume type name of volume_type_id above


#select * from cinder.volume_types;

    • The volume (ID:  #######-###-#### ) has a volume_type_id of "#######-###-####".
    • The corresponding name of volume_type for this ID is "SDS_large_comp."

3.) Then update quota_usages table for corresponding volume type (SDS_large_comp) and additionally update the total (volumes and gigabytes)

UPDATE quota_usages
SET in_use = 32
WHERE project_id = '<Project UUID>'
  AND resource = 'volumes';


UPDATE quota_usages
SET in_use = 48260
WHERE project_id = '<Project UUID>'
  AND resource = 'gigabytes';


UPDATE quota_usages
SET in_use = 2
WHERE project_id = '<Project UUID>'
  AND resource = 'volumes_SDS_large_comp';


UPDATE quota_usages
SET in_use = 800
WHERE project_id = '<Project UUID>'
  AND resource = 'gigabytes_SDS_large_comp'; 

         4.) The above updation to release the missing space which reported as consumed. 

 

Additional Information