PowerFlex: OpenStack: Die Volume-Größe stimmt nicht überein, wenn „image_volume_cache_enabled“ „Wahr“ ist.
Summary: Die folgenden beiden Symptome werden beobachtet, wenn die Option "image_volume_cache_enabled" in einer OpenStack/RHOSP-Umgebung (Red Hat OpenStack Platform) verwendet wird. Symptom 1: Zum ersten Mal einer bootfähigen Volume-Erstellung aus einem Glance-Image wurde die erstellte Volume-Größe auf der OpenStack-Seite immer 8 GB betragen. Symptom 2: Bei der zweiten und späteren Erstellung von startfähigen Volumes aus dem Image-Volume-Cache wurde die Größe der erstellten Volumes auf der OpenStack-Seite nicht auf 8 GB gerundet. ...
Symptoms
Die folgenden beiden Symptome werden beobachtet, wenn die Option "image_volume_cache_enabled" in einer OpenStack/RHOSP-Umgebung (Red Hat OpenStack Platform) verwendet wird.
Symptom 1:
Wenn zum ersten Mal ein startfähiges Volume aus einem Glance-Image erstellt wird, wird die erstellte Volume-Größe auf der OpenStack-Seite immer auf 8 GB festgelegt.
Symptom 2:
Beim zweiten Mal nach der Erstellung startfähiger Volumes aus dem Image-Volume-Cache wurde die Größe der erstellten Volumes auf der OpenStack-Seite nicht auf 8 GB gerundet.
In OpenStack/RHOSP mit dem PowerFlex Cinder-Backend-Storage
Die Option "image_volume_cache_enabled = True" wird in cinder.conf angegeben und startfähige Volumes werden erstellt.
Symptom 1:
Wenn zum Beispiel zunächst ein startfähiges 33-GB-Volume erstellt wurde, erwarteten sowohl OpenStack als auch PowerFlex das gleiche Volume mit 40 GB Größe. Das 8-GB-Volume wurde jedoch auf der OpenStack-Seite erstellt.
$ openstack volume list --long
$
$ openstack volume create --image cirros --type sio --size 33 33gb-1
$ openstack volume list --long
+--------------------------------------+--------------------------------------------+-------
| ID | Name | Status | Size | Type | Bootable | Attached to | Properties |
+--------------------------------------+--------------------------------------------+-------
| fed72292-fd84-4b33-bf63-063f1bfb9f75 | 33gb-1 | available | 8 | sio | true | | | <<< 40 was expected but is 8.
| 364b78a7-0714-4b70-be16-8ec139564cb0 | image-b7d6350e-f835-4310-a5f4-6b6535ce86c4 | available | 8 | sio | false | | readonly='True' | <<< This is the volume-image cache (snapshot).
+--------------------------------------+--------------------------------------------+-------
# scli --query_all_volumes
Volume ID: b582f85000000000 Name: mUnBlKjqSfur1KQillkMEw== Size: 40.0 GB (40960 MB) Not mapped Thin-provisioned <<< This is the corespoinding volume to "33gb-1".
Volume ID: b582f85100000001 Name: aWB3fINbQ7GV4BMlUXsOPQ== Size: 8.0 GB (8192 MB) Not mapped Snapshot of mUnBlKjqSfur1KQillkMEw==
Symptom 2:
Wenn beispielsweise eine startfähige Volume-Erstellung mit 50 GB angefordert wird, während ein Volume-Image-Cache aktiviert ist, erwarten sowohl OpenStack als auch PowerFlex das gleiche Volume mit 56 GB Größe. Das 50-GB-Volume wurde jedoch auf der OpenStack-Seite erstellt.
$ openstack volume create --image cirros --type sio --size 50 50gb-1
$ openstack volume list --long
+--------------------------------------+--------------------------------------------+-------
| ID | Name | Status | Size | Type | Bootable | Attached to | Properties |
+--------------------------------------+--------------------------------------------+-------
| 1f0a279f-9c3d-42a2-ba9c-f31fa160c92c | 50gb-1 | available | 50 | sio | true | | | <<< 56 was expected but is 50.
| fed72292-fd84-4b33-bf63-063f1bfb9f75 | 33gb-1 | available | 8 | sio | true | | |
| 364b78a7-0714-4b70-be16-8ec139564cb0 | image-b7d6350e-f835-4310-a5f4-6b6535ce86c4 | available | 8 | sio | false | | readonly='True' |
+--------------------------------------+--------------------------------------------+-------
# scli --query_all_volumes
Volume ID: b582f85000000000 Name: mUnBlKjqSfur1KQillkMEw== Size: 40.0 GB (40960 MB) Not mapped Thin-provisioned
Volume ID: b582f85100000001 Name: aWB3fINbQ7GV4BMlUXsOPQ== Size: 8.0 GB (8192 MB) Not mapped Snapshot of mUnBlKjqSfur1KQillkMEw==
Volume ID: b582f85200000002 Name: cYLfBQJFRHKUjNjEtQpyAw== Size: 56.0 GB (57344 MB) Not mapped Snapshot of aWB3fINbQ7GV4BMlUXsOPQ== <<< This is the corresponding volume to "50gb-1".
Auswirkungen
Backend-Storagekapazität und Volume-Größe können auf der OpenStack-Seite nicht korrekt verwaltet werden.
Cause
Symptom 1:
Dies ist kein Problem mit dem Cinder-Treiber, sondern ein interner OpenStack-Cinder-Mechanismus. Das Problem besteht darin, dass Cinder nicht erwartet, dass der Storage eine andere Festplattengröße zurückgibt, als vom Nutzer angegeben.
Korrigieren Sie zur Behebung die Cinder-Datei cinder/volume/flows/manager/create_volume.py. Er muss sich über mögliche Rundungen durch Cinder-Treiber oder Backend-Speicher im Klaren sein und entsprechende Testsuiten korrigieren.
Issue Tracking #1915015 wurde für die OpenStack Cinder-Community eröffnet, um das Problem zu beheben. vgl. Bug #1915015 "PowerFlex volume has invalid size after creation f...": Fehler: Asche
Symptom 2:
Dies ist ein Problem mit dem Cinder-Treiber mit der Funktion create_volume_from_snapshot. Das create_cloned_volume/extend_volume hat das gleiche Problem.
Es gibt eine Option im Cinder-Treiber, um das Problem zu beheben, indem eine echte Volume-Größe zurückgegeben wird, aber auf diese Weise konnten die Tempest-Testzyklen aufgrund eines anderen Problems auf der Tempest-Seite nicht bestanden werden.
Im Moment muss das Tempest-Problem zuerst behoben werden, um einen Fix im Cinder-Treiber zu implementieren.
Problemverfolgung #1917299 wurde für die OpenStack Tempest-Community eröffnet, um das Problem zu beheben. vgl. Bug #1917299 "Chunk-Größenkonfiguration für Volume-Erstellung erforderlich": Bugs : Sturm
Anmerkung: Dies bezieht sich nicht auf Symptom 1. Theoretisch tritt dieses Problem auch ohne die Option image_volume_cache_enabled auf, aber wenn die oben genannten Funktionen aufgerufen werden.
Resolution
Dies ist kein Problem von PowerFlex. Wenden Sie sich an den OpenStack-Anbieter, teilen Sie diesen Dell Artikel und erwähnen Sie die Problemverfolgungsnummern.
Additional Information
Betroffene Versionen:
Alle
Behoben in Version:
Noch zu bestimmen; keine geschätzte Zeit bis zur Lösung.
Verweise:
Cinder-Image-Volume-Cache:
Dies ist ein optionaler Parameter, der in der Cinder-Komponente implementiert wurde, um die Leistung beim Erstellen eines Datenträgers aus einem Image-Cache durch die Verwendung der Snapshot-Funktion des Backend-Storage drastisch zu verbessern. Siehe OpenStack-Dokument: https://docs.openstack.org/cinder/latest/admin/blockstorage-image-volume-cache.html
Tempest:
Die OpenStack Integration Test Suite wird nicht nur für Regressionstests, sondern auch für die Qualifizierung verwendet. Siehe OpenStack-Dokument: https://docs.openstack.org/tempest/latest/overview.html
Als dieser Artikel geschrieben wurde:
- Symptom 1: Kein Workaround mit der Option image_volume_cache_enabled, wenn aktiviert
- Symptom 2: Der einzige mögliche Workaround besteht darin, für die Volume-Größe immer ein Vielfaches von 8 GB anzugeben.