PowerFlex : OpenStack : la taille du volume ne correspond pas lorsque l’option image_volume_cache_enabled est définie sur True
Summary: Les deux symptômes suivants sont observés lors de l’utilisation de l’option « image_volume_cache_enabled » dans un environnement OpenStack/RHOSP (Red Hat OpenStack Platform). Symptôme 1 : Pour la première fois qu’un volume amorçable est créé à partir d’une image de premier coup d’œil, la taille du volume créé devient toujours de 8 Go du côté OpenStack. Symptôme 2 : À la deuxième fois et plus tard des créations de volumes amorçables à partir du cache de volume d’image, la taille des volumes créés n’a pas été arrondie à 8 Go du côté OpenStack. ...
Symptoms
Les deux symptômes suivants sont observés lors de l’utilisation de l’option « image_volume_cache_enabled » dans un environnement OpenStack/RHOSP (Red Hat OpenStack Platform).
Symptôme 1 :
La première fois qu’un volume amorçable à partir d’un aperçu d’image est créé, la taille du volume créé passe toujours à 8 Go avec OpenStack.
Symptôme 2 :
À partir de la deuxième fois que des volumes amorçables sont créés à partir du cache de volume d’image, la taille des volumes créés n’a pas été arrondie à 8 Go du côté OpenStack.
Dans OpenStack/RHOSP avec le stockage back-end PowerFlex Cinder
L’option « image_volume_cache_enabled = True » est spécifiée dans cinder.conf et des volumes amorçables sont créés.
Symptôme 1 :
Par exemple, lors de la création initiale d’un volume amorçable de 33 Go, OpenStack et PowerFlex devraient avoir le même volume de taille de 40 Go. Cependant, le volume de 8 Go a été créé avec 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==
Symptôme 2 :
Par exemple, lorsqu’une création de volume amorçable de 50 Go est demandée alors qu’un cache d’image de volume est activé, OpenStack et PowerFlex devraient avoir le même volume de 56 Go. Cependant, le volume de 50 Go a été créé avec 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".
Impact
Impossible de gérer correctement la capacité de stockage back-end et la taille du volume avec OpenStack.
Cause
Symptôme 1 :
Le problème ne vient pas du pilote Cinder, mais d’un mécanisme interne OpenStack Cinder. Cinder ne s’attend pas à ce que le stockage renvoie une taille de disque différente de celle spécifiée par un utilisateur.
Pour résoudre ce problème, corrigez le fichier Cinder cinder/volume/flows/manager/create_volume.py. Il doit être conscient de l’arrondi possible par le pilote Cinder ou le stockage back-end et corriger les suites de tests correspondantes.
Le suivi des problèmes #1915015 a été ouvert pour permettre à la communauté OpenStack Cinder de résoudre le problème. cf. Bug #1915015 « Le volume PowerFlex a une taille non valide après la création f... » : Bugs : Cendre
Symptôme 2 :
Il s’agit d’un problème de pilote Cinder lié à la fonction create_volume_from_snapshot. Le create_cloned_volume/extend_volume rencontre le même problème.
Il existe une option pour le corriger dans le pilote Cinder en renvoyant une taille de volume réelle, mais cette méthode n’a pas pu passer les cycles de test Tempest en raison d’un autre problème côté Tempest.
Pour l’instant, le problème de Tempest doit d’abord être résolu afin d’implémenter un correctif dans le pilote Cinder.
Le suivi des problèmes #1917299 a été ouvert pour permettre à la communauté OpenStack Tempest de résoudre le problème. cf. Bug #1917299 « Configuration de la taille de bloc nécessaire pour la création de volumes » : Insectes : tempête
Note: cela n’est pas lié au symptôme 1. En théorie, les utilisateurs rencontrent ce problème même sans l’option image_volume_cache_enabled, mais lorsque les fonctions ci-dessus sont appelées.
Resolution
Le problème n’est pas lié à PowerFlex. Contactez le fournisseur OpenStack, partagez cet article Dell et mentionnez les numéros de suivi des problèmes.
Additional Information
Versions affectées :
Toutes
Problème résolu dans la version :
À déterminer, aucun délai de résolution estimé.
Références :
Cache du volume d’image Cinder :
Il s’agit d’un paramètre facultatif implémenté dans le composant Cinder pour améliorer considérablement les performances de création d’un volume à partir d’un cache d’image avec la fonction de snapshot du stockage back-end. Voir le document OpenStack : https://docs.openstack.org/cinder/latest/admin/blockstorage-image-volume-cache.html
Tempest :
OpenStack Integration Test Suite est non seulement utilisé pour les tests de régression, mais également pour la qualification. Consultez le document OpenStack : https://docs.openstack.org/tempest/latest/overview.html
La rédaction de cet article :
- Symptôme 1 : Aucune solution de contournement avec l’option image_volume_cache_enabled lorsqu’elle est activée
- Symptôme 2 : la seule solution de contournement possible consiste à toujours spécifier un multiple de 8 Go de taille de volume.