PowerFlex: OpenStack: El tamaño del volumen no coincide cuando el valor de image_volume_cache_enabled es True
Summary: Los siguientes dos síntomas se observan cuando se utiliza la opción "image_volume_cache_enabled" en un entorno OpenStack/RHOSP (Red Hat OpenStack Platform). Síntoma 1: Por primera vez en la creación de un volumen de arranque a partir de una imagen de vistazo, el tamaño del volumen creado siempre es de 8 GB en el lado de OpenStack. Síntoma 2: En la segunda vez y posteriores creaciones de volúmenes de arranque desde la caché de volumen de imagen, el tamaño de los volúmenes creados no se redondeó a 8 GB en el lado de OpenStack. ...
Symptoms
Los siguientes dos síntomas se observan cuando se utiliza la opción "image_volume_cache_enabled" en un entorno OpenStack/RHOSP (Red Hat OpenStack Platform).
Síntoma 1:
La primera vez que se crea un volumen de arranque a partir de una imagen de vista previa, el tamaño del volumen creado es siempre 8 GB en OpenStack.
Síntoma 2:
La segunda vez en adelante de creaciones de volúmenes de arranque desde la caché de volumen de imagen, el tamaño de los volúmenes creados no se redondeó a 8 GB en el lado de OpenStack.
En OpenStack/RHOSP con el almacenamiento de backend PowerFlex Cinder
La opción "image_volume_cache_enabled = True" se especifica en cinder.conf y se crean volúmenes de arranque.
Síntoma 1:
Por ejemplo, cuando se solicitó inicialmente la creación de un volumen de arranque de 33 GB, se esperaba que tanto OpenStack como PowerFlex tuvieran el mismo volumen de 40 GB. Sin embargo, se creó un volumen de 8 GB en 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==
Síntoma 2:
Por ejemplo, cuando se solicita la creación de un volumen de arranque de 50 GB mientras hay una caché de volumen-imagen habilitada, se espera que OpenStack y PowerFlex tengan el mismo volumen de 56 GB. Sin embargo, se creó un volumen de 50 GB en 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".
Impacto
No se puede administrar correctamente la capacidad de almacenamiento back-end y el tamaño del volumen en OpenStack.
Cause
Síntoma 1:
Este no es un problema del controlador de Cinder, sino un mecanismo interno de OpenStack Cinder. El problema es que Cinder no espera que el almacenamiento devuelva un tamaño de disco diferente al especificado por el usuario.
Para resolverlo, corrija el archivo cinder/volume/flows/manager/create_volume.py. Debe tener en cuenta el posible redondeo por parte del controlador Cinder o el almacenamiento de back-end y corregir los conjuntos de pruebas correspondientes.
Se abrió el seguimiento de problemas #1915015 para que la comunidad de OpenStack Cinder abordara el problema. cf. Error #1915015 "El volumen de PowerFlex tiene un tamaño no válido después de la creación f...": Bugs: Ceniza
Síntoma 2:
Este es un problema del controlador de Cinder con la función create_volume_from_snapshot. La create_cloned_volume/extend_volume tiene el mismo problema.
Hay una opción para solucionarlo en el controlador Cinder devolviendo un tamaño de volumen real, pero de esa manera no se pudieron pasar los ciclos de prueba de Tempest debido a otro problema en el lado de Tempest.
Por ahora, el problema de Tempest debe solucionarse primero para implementar una solución en el controlador de Cinder.
Se abrió el #1917299 de seguimiento de problemas para que la comunidad de OpenStack Tempest abordara el problema. cf. Error #1917299 "Se necesita una configuración de tamaño de fragmento para la creación de volúmenes": Errores : tempestad
Nota: Esto no está relacionado con el síntoma 1. En teoría, los usuarios experimentan este problema incluso sin la opción image_volume_cache_enabled, pero cuando se invocan las funciones anteriores.
Resolution
No se trata de un problema de PowerFlex. Comuníquese con el proveedor de OpenStack, comparta este artículo de Dell y mencione los números de seguimiento de problemas.
Additional Information
Versiones afectadas:
Todas
Se corrige en la versión:
Por determinar. No hay un plazo estimado para su resolución.
Referencias:
Caché de imagen-volumen de Cinder:
Este es un parámetro opcional implementado en el componente Cinder para mejorar considerablemente el rendimiento de la creación de un volumen a partir de una caché de imágenes mediante la característica de instantáneas del almacenamiento back-end. Consulte el documento de OpenStack: https://docs.openstack.org/cinder/latest/admin/blockstorage-image-volume-cache.html
Tempest:
OpenStack Integration Test Suite no solo se utiliza para pruebas de regresión, sino también para procesos de calificación. Consulte el documento de OpenStack: https://docs.openstack.org/tempest/latest/overview.html
Cuando se escribió este artículo:
- Síntoma 1: No hay una solución alternativa con la opción image_volume_cache_enabled cuando está activada
- Síntoma 2: La única solución alternativa posible es especificar un tamaño de volumen que sea múltiplo de 8 GB.