Cómo crear e instalar máquinas virtuales invitadas en XenServer - Parte 5


Continuando con el avance de la serie XenServer, este artículo abordará la creación de los propios invitados (a menudo llamados máquinas virtuales).

Este artículo asumirá que se han completado todos los artículos anteriores sobre redes, parches y almacenamiento. Afortunadamente, no es necesario discutir más terminología nueva y la creación de los invitados puede comenzar.

En este punto, se ha configurado mucho en este host XenServer. Esto servirá como una revisión rápida sobre lo que se ha configurado y en qué artículo se discutió el tema.

  1. XenServer 6.5 se instaló en el servidor
    1. https://www.tecmint.com/citrix-xenserver-installation-and-network-configuration-in-linux/

    1. https://www.tecmint.com/install-xenserver-patches-in-linux/

    1. https://www.tecmint.com/xenserver-network-lacp-bond-vlan-and-bonding-configuration/

    1. https://www.tecmint.com/xenserver-create-and-add-storage-repository/

    Creación de invitados virtuales en XenServer

    Esta parte de la guía se basará en los instaladores ISO para iniciar realmente la máquina invitada recién creada e instalar un sistema operativo. Asegúrese de revisar el cuarto artículo para obtener información sobre cómo crear un repositorio ISO.

    XenServer viene con una serie de plantillas que se pueden usar para aprovisionar rápidamente a un invitado virtual. Estas plantillas proporcionan opciones comunes para el sistema operativo elegido. Las opciones incluyen cosas como espacio en el disco duro, arquitectura de CPU y cantidad de RAM disponible, entre otras opciones.

    Estas opciones se pueden modificar manualmente más adelante, pero por ahora se utilizará una plantilla simple para ilustrar su uso. Para obtener la lista de plantillas disponibles, se pueden pasar diferentes argumentos al comando tradicional xe para solicitar al sistema que devuelva las plantillas disponibles.

    # xe template-list
    

    Es probable que este comando devuelva una gran cantidad de resultados. Para que la salida sea más fácil de leer, se sugiere que la salida se canalice a "menos" de la siguiente manera:

    # xe template-list | less
    

    Esto permitirá un análisis más sencillo de las plantillas disponibles para localizar la información UUID necesaria. Este artículo trabajará con Debian 8 Jessie pero requerirá el uso de la plantilla anterior de Debian 7 Wheezy hasta que Citrix lance la nueva plantilla.

    Seleccionar Debian 7 no afectará nada en el funcionamiento del sistema operativo real. (La captura de pantalla a continuación usó el UUID en el comando para recortar parte de la salida normal).

    # xe sr-list name-label=”Tecmint iSCSI Storage”
    

    Con este UUID, se ha obtenido toda la información inicial para configurar este invitado. Como con casi todo en XenServer, se utilizará otro comando "xe" para aprovisionar al nuevo invitado.

    # xe vm-install template=”Debian Wheezy 7.0 (64-bit)” new-name-label="TecmintVM" sr-uuid=bea6caa4-ecab-8509-33a4-2cda2599fb75
    

    El UUID resaltado es el UUID del invitado recién aprovisionado. Hay un par de medidas de mantenimiento que pueden facilitar las cosas en el futuro. El primero es proporcionar una etiqueta de nombre al VDI recién creado y el segundo es modificar cualquiera de las especificaciones de hardware predeterminadas proporcionadas por la plantilla.

    Para ver por qué sería importante nombrar el VDI, observe lo que el sistema asignará automáticamente al VDI cuando se aprovisione mediante los siguientes comandos "xe":

    # xe vbd-list vm-name-label=TecmintVM – Used to get the VDI UUID
    # xe vdi-list vbd-uuids=2eac0d98-485a-7c22-216c-caa920b10ea9    [Used to show naming issue]
    

    Otra opción disponible para recopilar ambas piezas de información es el siguiente comando:

    # xe vm-disk-list vm=TecmintVM
    

    La parte en amarillo es la preocupación. Para muchas personas, este problema es menor, pero para fines de mantenimiento de la casa se desea un nombre más descriptivo para realizar un seguimiento del propósito de este VDI en particular. Para cambiar el nombre de este VDI en particular, se necesita el UUID en la salida anterior y se debe crear otro comando "xe".

    # xe vdi-param-set uuid=90611915-fb7e-485b-a0a8-31c84a59b9d8 name-label="TecmintVM Disk 0 VDI"
    # xe vm-disk-list vm=TecmintVM
    

    Esto puede parecer trivial de configurar, pero por experiencia, esto ha evitado un problema serio al desconectar un repositorio de almacenamiento de un XenServer e intentar adjuntarlo a otro XenServer. En este escenario particular, una copia de seguridad de metadatos de toda la información del invitado no se pudo restaurar en el nuevo XenServer y, afortunadamente, al nombrar el VDI en cada uno de los invitados, el mapeo adecuado del invitado a su VDI se pudo realizar simplemente por el etiqueta de nombre.

    El siguiente paso de mantenimiento de la casa para este artículo es proporcionar más recursos a este huésped en particular. Según lo aprovisionado, este invitado solo tendrá un valor de memoria de 256 MiB (Mebibytes). La mayoría de los huéspedes esto no es suficiente, por lo que es beneficioso saber cómo aumentar la memoria disponible de un huésped. Como con cualquier cosa en XenServer, esto se puede lograr con comandos "xe".

    # xe vm-param-list uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e | grep -i memory
    

    El cuadro verde de arriba indica que la mayor cantidad de memoria que este invitado en particular podría tener es de aproximadamente 256 MiB. Para fines de prueba, esto estaría bien, pero para cualquier tipo de sistema de uso intensivo, resultaría insuficiente.

    Para modificar este valor para dar al invitado acceso a más RAM, se puede emitir un comando "xe" simple con el invitado apagado. En este ejemplo, la cantidad de RAM que se le dará a esta máquina se representará en bytes, pero será igual a 2 Gibibytes de RAM.

    # xe vm-memory-limits-set dynamic-max=2147483648 dynamic-min=2147483648 static-max=2147483648 static-min=2147483648 name-label=TecmintVM
    

    Tenga en cuenta que esto reservará dos GiB de RAM para este invitado todo el tiempo.

    Ahora este invitado en particular está listo para tener un sistema operativo instalado. Del artículo anterior sobre los repositorios de almacenamiento, se agregó un recurso compartido de Samba a este XenServer para almacenar los archivos del instalador ISO. Esto se puede confirmar con el siguiente comando "xe":

    # xe sr-list name-label=Remote\ ISO\ Library\ on:\ //<servername>/ISO
    

    Asegúrese de reemplazar con el nombre del servidor Samba adecuado para el entorno en el que se lleva a cabo esta configuración. Una vez que se confirma que XenServer ve el repositorio de almacenamiento ISO, es necesario agregar un CD-ROM virtual al invitado para iniciar el archivo ISO. Esta guía asumirá que la ISO del instalador de Debian Net existe en el repositorio de almacenamiento ISO.

    # xe cd-list | grep debian
    
    # xe vm-cd-add vm=TecmintVM cd-name=debian-8-netinst.iso device=3
    # xe vbd-list vm-name-label=TecmintVM userdevice=3
    

    Los comandos anteriores primero enumeran el nombre de la ISO de Debian. El siguiente comando agregará un dispositivo de CD-ROM virtual al invitado TecmintVM y le asignará el ID de dispositivo 3.

    El tercer comando se usa para determinar el UUID del CD-ROM recién agregado para continuar configurando el dispositivo para arrancar Debian ISO.

    El siguiente paso es hacer que el CD-ROM sea de arranque y también indicar al invitado que instale un sistema operativo desde el CD-ROM.

    # xe vbd-param-set uuid=3836851f-928e-599f-dc3b-3d8d8879dd18 bootable=true
    # xe vm-param-set uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e other-config:install-repository=cdrom
    

    El primer comando anterior configura el CD-ROM para que se pueda iniciar utilizando su UUID resaltado en verde en la captura de pantalla anterior. El segundo comando indica al invitado que utilice el CD-ROM como método para instalar el sistema operativo. El UUID para el invitado Tecmint se resalta en la captura de pantalla anterior en amarillo.

    El último paso para configurar el invitado es conectar una interfaz de red virtual (VIF). Esto es especialmente importante para este método de instalación, ya que se está utilizando el instalador de Debian Network y necesitará extraer paquetes de los repositorios de Debian.

    Mirando hacia atrás en el artículo sobre redes XenServer, ya se creó una VLAN especial para este invitado y era la VLAN 10. Con "xe", se puede crear y asignar la interfaz de red necesaria a este invitado.

    # xe network-list name-description="Tecmint test VLAN 10"
    # xe vif-create vm-uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e network-uuid=cfe987f0-b37c-dbd7-39be-36e7bfd94cef device=0
    

    El primer comando se utiliza para obtener el UUID de la red creada para este invitado. El siguiente comando se usa para crear un adaptador de red para el invitado y conectar el adaptador de red a la red adecuada.

    ¡Felicitaciones! En este punto, la máquina virtual está lista para arrancar e instalar. Para iniciar el invitado, emita el siguiente comando "xe".

    # xe vm-start name-label=TecmintVM
    

    Si la terminal no produce ningún error, el invitado se inició correctamente. El inicio correcto del invitado se puede confirmar con el siguiente comando "xe":

    # xe vm-list name-label=TecmintVM
    

    Ahora la gran pregunta. ¿Cómo acceder al instalador? Esta es una pregunta válida. El método aprobado por Citrix es utilizar XenCenter. ¡El problema aquí es que XenCenter no se ejecuta en Linux! Por lo tanto, existe una solución alternativa para que los usuarios no tengan que crear una estación de Windows especial simplemente para acceder a la consola de un invitado en ejecución.

    Este proceso implica la creación de un túnel SSH desde la computadora Linux al host XenServer y luego el reenvío de puertos de una conexión VNC a través de ese túnel. Es muy inteligente y funciona de maravilla, pero este método asume que el usuario puede acceder al XenServer a través de SSH.

    El primer paso es determinar el número de dominio del invitado en el XenServer. Esto se hace mediante el uso de varios comandos diferentes.

    # xe vm-list params=dom-id name-label=TecmintVM
    # xenstore-read /local/domain/1/console/vnc-port
    

    ¡El orden de estos comandos es importante! El primer comando devolverá un número necesario para el segundo comando.

    La salida de ambos comandos es importante. La primera salida indica el ID de dominio en el que se está ejecutando el invitado; 1 en este caso. El siguiente comando requiere ese número para determinar el puerto VNC para la sesión de la consola de invitados. La salida de este comando proporciona el puerto VNC que se puede usar para conectarse al video de este invitado en particular.

    Con la información anterior obtenida, es hora de cambiar a una estación Linux y conectarse al XenServer para ver la sesión de consola de este invitado. Para hacer esto, se creará un túnel SSH y se configurará el reenvío de puertos para dirigir una conexión VNC local a través del túnel SSH. Esta conexión se realizará desde una estación de trabajo Linux Mint 17.2, pero debería ser similar para otras distribuciones.

    El primer paso es asegurarse de que el cliente OpenSSH y xtightnvcviewer estén instalados en el host Linux. En Linux Mint, esto se puede lograr con el siguiente comando:

    $ sudo apt-get install openssh-client xtightvncviewer
    

    Este comando instalará las utilidades necesarias. El siguiente paso es crear un túnel SSH al host XenServer y configurar el reenvío de puertos al puerto VNC determinado anteriormente en el host XenServer (5902).

    # ssh -L <any_port>:localhost:<VM_Port_Above> [email protected]<server> -N
    # ssh -L 5902:localhost:5902 [email protected]<servername> -N
    

    La opción "-L" le dice a ssh que reenvíe el puerto. El primer puerto puede ser cualquier puerto por encima de 1024 que no esté en uso en la máquina Linux Mint. El "localhost: 5902" indica que el tráfico se debe reenviar al puerto localhost remoto 5902 en este caso, que es el puerto XenServer VNC del TecmintVM.

    El comando "lsof" del túnel se puede ver en la salida.

    $ sudo lsof -i | grep 5902
    

    Aquí el túnel está configurado y escuchando conexiones. Ahora es el momento de abrir una conexión VNC al invitado en XenServer. La utilidad instalada es "xvncviewer" y la conexión ssh para reenviar el tráfico al XenServer está escuchando en "localhost: 5902" para que se pueda construir el comando apropiado.

    $ xvncviewer localhost:5902
    

    ¡Voila! Existe la sesión de la consola TecmintVM que ejecuta Debian Network Installer esperando que comience el proceso de instalación. En este punto, la instalación procede como cualquier otra instalación de Debian.

    Hasta este punto, todo con XenServer se ha hecho a través de la interfaz de línea de comandos (CLI). Si bien muchos usuarios de Linux disfrutan de la CLI, existen utilidades para simplificar el proceso de administración de hosts y grupos de XenServer. El próximo artículo de esta serie cubrirá la instalación de esas herramientas para los usuarios que deseen utilizar sistemas gráficos en lugar de CLI.