OpenStack: Convertir imágenes ISO a QCOW2
En cualquier nube, una instancia (VM) es una máquina virtual alojada en la infraestructura de esta nube, estas instancias, necesitan de una imagen de sistema operativo para arrancar. Una imagen de máquina virtual es un archivo que contiene un disco virtual que tiene instalado un sistema operativo con el cual se puede arrancar. Por lo tanto, las instancias son copias en ejecución de esa imagen.
Diferencias entre ISO y QCOW2
En la nube, las imágenes de maquina virtual normalmente NO SON ARCHIVOS ISO.
El formato ISO es una imagen de disco óptico utilizado para CD y DVD. Como decía, no pensamos en ISO como un formato de imagen de máquina virtual, dado que los ISO contienen sistemas de archivos de arranque para instalar un sistema operativo en algún disco para luego, arrancar desde este disco ya instalado.
Por otro lado que QCOW2 es la partición sistema de archivos donde ya está instalado un sistema operativo y se puede utilizar como plantilla para hacer más instancias del mismo tipo de sistema operativo.
En pocas palabras, ISO es para instalar desde cero un sistema operativo y en QCOW2 ya está instalado el sistema operativo, incluso configurado y con paquetes instalados.
Crear instancias desde ISO en OpenStack
La forma más sencilla de obtener una imagen de máquina virtual que funcione con OpenStack es descargar una que alguien más ya haya creado. La mayoría de las imágenes contienen el paquete cloud-init para admitir el par de claves SSH y la inyección de datos del usuario.
Para obtener imagenes de sistemas operativos como CentOS, Ubuntu, RHEL, SuSE, CirrOS, Debian, Fedora, Windows, aqui se encuentran disponibles para descarga
Adicionalmente, para realizara personalizaciones y crear imagenes con requisitos más puntales, esta guía describe cómo obtener, crear y modificar imágenes de máquinas virtuales que son compatibles con OpenStack.
Sin embargo, comúnmente tenemos requerimientos de nuestros clientes que necesitan sistemas operativos que no están en esta lista o el proveedor no cuenta con otro archivo salvo el ISO, algunos casos han sistemas operativos recortados y modificados por los proveedores o appliances de proveedores como IBM, Cisco, Oracle, etc.
Para estos casos, seguimos el siguiente procedimiento:
TLDR;
1. Subir imagen ISO
2. Crear instancia para instalar SO
3. Crear volumen para destino del SO e instalar
4. Subir volumen con SO instalado como imagen
5. Crear instancia desde nueva imagen de SO
A continuación, el procedimiento desde el dashboard de OpenStack:
Subir imagen ISO
El ISO del cual se desea instalar un Sistema Operativo, se debe subir al catálogo de Glance, en el ejemplo se crea una imagen llamada EjemploISO, en este caso el nombre de la instancia es VMparaInstalarSO
Crear instancia para instalar SO
Una vez con la imagen en el catálogo se crea una instancia donde se realizará el procedimiento de instalación del ISO
Crear volumen para destino del SO
Después de crear la instancia, se creará un volumen para que la instalación use este volumen como sistema de archivos destino. En el ejemplo se crea un volumen llamada DestinoDelSO, con un tamaño de 20 GB. Este tamaño debe ser el necesario e indicado como mínimo para que el ISO se pueda instalar. Se debe revisar que requerimientos tiene el ISO que se usa.
Una vez creado el volumen, lo adjuntamos a la instancia VMparaInstalarSO.
Con el volumen adjunto, iniciamos la instancia y realizamos la instalación paso a paso del ISO. Una vez finalizada la instalación el siguiente paso es subir esta instalación que quedó en el volumen como una imagen al catalogo de Glance.
Este punto es el más importante, la VM donde se realizó la instalación no es una VM usable, solo fue usada para instalar ya que si reiniciamos siempre se mostrará el proceso de instalación del ISO. Esta arrancando siempre desde el ISO y no desde el disco con el SO.
Entonces, para tener una VM usable, apagamos la primera y desadjuntamos el disco.
Subir volumen con SO instalado como imagen
Una vez apagada la instancia y el disco libre, lo marcamos como arrancable o booteable, editandolo desde el menú y seleccionando el checkbox correspondiente.
El último paso es subir este volumen al catalogo de Glance. En este punto el volumen contiene una instalación del SO deseado, pero para poder crear Vms con el, debe estar disponible como imagen, en el menú seleccionamos la opción de “Subir imagen”
Aparece un menú como el siguiente, llenamos los datos y subimos la imagen
Crear instancia desde nueva imagen de SO
Con esto ya tenemos una imagen en formato QCOW2 de una instalación proveniente de un ISO. Solo resta crear VMs desde esta imagen y no será necesario el ISO puesto que ya está en formato QCOW2.
Si te resulta útil, comparte.