PowerFlex: OpenStack: Felmatchning av volymstorlek när image_volume_cache_enabled är True
Summary: Följande två symptom observeras när alternativet "image_volume_cache_enabled" används i en OpenStack/RHOSP-miljö (Red Hat OpenStack Platform). Symptom 1: För första gången en startbar volym skapades från en översiktsbild blev den skapade volymstorleken alltid 8 GB på OpenStack-sidan. Symptom 2: Vid andra gången och senare av skapande av startbara volymer från cacheminnet för avbildningsvolym avrundades inte storleken på skapade volymer till 8 GB på OpenStack-sidan. ...
Symptoms
Följande två symptom observeras när alternativet "image_volume_cache_enabled" används i en OpenStack/RHOSP-miljö (Red Hat OpenStack Platform).
Symptom 1:
Första gången en startbar volym från en översiktsbild skapas blir den skapade volymstorleken alltid 8 GB på OpenStack-sidan.
Symptom 2:
Andra gången som startbara volymer skapades från cacheminnet för avbildningsvolymer avrundades inte storleken på de skapade volymerna till 8 GB på OpenStack-sidan.
I OpenStack/RHOSP med PowerFlex Cinder-backendlagring
Alternativet "image_volume_cache_enabled = True" anges i cinder.conf och startbara volymer skapas.
Symptom 1:
Till exempel, när en startbar volym på 33 GB ursprungligen begärdes, förväntades både OpenStack och PowerFlex ha samma 40 GB-volym. Volymen på 8 GB skapades dock på OpenStack-sidan.
$ 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:
Till exempel, när en startbar volym på 50 GB begärs medan en volymavbildningscache är aktiverad, förväntar sig både OpenStack och PowerFlex att ha samma 56 GB-volym. Volymen på 50 GB skapades dock på OpenStack-sidan.
$ 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".
Påverkan
Det går inte att hantera backend-lagringskapacitet och volymstorlek korrekt från OpenStack-sidan.
Cause
Symptom 1:
Detta är inte ett Cinder-drivrutinsproblem utan en intern OpenStack Cinder-mekanism. Problemet är att Cinder inte förväntar sig att lagringen returnerar en annan storlek på diskar än vad en användare anger.
Lös det genom att fixa filen Cinder cinder/volume/flows/manager/create_volume.py . Den måste vara medveten om möjlig avrundning av cinder-drivrutin eller backend-lagring och för att korrigera motsvarande testsviter.
Ärendespårning #1915015 öppnades för OpenStack Cinder-communityn för att åtgärda problemet. jfr Bug #1915015 "PowerFlex-volymen har ogiltig storlek efter att ha skapats f...": Fel: Aska
Symptom 2:
Det här är ett Cinder-drivrutinsproblem med create_volume_from_snapshot-funktionen. create_cloned_volume/extend_volume har samma problem.
Det finns ett alternativ att fixa det i Cinder-drivrutinen genom att returnera en verklig volymstorlek, men det sättet kunde inte klara Tempest-testcyklerna på grund av ett annat problem på Tempest-sidan.
För närvarande måste Tempest-problemet åtgärdas först för att kunna implementera en fix i Cinder-drivrutinen.
Ärendespårning #1917299 öppnades för OpenStack Tempest-communityn för att ta itu med problemet. jfr. Fel #1917299 "Behöver konfiguration av segmentstorlek för att skapa volym": buggar : storm
Not: Detta är inte relaterat till symptom 1. Användare upplever teoretiskt sett det här problemet även utan alternativet image_volume_cache_enabled men när ovanstående funktioner anropas.
Resolution
Det här är inte ett PowerFlex-problem. Kontakta OpenStack-leverantören och dela den här Dell-artikeln och nämn felspårningsnumren.
Additional Information
Berörda versioner:
Allt
åtgärdat i versionen:
Ej fastställd, ingen beräknad tid för lösning.
Referenser:
Cacheminne för Cinder-bild-volym:
Det här är en valfri parameter som implementeras i Cinder-komponenten för att avsevärt förbättra prestandan för att skapa en volym från en avbildningscache med hjälp av backend-lagringens snapshotfunktion. Se OpenStack-dokumentet: https://docs.openstack.org/cinder/latest/admin/blockstorage-image-volume-cache.html
Tempest:
OpenStack Integration Test Suite används inte bara för regressionstestning utan även för kvalificering. Se OpenStack-dokument: https://docs.openstack.org/tempest/latest/overview.html
När den här artikeln skrevs:
- Symptom 1: Ingen lösning med alternativet image_volume_cache_enabled när det är aktiverat
- Symptom 2: Den enda möjliga lösningen är att alltid ange en volymstorleksmultipel på 8 GB.