Búsqueda de sitios web

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


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

Actualización: En mayo de 2016, Citrix lanzó la nueva versión de la plataforma XenServer 7. Para la instalación siga: Instalación nueva de XenServer 7.

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

Revisión del sistema

Hasta este punto, se han configurado muchas cosas en este host XenServer. Esto servirá como una revisión rápida sobre lo que se ha configurado y en qué artículo se trató el tema.

  1. Se instaló XenServer 6.5 en el servidor.
    1. https://linux-console.net/citrix-xenserver-installation-and-network-configuration-in-linux/
  2. Se han aplicado todos los parches de XenServer 6.5
    1. https://linux-console.net/install-xenserver-patches-in-linux/
  3. Se crearon equipos de interfaz de red y VLAN.
    1. https://linux-console.net/xenserver-network-lacp-bond-vlan-and-bonding-configuration/
  4. Se crearon repositorios de almacenamiento iSCSI e ISO para guardar los archivos de instalación del sistema operativo y los discos duros virtuales utilizados por los invitados.
    1. https://linux-console.net/xenserver-create-and-add-storage-repository/

Creación de invitados virtuales en XenServer

Esta parte de la guía se basará en instaladores ISO para iniciar 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 utilizar 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 sencilla para ilustrar su uso. Para obtener la lista de plantillas disponibles, al comando tradicional 'xe' se le pueden pasar diferentes argumentos para solicitar al sistema que devuelva las plantillas disponibles.


xe template-list

Es probable que este comando devuelva muchos resultados. Para que el resultado sea más fácil de leer, se sugiere que el resultado 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 funcionará con Debian 8 Jessie pero requerirá el uso de la plantilla anterior Debian 7 Wheezy hasta que Citrix lance la nueva plantilla. .

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


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

Con este UUID se obtiene toda la información inicial para configurar este invitado. Como ocurre 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 pasos de mantenimiento que potencialmente pueden facilitar las cosas en el futuro. La primera es proporcionar una etiqueta de nombre al VDI recién creado y la segunda es modificar cualquiera de las especificaciones de hardware predeterminadas proporcionadas por la plantilla.

Para ver por qué sería importante nombrar la VDI, observe lo que el sistema asignará automáticamente a la 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 es recopilar ambas informaciones con el siguiente comando:


xe vm-disk-list vm=TecmintVM

La parte amarilla es la que preocupa. Para muchas personas, este problema es menor, pero para fines de mantenimiento, se desea un nombre más descriptivo para realizar un seguimiento del propósito de esta VDI en particular. Para cambiar el nombre de este VDI en particular, se necesita el UUID en el resultado 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 grave al desconectar un repositorio de almacenamiento de un XenServer e intentar conectarlo a otro XenServer. En este escenario particular, una copia de seguridad de metadatos de toda la información del huésped no se pudo restaurar en el nuevo XenServer y, afortunadamente, al nombrar el VDI en cada uno de los invitados, se pudo realizar la asignación adecuada del huésped a su VDI simplemente mediante el etiqueta de nombre.

El siguiente paso de mantenimiento de este artículo es proporcionar más recursos a este huésped en particular. Según lo aprovisionado, este huésped solo tendrá alrededor de 256 MiB (Mebibytes) de memoria. Para 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 ocurre 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 en verde arriba indica que la mayor cantidad de memoria que este huésped en particular podría tener es 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 y darle al invitado acceso a más RAM, se puede emitir un simple comando 'xe' con el invitado apagado. En este ejemplo, la cantidad de RAM que se le dará a esta máquina se representará en bytes, pero equivaldrá 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

Observe que esto reservará dos GiB de RAM para este invitado todo el tiempo.

Ahora este invitado en particular está listo para tener instalado un sistema operativo. Del artículo anterior sobre repositorios de almacenamiento, se agregó un recurso compartido Samba a este XenServer para almacenar archivos de instalación 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 <servername> con el nombre del servidor Samba adecuado para el entorno en el que se realiza esta configuración. Una vez que se confirma que XenServer ve el repositorio de almacenamiento ISO, se debe agregar un CD-ROM virtual al invitado para poder iniciar el archivo ISO. Esta guía asumirá que el ISO de Debian Net Installer 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 CD-ROM virtual al invitado TecmintVM y le asignará el ID de dispositivo 3.

El tercer comando se utiliza para determinar el UUID del CD-ROM recién agregado para continuar configurando el dispositivo para iniciar la ISO de Debian.

El siguiente paso es hacer que el CD-ROM sea de arranque e indicarle al huésped 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 pueda iniciarse 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 del invitado Tecmint está resaltado en amarillo en la captura de pantalla anterior.

El último paso para configurar el invitado es adjuntar 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 será necesario extraer paquetes de los repositorios de Debian.

Volviendo al artículo sobre redes de XenServer, ya se creó una VLAN especial para este invitado y era la VLAN 10. Usando '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 utiliza para crear un adaptador de red para el invitado y conectar el adaptador de red a la red adecuada.

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


xe vm-start name-label=TecmintVM

Si el terminal no produce ningún error, entonces 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 para que los usuarios no tengan que crear una estación especial de Windows simplemente para acceder a la consola de un invitado en ejecución.

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

El primer paso es determinar el número de dominio del invitado en 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.

El resultado de ambos comandos es importante. El primer resultado indica el ID de dominio en el que se ejecuta 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 invitada. 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 el 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 de XenServer y configurar el reenvío de puertos al puerto VNC determinado anteriormente en el host de XenServer (5902).


ssh -L <any_port>:localhost:<VM_Port_Above> root@<server> -N
ssh -L 5902:localhost:5902 root@<servername> -N

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

‘root@ son las credenciales de inicio de sesión para SSH en el host XenServer. Finalmente, la '-N' le dice a SSH que simplemente abra una conexión de reenvío de puerto. Usando el comando 'lsof', el 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 con el 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 crear el comando apropiado.


xvncviewer localhost:5902

¡Voilá! Allí está la sesión de consola TecmintVM ejecutando el Debian Network Installer esperando a que comience el proceso de instalación. En este punto, la instalación continúa 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 usuarios que deseen utilizar sistemas gráficos en lugar de CLI.