El Servicio de Imágenes de OpenStack (Glance) es el encargado de almacenar las imágenes que usaremos para crear nuestras Instancias o Máquinas Virtuales, lo que sería el equivalente a las AMIs de AWS o las imágenes de Azure, que podremos gestionar tanto desde el Dashboard de OpenStack como desde OpenStack CLI.
Continuando con la serie de Posts sobre OpenStack, después de que tratáramos hace unos días cómo instalar OpenStack en CentOS 7 con PackStack así como un breve introducción a OpenStack, viéramos una introducción al Dashboard y CLI de OpenStack, y conociéramos un poco mejor el Servicio de Identidad de OpenStack (Keystone), ahora llega el momento de ver el Servicio de Imágenes (Glance). Comenzamos.
Introducción al Servicio de Imágenes de OpenStack: Glance
Glance se utiliza para almcenar las imágenes de disco de las máquinas virtuales de OpenStack (Nova), proporcionando una interfaz REST API para que los clientes se comuniquen con Glance, utiliza por defecto Swift para el almacenamiento de las imágenes (aunque también se soportan otras tecnologías como Cepth), y usa una base de datos SQL para el almacenamiento de configuración y metadatos de las imágenes.
A continuación se muestra el diagrama de Arquitectura de Glance. Para más detalle: OpenStack – Glance – Basic architecture
Glance soporta diferentes tipos de formato para las imágenes, como por ejemplo los siguientes (no son los únicos):
- Raw
- VHD (Hyper-V)
- VDI (VirtualBox)
- Qcow2 (QEMU/KVM)
- VMDK (VMWare)
- OVF (VMWare, otros)
- Machine (AKA AMI)
Sin embargo, tras la instalación de OpenStack nos encontraremos que el repositorio de imágenes de Glance está vacío, por lo que deberemos de obtener alguna imagen para subirla a Glance, ya sea obtenida desde la Web (imágenes de terceros, si buscamos por «Cloud Images») o bien porque las construimos nosotros mismos en base a nuestras necesidades.
Al subir imágenes a Glance, podemos especificar para cada imagen, cual es el espacio en disco mínimo y/o la memoria RAM mínima que necesita, de tal modo, que cuando se cree una nueva Instancia partiendo de una Imagen existente, se pueda garantizar que se selecciona un Flavour (sizing de RAM, CPU, y Disco) suficiente para ejecutar dicha Instancia con la Imagen seleccionada.
En la Web de OpenStack podemos encontrar enlaces para descargar algunas imágenes. Por ejemplo, la imagen CirrOS es muy ligera (aprox 16MB) e ideal para pruebas, especialmente si usamos QEMU ó KVM. Para más info: OpenStack – Get Images
Además, hay que tener en cuenta que al crear un Snapshot, realmente estamos creando una nueva Imagen en Glance, lo que nos proporciona un método muy sencillo para que nos podamos crear imágenes personalizadas.
Glance y la CLI
Ya vimos en el anterior Post sobre el Dashboard de OpenStack, como realizar algunas tareas en el Dashboard relacionadas con Glance, resultando bastante intuitivo. Ahora vamos a ver cómo trabajar con Glance desde OpenStack CLI, que además nos vendrá muy bien para poder automatizar tareas.
Podemos listar todos los comando que proporciona OpenStack CLI relacionados con Glance, con un comando como el siguiente. No son muchos, otros servicios de OpenStack proporcionan un número bastante mayor, Glance es bastante sencillo.
source keystonerc_admin
openstack command list | grep openstack.image -A 15
En el siguiente ejemplo podemos ver cómo descargar un fichero de imagen de CirrOS para QEMU/KVM, y seguidamente cómo lo usamos para crear una Imagen en Glance, indicando que requiere un mínimo de 2GB de disco para usarla en una Instancia, y que es privada (para usar sólo en el Proyecto en el que subimos la image, no se puede compartir ni utilizar por otros Proyectos).
wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img
openstack image create -h
openstack image create --min-disk 2 --private --disk-format qcow2 --file cirros-0.5.1-x86_64-disk.img cirros-0.5.1-x86_64
openstack image list
openstack image show cirros-0.5.1-x86_64
Hecho esto, ya podríamos utilizar la imagen que acabamos de subir a OpenStack, para crear una nueva Instancia en OpenStack. Pero eso, lo haremos en otro Post.
Despedida y Cierre
Hasta aquí llega este Post de OpenStack, en el que hemos realizado una introducción al servicio de Imágens de OpenStack (Glance), tanto un overview a su arquitectura como a la CLI de OpenStack para poder trabajar con Glance, por ejemplo, para crear imágenes que podamos usar en nuestras Instancias.
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.