Dell PowerFlex: Size shown for a volume doesn't match powerflex backend allocation

Bug #1990946 reported by Jean Pierre Roquesalane
38
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Cinder
New
Low
Unassigned
Glance
Invalid
Undecided
Unassigned

Bug Description

Description

When creating a volume, powerflex will round the value of the capacity by a multiple of 8GB leaving inconsistency between cinder which shows the value requested by the user and powerflex which shows the current allocation.

Step to reproduce

Create a volume with a size different from 8GB multiplier
stack@SRA-Left-Openstack1:~/devstack$ openstack volume create --size 3 --type powerflex test_vol_pflex
/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py:15: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
/usr/lib/python3/dist-packages/secretstorage/util.py:19: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2022-09-27T09:05:36.735298           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | ebcc7949-2777-4841-9001-6da2b081b6d2 |
| migration_status    | None                                 |
| multiattach         | False                                |
| name                | test_vol_pflex                       |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 3                                    |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | powerflex                            |
| updated_at          | None                                 |
| user_id             | cf67ca76a2924d21988a3d21101324dd     |
+---------------------+--------------------------------------+
stack@SRA-Left-Openstack1:~/devstack$ openstack volume list
/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py:15: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
/usr/lib/python3/dist-packages/secretstorage/util.py:19: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
+--------------------------------------+----------------+-----------+------+-------------------------------------+
| ID                                   | Name           | Status    | Size | Attached to                         |
+--------------------------------------+----------------+-----------+------+-------------------------------------+
| ebcc7949-2777-4841-9001-6da2b081b6d2 | test_vol_pflex | available |    3 |                                     |
| 048a3748-8517-48df-9d37-e16ec2789408 | vol_pflex4     | in-use    |    8 | Attached to server1 on /dev/vdb     |
| 470839d8-bfcf-45c5-ba9f-e6608c42bc49 | voltosnap      | available |    9 |                                     |
| 620b2198-47bc-4d2a-9a60-2df4c35e91f4 |                | in-use    |    9 | Attached to serversnap on /dev/vda  |
| 24e11e0b-44ad-4bee-9dc9-09e64f9413a1 | vol_pflex3     | available |    9 |                                     |
| aadf3632-8419-47a2-bbe7-950b51f93fae | vol_pflex3     | error     |    8 |                                     |
| 4c6092bd-75c0-4546-9360-e3e0ef224779 | vol_pflex2     | in-use    |    8 | Attached to server1 on /dev/vda     |
| 80e0751c-4849-4981-a7cc-2b98d7d360ea | vol_pflex      | available |   10 |                                     |
+--------------------------------------+----------------+-----------+------+-------------------------------------+

This introduces multiple side effects:

1. Allocation capacity not being monitored correctly
2. Extension of volume withing the same range will fail as the volume is already at that size (Example: volume extenstion from 5 to 7, backend already set to 8)
3. Quota also affected

This bug consolidates other bugs opened for various behavior but still happens because of the same issue:
https://bugs.launchpad.net/cinder/+bug/1915015
https://bugs.launchpad.net/cinder/+bug/1935028
https://bugs.launchpad.net/cinder/+bug/1952355

Revision history for this message
Jean Pierre Roquesalane (jproque15130) wrote :
Revision history for this message
Jean Pierre Roquesalane (jproque15130) wrote :

In order to consolidate, I think we might consider having one bug opened for all consequences of this misbehavior

tags: added: emc glance powerflex size volume
tags: removed: glance
summary: - Size shown for a volume doesn't match powerflex backend allocation
+ Dell PowerFlex: Size shown for a volume doesn't match powerflex backend
+ allocation
Revision history for this message
Cyril Roelandt (cyril-roelandt) wrote :

How is this related to Glance?

Revision history for this message
Jean Pierre Roquesalane (jproque15130) wrote :

When Glance uses cinder as the backend

tags: added: drivers
Changed in cinder:
importance: Undecided → Low
Revision history for this message
Cyril Roelandt (cyril-roelandt) wrote :

Nothing in your bug report is related to Glance. If Glance were to use another backend, you could still show the same commands and the same outputs. Your issue is with Cinder itself.

I will mark this as Invalid, feel free to reopen if I'm wrong.

Changed in glance:
status: New → Invalid
Revision history for this message
Jean Pierre Roquesalane (jproque15130) wrote (last edit ):

Yeah, even if Glance uses cinder, that's a cinder bug, so I'm good. Thks

description: updated
Revision history for this message
Pawel Koniszewski (pawel-koniszewski) wrote :

Shouldn't this have higher importance as quota is also affected? It's easy to exceed quota just by creating volumes of size that is not a multiple of 8 (which is powerflex limitation).

For example, creating 4 volumes of size 4GB volume will increase usage by 16GB. Those volumes will consume 32GBs on backend side while quota usage will reflect just 16GB. Deleting one of those volumes will cause quota to be decreased by 8GB leaving just 8GB of quota usage.

This creates space for end-user to create as many volumes as user wants by leveraging the bug. It makes quota useless for this particular backend, which may not be impacting for the entire project, but is quite a deal for those who use PowerFlex.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.