PowerFlex: OpenStack: Volume size non corrispondente quando il image_volume_cache_enabled è True
Summary: I due sintomi seguenti si osservano quando si utilizza l'opzione "image_volume_cache_enabled" in un ambiente OpenStack/RHOSP (Red Hat OpenStack Platform). Sintomo 1: Per la prima volta in cui è stato creato un volume avviabile da un'immagine a colpo d'occhio, la dimensione del volume creato è sempre stata di 8 GB sul lato OpenStack. Sintomo 2: Alla seconda volta e successivamente alla creazione di volumi avviabili dalla cache del volume immagine, la dimensione dei volumi creati non è stata arrotondata a 8 GB sul lato OpenStack. ...
Symptoms
I due sintomi seguenti si osservano quando si utilizza l'opzione "image_volume_cache_enabled" in un ambiente OpenStack/RHOSP (Red Hat OpenStack Platform).
Sintomo 1:
La prima volta che viene creato un volume avviabile da un'immagine glance, la dimensione del volume creato diventa sempre 8 GB sul lato OpenStack.
Sintomo 2:
La seconda volta in seguito alla creazione di volumi avviabili dalla memoria cache del volume immagine, la dimensione dei volumi creati non è stata arrotondata a 8 GB sul lato OpenStack.
In OpenStack/RHOSP con lo storage back-end PowerFlex Cinder
L'opzione "image_volume_cache_enabled = True" è specificata in cinder.conf e vengono creati i volumi di avvio.
Sintomo 1:
Ad esempio, quando è stata inizialmente richiesta la creazione di un volume di avvio da 33 GB, sia OpenStack che PowerFlex dovevano avere lo stesso volume di 40 GB. Tuttavia, il volume da 8 GB è stato creato sul lato OpenStack.
$ 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==
Sintomo 2:
Ad esempio, quando viene richiesta la creazione di un volume di avvio da 50 GB mentre è abilitata una cache delle immagini del volume, sia OpenStack che PowerFlex prevedono di avere lo stesso volume di 56 GB. Tuttavia, il volume da 50 GB è stato creato sul lato OpenStack.
$ 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".
Impatto
Impossibile gestire correttamente la capacità di storage back-end e le dimensioni del volume dal lato OpenStack.
Cause
Sintomo 1:
Non si tratta di un problema del driver Cinder, ma di un meccanismo interno di OpenStack Cinder. Il problema è che Cinder non si aspetta che lo storage restituisca una dimensione dei dischi diversa da quella specificata dall'utente.
Per risolverlo, correggi il file cinder/volume/flows/manager/create_volume.py di Cinder. Deve essere a conoscenza del possibile arrotondamento da parte del driver Cinder o dello storage back-end e correggere i gruppi di test corrispondenti.
Il rilevamento dei problemi #1915015 è stato aperto per consentire alla community OpenStack Cinder di risolvere il problema. Bug #1915015 "Il volume PowerFlex ha dimensioni non valide dopo la creazione f...": Bug: Cenere
Sintomo 2:
Si tratta di un problema del driver Cinder con la funzione create_volume_from_snapshot. Il create_cloned_volume/extend_volume presenta lo stesso problema.
C'è un'opzione per risolverlo nel driver Cinder restituendo una dimensione reale del volume, ma in questo modo non è stato possibile superare i cicli di test Tempest a causa di un altro problema sul lato Tempest.
Per ora, il problema di Tempest deve essere risolto prima per implementare una correzione nel driver Cinder.
Il rilevamento dei problemi #1917299 è stato aperto per consentire alla community OpenStack Tempest di risolvere il problema. Bug #1917299 "È necessaria la configurazione delle dimensioni dei blocchi per la creazione del volume": Insetti : tempesta
Nota: Questo non è correlato al sintomo 1. In teoria, gli utenti riscontrano questo problema anche senza l'opzione image_volume_cache_enabled , ma quando vengono chiamate le funzioni di cui sopra.
Resolution
Non si tratta di un problema di PowerFlex. Contattare il vendor OpenStack e condividere questo articolo Dell menzionando i numeri di tracciamento del problema.
Additional Information
Versioni interessate:
Tutto
risolto nella versione:
Da determinare, nessun tempo stimato per la risoluzione.
Referenze:
Cache del volume di immagini Cinder:
Si tratta di un parametro opzionale implementato nel componente Cinder per migliorare notevolmente le prestazioni della creazione di un volume da una cache di immagini utilizzando la funzione snapshot dello storage back-end. Consultare il documento OpenStack: https://docs.openstack.org/cinder/latest/admin/blockstorage-image-volume-cache.html
Tempest:
OpenStack Integration Test Suite viene utilizzata non solo per i test di regressione, ma anche per la qualifica. Consultare il documento OpenStack: https://docs.openstack.org/tempest/latest/overview.html
Quando è stato scritto questo articolo:
- Sintomo 1: Nessuna soluzione alternativa con l'opzione image_volume_cache_enabled se abilitata
- Sintomo 2: L'unica soluzione alternativa possibile consiste nello specificare sempre un multiplo della dimensione del volume di 8 GB.