Saltar a contenido

XCP-ng

En este artículo

Información

XCP-ng (Xen Cloud Platform - New Generation) es un hipervisor de código abierto gratuito basado en el proyecto Xen. XCP-ng se creó como una alternativa abierta a Citrix XenServer después de que Citrix limitara la funcionalidad de la versión gratuita. El proyecto proporciona una plataforma de virtualización de nivel empresarial con todas las funciones sin limitaciones artificiales, admitiendo migración en vivo (live migration), alta disponibilidad, gestión de almacenamiento e integración con sistemas de orquestación. XCP-ng se distribuye bajo la licencia GPLv2 y licencias gratuitas compatibles.

XCP-ng. Funcionalidades clave

  • Virtualización: XCP-ng admite la ejecución de múltiples máquinas virtuales en un único servidor físico con aislamiento completo y una distribución eficiente de los recursos. Los sistemas operativos invitados compatibles incluyen Linux, Windows y otros.
  • Migración en vivo: capacidad de mover máquinas virtuales en ejecución entre hosts sin tiempo de inactividad, garantizando la continuidad del servicio durante el mantenimiento del hardware.
  • Alta disponibilidad (HA): reinicio automático de las máquinas virtuales en otros hosts del pool en caso de fallo del servidor.
  • Gestión de almacenamiento: soporte para varios tipos de Storage Repositories, incluidos discos locales, NFS, iSCSI, Ceph y otros.
  • Instantáneas y copias de seguridad: creación de instantáneas (snapshots) instantáneas de los estados de las máquinas virtuales para una recuperación y copia de seguridad rápidas.
  • Pools de recursos: combinación de múltiples hosts XCP-ng en un único pool para una gestión centralizada y la distribución de la carga.
  • Capacidades de red: soporte para VLAN, unión de interfaces de red (bonding), SR-IOV y redes definidas por software.
  • Interfaces de gestión web: XCP-ng incluye la interfaz web integrada XO Lite para una gestión básica, mientras que la versión completa de Xen Orchestra (XO) proporciona capacidades avanzadas de automatización, monitorización y copia de seguridad.

Opciones de gestión de XCP-ng

Hay varias interfaces de gestión disponibles para trabajar con XCP-ng:

XO Lite (integrada, gratuita):

  • Disponible inmediatamente después de la instalación de XCP-ng en https://<server_IP_address>;
  • Interfaz web básica para crear y gestionar máquinas virtuales;
  • Monitorización de recursos y operaciones básicas;
  • Adecuada para laboratorios domésticos y proyectos pequeños;
  • No requiere configuración adicional.

Xen Orchestra from Sources (gratuita, requiere instalación):

  • Sistema de gestión de código abierto con todas las funciones;
  • Copias de seguridad automáticas, replicación, monitorización avanzada;
  • Gestión centralizada de múltiples hosts;
  • Requiere la creación de una máquina virtual separada e instalación manual (Ubuntu/Debian);
  • El mantenimiento y las actualizaciones se realizan manualmente;
  • Soporte a través de foros de la comunidad.

Xen Orchestra Appliance (XOA) (suscripción de pago, requiere despliegue):

  • Máquina virtual lista para usar con Xen Orchestra preinstalado;
  • Desplegada a través del botón Deploy XOA en la interfaz de XO Lite;
  • Soporte técnico oficial de Vates (24/7);
  • Actualizaciones automáticas y garantías de SLA;
  • Planes para pequeñas empresas: €2,000/año (ESSENTIAL, hasta 3 hosts) o €4,000/año (ESSENTIAL+, acceso completo) – detalles;
  • Recomendado para entornos de producción con requisitos de soporte.

La elección de la opción depende de la escala de la infraestructura y los requisitos de soporte técnico. La interfaz integrada XO Lite es suficiente para empezar, mientras que las funciones más avanzadas están disponibles mediante la instalación de la versión completa de Xen Orchestra.

Funcionalidades de implementación

ID OS Name Alias Active BM GPU VPS VDS Family OS Group CloudInit Avilible
306 XCP-ng 8.3 - Yes + + + - XCP-ng Others No ORDER

Requisitos mínimos del servidor:

  • RAM: 8 GB;
  • HDD: 60 GB;
  • Virtualization: soporte para virtualización anidada (nested virtualization).

Primeros pasos con XCP-ng tras la implementación

Después de pagar su pedido, recibirá una notificación por correo electrónico en la dirección que proporcionó durante el registro, indicando que su servidor está listo. Este correo electrónico incluirá la dirección IP del VPS y las credenciales de acceso. Los clientes de nuestra empresa gestionan su equipo a través del server management panel y API — Invapi.

Puede encontrar los detalles de autorización en la sección Configuration >> Tags del panel de gestión del servidor o en el correo electrónico que recibió:

  • Login: root;
  • Password: Se enviará a su dirección de correo electrónico una vez que el servidor esté listo para su uso tras el despliegue del software.

Autorización

Hay dos métodos disponibles para acceder al servidor XCP-ng: a través de la interfaz web XO Lite y mediante SSH.

Conexión mediante XO Lite

XO Lite es una interfaz web integrada para gestionar XCP-ng, accesible directamente desde el host.

  • Abra un navegador y navegue hasta https://<server_IP_address>:

  • Introduzca el login root y la contraseña del correo electrónico, luego haga clic en el botón Login.

Información

Es posible que el navegador muestre una advertencia sobre un certificado no confiable; esto es normal para un certificado autofirmado. Añada una excepción para continuar.

Conexión mediante SSH

  • Abra una terminal y conéctese al servidor con el comando:
ssh root@<server_IP_address>
  • Introduzca la contraseña cuando se le solicite. Tras una conexión exitosa, estará en la línea de comandos de XCP-ng.

Conexión mediante la consola nativa

También puede utilizar la Native Console en el panel de control Invapi para acceder a la consola del host:

La consola proporciona un menú de configuración que le permite configurar parámetros de red, autenticación, gestión de máquinas virtuales y otros parámetros del sistema.

Trabajar con xsconsole

Al conectarse mediante SSH o la consola VNC, puede utilizar xsconsole, la consola de gestión de texto integrada para la configuración de XCP-ng y la administración del host.

Para iniciar xsconsole, introduzca el comando:

xsconsole

Tras el inicio, se abrirá el menú de gestión del sistema:

Secciones principales de xsconsole

Visualización de estado

  • Monitorización del estado del host (CPU, memoria, red, almacenamiento);
  • Ver máquinas virtuales en ejecución;
  • Información general del sistema.

Interfaz de red y gestión

  • Configuración de la interfaz de red;
  • Configuración de la dirección IP (estática/DHCP);
  • Configuración de la puerta de enlace (gateway) y el servidor DNS.

Autenticación

  • Cambio de la contraseña root;
  • Gestión del acceso SSH;
  • Configuración de la cuenta.

Máquinas virtuales

  • Ver la lista de máquinas virtuales;
  • Gestión básica de VM (iniciar, detener);
  • Control del estado del sistema invitado.

Discos y repositorios de almacenamiento

  • Ver los discos conectados;
  • Gestión de Storage Repositories;
  • Creación y eliminación de SR.

Configuración de pool de recursos

  • Creación de un pool a partir de múltiples hosts;
  • Unirse a un pool existente;
  • Gestión de clúster de servidores.

Información de hardware y BIOS

  • Información del procesador y la memoria;
  • Datos de la tarjeta de red;
  • Versiones de BIOS y firmware.

Teclado y zona horaria

  • Configuración de la distribución del teclado;
  • Ajuste de la zona horaria del sistema.

Configuración de servicios remotos

  • Configuración de acceso remoto;
  • Configuración de SSH;
  • Gestión de certificados SSL.

Copia de seguridad, restauración y actualización

  • Copia de seguridad de la configuración del host;
  • Restauración de ajustes;
  • Comprobación e instalación de actualizaciones del sistema.

Soporte técnico

  • Generar un informe de soporte técnico (bug report);
  • Recopilación de registros (logs) del sistema;
  • Información de diagnóstico.

Shell de comandos local

  • Salir a la línea de comandos bash estándar;
  • Para ejecutar comandos y scripts arbitrarios.

Reinicio o apagado

  • Reinicio del host;
  • Apagado correcto del sistema.
  • Enter - seleccionar elemento del menú/confirmar acción;
  • ↑/↓ - desplazarse por los elementos del menú;
  • Tab - cambiar entre elementos de formulario;
  • Esc o q - volver al menú anterior/salir.

Consejo

xsconsole es especialmente útil para la configuración inicial del servidor, la recuperación de acceso de emergencia o la configuración de red cuando la interfaz web XO Lite no está disponible. Para salir de xsconsole a la línea de comandos regular, seleccione Local Command Shell.

Trabajar con XO Lite

Tras la autorización en XO Lite, se abre el panel de gestión principal (Dashboard):

La interfaz de XO Lite contiene las siguientes secciones:

  • DASHBOARD: vista general del estado del host, estado de las máquinas virtuales, uso de almacenamiento y notificaciones;
  • ALARMS: ver advertencias y alertas del sistema;
  • STATS: estadísticas de rendimiento y uso de recursos;
  • SYSTEM: ajustes del sistema del host;
  • NETWORK: gestión de interfaces de red y redes virtuales;
  • STORAGE: gestión del almacenamiento de datos (Storage Repositories);
  • TASKS: registro de tareas en ejecución y completadas;
  • HOSTS: información sobre los hosts en el pool;
  • VMS: gestión de máquinas virtuales.

Gestión de red

La pestaña NETWORK muestra las redes disponibles y sus parámetros:

Aquí puede ver las redes de todo el Pool (disponibles para todos los hosts en el pool) y las redes internas del Host, así como crear nuevas conexiones de red.

Creación de una máquina virtual

Preparación: Carga de una imagen ISO

Antes de crear una máquina virtual, debe cargar una imagen ISO del sistema operativo en el Storage Repository.

Carga de ISO vía SSH

XO Lite no admite la carga de imágenes ISO a través de la interfaz web. Para cargar una ISO, debe utilizar la línea de comandos:

  1. Conéctese al servidor mediante SSH

        ssh root@<server_IP_address>
    
  2. Si se abre xsconsole tras la conexión, salga a la línea de comandos regular seleccionando la opción Local Command Shell o pulsando Ctrl+C.

  3. Busque el UUID del almacenamiento de ISO

        xe sr-list content-type=iso
    
    Copie el UUID del almacenamiento llamado "XCP-ng Tools".

  4. Navegue hasta el directorio de almacenamiento de ISO

        cd /opt/xensource/packages/iso
    
  5. Descargue la imagen ISO

    Descarga desde internet:

        wget https://repo.almalinux.org/almalinux/9/isos/x86_64/AlmaLinux-9-latest-x86_64-boot.iso
    

    O cargue desde su ordenador local (ejecute en su PC)

        scp /ruta/al/archivo.iso root@<server_IP>:/opt/xensource/packages/iso/
    
  6. Realice un reescaneo del almacenamiento

        xe sr-scan uuid=<UUID_SR>
    
    Donde <UUID_SR> es el UUID obtenido en el paso 3.

    Después de esto, la imagen ISO aparecerá en la lista de imágenes disponibles al crear una máquina virtual.

Creación de una VM mediante XO Lite

  • Haga clic en el botón New VM en la esquina superior derecha de la interfaz.

  • En la ventana que se abre, rellene los parámetros de la máquina virtual:

    • Template: seleccione la plantilla del sistema operativo (p. ej., AlmaLinux 9);
    • Install settings: elija el método de instalación:
      • ISO/DVD: instalación desde una imagen ISO (recomendado) - seleccione la ISO cargada de la lista;
      • PXE: instalación por red (requiere un servidor PXE configurado).
    • System: especifique el nombre de la VM, la descripción y el tipo de firmware (BIOS/UEFI);
    • Memory: establezca el número de vCPUs y la cantidad de RAM.
  • Configure las conexiones de red y el almacenamiento:

    • Network: seleccione la interfaz de red para la conexión de la VM;
    • Storage: seleccione el almacenamiento y especifique el tamaño del disco;
    • Settings: habilite el inicio automático de la VM al arrancar (opcional).
  • Revise la configuración final en la sección Summary y haga clic en el botón Create.

Tras la creación, la máquina virtual se iniciará automáticamente y comenzará el arranque desde la imagen ISO. La interfaz de XO Lite abrirá la página Dashboard de la VM creada:

La página Dashboard muestra:

  • Quick info: información básica de la VM (estado, UUID, host, recursos);
  • CPU usage: gráfico de uso del procesador;
  • RAM usage: gráfico de uso de la memoria;
  • Network throughput: gráfico de actividad de red;
  • VDI throughput: gráfico de actividad de disco;
  • Change state: menú de gestión del estado de la VM (start, pause, reboot, shutdown).

Para acceder a la consola de la máquina virtual y comenzar la instalación del sistema operativo, vaya a la pestaña CONSOLE.

Consejo

Para la instalación por red (Boot ISO), asegúrese de que la máquina virtual tenga acceso a internet a través de la red configurada, ya que los paquetes de instalación se descargarán desde el repositorio.

Atención

Al seleccionar una imagen ISO, considere el tipo de imagen:

Para Linux (usando AlmaLinux como ejemplo):

  • DVD/Full ISO (~4-10 GB) - imagen completa, contiene todos los paquetes, no requiere internet
    • AlmaLinux-9-latest-x86_64-dvd.iso;
    • Ubuntu-22.04-server.iso.
  • Boot/Minimal ISO (~1 GB) - imagen mínima, requiere una conexión a internet activa para descargar los paquetes
    • AlmaLinux-9-latest-x86_64-boot.iso;
    • Ubuntu-22.04-live-server.iso.

Recomendación: Para una instalación fiable, utilice imágenes ISO completas (DVD/Full), especialmente si la VM tiene una conexión a internet inestable o inexistente.

Recomendaciones de selección de Firmware

  • UEFI - recomendado para sistemas operativos modernos:
    • Linux: AlmaLinux 9+, Ubuntu 20.04+, Debian 11+;
    • Windows: Windows Server 2016+, Windows 10/11.
  • BIOS - para compatibilidad:
    • Versiones de SO más antiguas;
    • Cuando se encuentren problemas de arranque UEFI;
    • Escenarios específicos (aplicaciones heredadas/legacy).

Elección de la selección de software

Al instalar distribuciones Linux en XCP-ng, hay varias opciones de entorno disponibles:

  • Minimal Install - sistema básico sin GUI (~400-600 paquetes, instalación de 5-10 minutos)
    • Recomendado para servidores y producción;
    • Consumo mínimo de recursos.
  • Server with GUI - sistema completo con interfaz gráfica (~1000-1500 paquetes, instalación de 15-30 minutos)
    • Conveniente para aprendizaje y pruebas;
    • Requiere más recursos (RAM, CPU, disco).

Para servidores de producción en XCP-ng, se recomienda Minimal Install.

Instalación de XCP-ng Guest Tools

Tras instalar el sistema operativo, es extremadamente importante instalar XCP-ng Guest Tools para que la máquina virtual funcione correctamente.

Por qué son necesarias las Guest Tools

Las Guest Tools proporcionan:

  • Apagado y reinicio correctos de la VM (apagado suave/soft shutdown);
  • Visualización de la dirección IP y el estado de la VM en la interfaz de XCP-ng;
  • Rendimiento mejorado de red y disco;
  • Sincronización de la hora entre el host y el sistema operativo invitado;
  • Soporte para instantáneas (snapshots) con quiesce (instantáneas consistentes);

Atención

Sin las Guest Tools instaladas, la máquina virtual puede funcionar de forma inestable, especialmente en lo que respecta a las conexiones de red y la gestión del estado.

Secuencia de instalación de las Guest Tools

Paso 1: Completar la instalación del SO

Tras instalar el sistema operativo, cuando aparezca un mensaje de finalización o un aviso de reinicio:

Atención

No reinicie la máquina virtual inmediatamente. Primero, debe sustituir la ISO de instalación por guest-tools.iso.

Excepción: Si ya ha reiniciado la VM, no hay problema; la ISO puede conectarse después del primer arranque del sistema instalado.

Paso 2: Sustituir la ISO por Guest Tools (en el host XCP-ng)

Conéctese al host XCP-ng mediante SSH y ejecute los comandos.

Busque el UUID de su VM:

xe vm-list name-label="VM_NAME"

O obtenga una lista de todas las VMs en ejecución:

xe vm-list power-state=running

Ejemplo de salida:

uuid ( RO)           : 0218d2ca-bfb7-fdfb-0c78-7a115a69ecdc
     name-label ( RW): AlmaLinux 9
    power-state ( RO): running

Expulse la ISO de instalación (si está conectada):

xe vm-cd-eject uuid=<UUID_VM>

Inserte la ISO de guest-tools:

xe vm-cd-insert uuid=<UUID_VM> cd-name="guest-tools.iso"

Verifique que la ISO ha sido sustituida:

xe vbd-list vm-uuid=<UUID_VM> type=CD

Ejemplo de salida:

uuid ( RO)             : 5f644369-7b28-a39d-6bc0-2221ec2b92d3
          vm-uuid ( RO): 0218d2ca-bfb7-fdfb-0c78-7a115a69ecdc
    vm-name-label ( RO): AlmaLinux 9
         vdi-uuid ( RO): dd994bfa-83a6-482a-a2c4-f952a5d8ab81
            empty ( RO): false
           device ( RO): xvdd
Nota el parámetro device: este es el nombre del dispositivo en el sistema invitado (en este caso xvdd).

Paso 3: Reiniciar la VM

  • Si aún no ha reiniciado tras la instalación: En la consola de la VM, pulse "Reboot System" o ejecute el comando reboot;
  • Si ya está en un sistema en ejecución: No es necesario reiniciar, proceda al Paso 4.

Paso 4: Instalar Guest Tools en el SO invitado

El procedimiento de instalación depende del sistema operativo:

Para Linux (basados en RHEL: AlmaLinux, Rocky, CentOS, RHEL)

Inicie sesión en el sistema como root y ejecute los comandos.

Cree un punto de montaje:

mkdir -p /mnt/cdrom

Monte la ISO de guest-tools:

mount /dev/sr0 /mnt/cdrom

Si /dev/sr0 no funciona, pruebe con otras opciones:

mount /dev/cdrom /mnt/cdrom

o

mount /dev/xvdd /mnt/cdrom

Compruebe el contenido:

ls -la /mnt/cdrom/Linux/

Navegue hasta el directorio:

cd /mnt/cdrom/Linux

Ejecute la instalación:

bash install.sh

Ejemplo de salida:

Detected 'AlmaLinux release 9.7 (Moss Jungle Cat)' (almalinux version 9).

The following changes will be made to this Virtual Machine:
 * update arp_notify sysctl
 * packages to be installed/upgraded:
   - xe-guest-utilities-7.30.0-12.x86_64.rpm

Continue? [y/n] y

Pulse y y espere a que se complete la instalación.

Nota

La instalación puede quedarse bloqueada al 100% durante 30-60 segundos; esto es normal. Si se queda bloqueada durante más de 2 minutos, pulse Ctrl+C y compruebe el resultado.

Verifique la instalación:

rpm -qa | grep xe-guest
Debería mostrar algo como:
xe-guest-utilities-7.30.0-12.legacy.x86_64

Compruebe el script init.d:

ls /etc/init.d/ | grep xe

Debería mostrar:

xe-linux-distribution

Importante para AlmaLinux 9 / RHEL 9 / Rocky 9:

problema de systemd en distribuciones modernas

El script install.sh solo instala el script init.d, pero no crea un archivo de unidad systemd. Esto significa que los comandos systemctl status xe-linux-distribution y chkconfig no funcionarán.

Síntomas:

systemctl status xe-linux-distribution
Unit xe-linux-distribution.service could not be found.

chkconfig xe-linux-distribution on
bash: chkconfig: command not found...

Solución: Cree el archivo de unidad systemd manualmente. Ejemplo de creación del archivo:

cat > /etc/systemd/system/xe-linux-distribution.service << 'EOF'
[Unit]
Description=XCP-ng Guest Utilities
After=network.target

[Service]
Type=oneshot
ExecStart=/etc/init.d/xe-linux-distribution start
ExecStop=/etc/init.d/xe-linux-distribution stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF
Active e inicie el servicio:

systemctl daemon-reload
systemctl enable xe-linux-distribution
systemctl start xe-linux-distribution

Compruebe el estado del servicio:

systemctl status xe-linux-distribution

Desmonte la ISO:

cd ~
umount /mnt/cdrom

Reinicie el sistema para aplicar los cambios:

reboot

Para Linux (basados en Debian: Ubuntu, Debian)

Inicie sesión en el sistema como root o utilice sudo.

Cree un punto de montaje:

sudo mkdir -p /mnt/cdrom

Monte la ISO de guest-tools:

sudo mount /dev/sr0 /mnt/cdrom

Navegue hasta el directorio:

cd /mnt/cdrom/Linux

Ejecute la instalación:

sudo bash install.sh

Verifique la instalación:

dpkg -l | grep xe-guest

Compruebe el estado del servicio:

sudo systemctl status xe-linux-distribution

Desmonte la ISO:

cd ~
sudo umount /mnt/cdrom

Reinicie el sistema:

sudo reboot

Método alternativo para Linux: Instalación mediante repositorio

Si el montaje de la ISO no funciona o desea instalar las Guest Tools a través del gestor de paquetes.

Para sistemas basados en RHEL (AlmaLinux, Rocky, CentOS) instale el repositorio EPEL:

sudo dnf install -y epel-release

Instale xe-guest-utilities:

sudo dnf install -y xe-guest-utilities

Habilite el servicio:

sudo systemctl enable xe-linux-distribution

Inicie el servicio:

sudo systemctl start xe-linux-distribution

Compruebe el estado:

sudo systemctl status xe-linux-distribution

Nota

La instalación mediante repositorio requiere una conexión a internet activa en la VM.

Paso 5: Verificación del funcionamiento de las Guest Tools

Tras el reinicio y la instalación de las Guest Tools, verifique su funcionamiento.

En el SO invitado (Linux) compruebe el estado del servicio:

systemctl status xe-linux-distribution

O mediante init.d:

/etc/init.d/xe-linux-distribution status

Ejemplo de salida correcta:

os_distro="almalinux"
os_majorver="9"
os_minorver="7"
os_uname="5.14.0-611.5.1.el9_7.x86_64"
os_name="AlmaLinux release 9.7 (Moss Jungle Cat)"

En el host XCP-ng compruebe la información red:

xe vm-param-get uuid=<UUID_VM> param-name=networks

Compruebe el estado de los controladores PV:

xe vm-param-get uuid=<UUID_VM> param-name=PV-drivers-version

Obtenga información general de la VM:

xe vm-param-list uuid=<UUID_VM> | grep -E "PV-drivers|networks"
En la interfaz de XO Lite

Tras iniciar el servicio xe-linux-distribution, el Dashboard de la VM debería mostrar (actualizado tras 10-30 segundos):

  • IP address: Dirección IP de la VM;
  • Guest tools: Versión de las Guest Tools instaladas (p. ej., 7.30.0-12);
  • OS name: Sistema operativo detectado (p. ej., AlmaLinux release 9.7):

Gestión de máquinas virtuales

La pestaña VMS muestra una lista de todas las máquinas virtuales con capacidades de gestión:

Acciones disponibles:

  • Change state: iniciar, detener, reiniciar la VM;
  • Migrate: migrar la VM a otro host;
  • Copy: crear una copia de la máquina virtual;
  • Edit config: editar la configuración de la VM;
  • Snapshot: crear una instantánea de estado;
  • Export: exportar la VM a un archivo;
  • Delete: eliminar la máquina virtual.

Trabajar con almacenamiento, ISO y redes

Gestión de repositorios de almacenamiento (SR)

Ver todo el almacenamiento:

Listar todos los SR:

xe sr-list
Información detallada sobre un SR específico:

xe sr-param-list uuid=<UUID_SR>
Ver el uso del espacio en disco:

xe sr-list params=name-label,physical-size,physical-utilisation,uuid

Trabajar con almacenamiento ISO:

Buscar el SR de ISO:

xe sr-list content-type=iso
Obtener la ruta al SR de ISO:

xe pbd-list sr-uuid=<UUID_SR>
Navegar al directorio de ISO (normalmente /opt/xensource/packages/iso)

cd /opt/xensource/packages/iso
Ver las ISO disponibles:

ls -lh
Descargar ISO desde internet:
wget https://example.com/os.iso
Cargar ISO desde el ordenador local:

scp /ruta/al/archivo.iso root@<server_IP>:/opt/xensource/packages/iso/

Atención

Debe realizar un reescaneo del SR después de añadir una ISO

xe sr-scan uuid=<UUID_SR>
Verificar que la ISO ha aparecia:

xe vdi-list sr-uuid=<UUID_SR>

Gestión de almacenamiento local

Ver discos virtuales (VDI):

xe vdi-list sr-uuid=

Comprobar el espacio libre:

df -h

Ver la lista de instantáneas (snapshots):

xe snapshot-list | grep snapshot

Eliminar instantánea:

xe snapshot-uninstall snapshot-uuid=

Gestión de red

Ver todas las redes:

xe network-list

Información detallada de la red:

xe network-param-list uuid=

Ver interfaces físicas (PIF):

xe pif-list

Detalles específicos de PIF:

xe pif-param-list uuid=

Comprobar la dirección IP del host:

ip addr show

Crear una red interna:

xe network-create name-label="Internal Network" name-description="Private VM network"

Crear una red VLAN:

xe network-create name-label="VLAN100" name-description="VLAN 100" vlan=100 pif-uuid=

Ver las interfaces de red de la VM:

xe vif-list vm-uuid=

Crear una nueva interfaz de red para la VM:

xe vif-create vm-uuid=<UUID_VM> network-uuid=<UUID_NETWORK> device=0

Comandos básicos de CLI

Gestión de máquinas virtuales

Listar todas las VMs:

xe vm-list

Solo VMs en ejecución:

xe vm-list power-state=running

Información detallada de la VM:

xe vm-param-list uuid=<UUID_VM>

Iniciar VM:

xe vm-start uuid=<UUID_VM>

Apagar VM:

xe vm-shutdown uuid=<UUID_VM>

Reiniciar VM:

xe vm-reboot uuid=<UUID_VM>

Suspender VM:

xe vm-suspend uuid=<UUID_VM>

Apagar forzosamente la VM:

xe vm-shutdown uuid=<UUID_VM> force=true

Crear instantánea (snapshot):

xe vm-snapshot uuid=<UUID_VM> new-name-label="backup-$(date +%Y%m%d)"

Listar instantáneas:

xe snapshot-list

Restaurar desde una instantánea:

xe snapshot-revert snapshot-uuid=<UUID_snapshot>

Eliminar instantánea:

xe snapshot-uninstall snapshot-uuid=<UUID_snapshot>

Exportar VM:

xe vm-export uuid=<UUID_VM> filename=/path/to/backup.xva

Importar VM:

xe vm-import filename=/path/to/backup.xva

Monitorización y diagnóstico

Información del host:

xe host-list params=all

Monitorización de procesos:

top

Monitorización avanzada de procesos:

htop

Comprobar el uso de memoria:

free -h

Memoria libre del host:

xe host-param-get uuid=<UUID_host> param-name=memory-free

Uso de CPU por máquinas virtuales:

xe vm-list params=name-label,power-state,VCPUs-utilisation

Ver el log principal de XCP-ng:

tail -f /var/log/xensource.log

Logs del sistema:

journalctl -xe

Ver mensajes del sistema:

tail -f /var/log/messages

Logs de Xen:

xl dmesg

Crear un informe de error (contiene toda la información de diagnóstico):

xen-bugtool -y

Ubicación del informe

El resultado se guardará en /var/opt/xen/bug-report/

Gestión de imágenes ISO y unidades CD

Listar imágenes ISO disponibles:

xe cd-list

Información detallada sobre una ISO en el SR:

xe vdi-list sr-uuid= content-type=iso

Adjuntar ISO a la VM:

xe vm-cd-insert uuid= cd-name=".iso"

Expulsar ISO de la VM:

xe vm-cd-eject uuid=

Comprobar el CD/ISO conectado a la VM:

xe vbd-list vm-uuid= type=CD

Navegar al directorio de ISO en el host:

cd /opt/xensource/packages/iso

Descargar ISO desde internet:

wget https://example.com/os.iso

Realizar un reescaneo del SR tras cargar una ISO:

xe sr-scan uuid=

Comprobar de nuevo:

xe cd-list

Comprobación del estado de las Guest Tools

Comprobar la versión de los controladores PV:

xe vm-param-get uuid= param-name=PV-drivers-version

Comprobar si los controladores PV están actualizados:

xe vm-param-get uuid= param-name=PV-drivers-up-to-date

Obtener información del SO invitado:

xe vm-param-get uuid= param-name=os-version

Comprobar la detección de los controladores PV:

xe vm-param-get uuid= param-name=PV-drivers-detected

Obtener información de red de la VM:

xe vm-param-get uuid= param-name=networks

En la interfaz de XO Lite

Tras iniciar el servicio xe-linux-distribution, el Dashboard de la VM debería mostrar (actualizado tras 10-30 segundos):

  • IP address: Dirección IP de la VM;
  • Guest tools: Versión de las Guest Tools instaladas (p. ej., 7.30.0-12);
  • OS name: Sistema operativo detectado (p. ej., AlmaLinux release 9.7):

Problemas comunes y soluciones

Problema: La VM arranca en modo de emergencia/recuperación

Síntomas:

Aparece el mensaje "You are in emergency mode" o "Welcome to emergency mode";

Causas típicas:

  • Errores de configuración de arranque (fstab para Linux);
  • Corrupción del sistema de archivos;
  • Problemas de virtualización;
  • Apagado incorrecto de la VM.

Solución para Linux:

Inicie sesión en el sistema con la contraseña de root (o pulse Ctrl+D para continuar).

Compruebe los logs del sistema:

journalctl -xb | grep -i error

Compruebe los mensajes del kernel:

dmesg | grep -i error

Compruebe el sistema de archivos:

cat /etc/fstab

Compruebe el uso del disco:

df -h

Compruebe los dispositivos de bloque:

lsblk

Si el problema está en fstab (p. ej., falta el swap o un disco), edite el archivo:

nano /etc/fstab

Comente la línea problemática añadiendo # al principio. Ejemplo:

# /dev/mapper/almalinux-swap none swap defaults 0 0

Si necesita comprobar el sistema de archivos, primero desmonte la partición:

umount /dev/xvda2

Compruebe y repare el sistema de archivos:

fsck -y /dev/xvda2

Reinicie el sistema:

systemctl reboot

Problema: GRUB no carga o se bloquea

Síntomas:

  • La VM se bloquea en la pantalla de TianoCore (UEFI);
  • Aparece "Welcome to GRUB" y no sucede nada;
  • Pantalla negra con cursor después de BIOS/UEFI.

Causas típicas:

  • Orden de arranque (boot order) incorrecto;
  • La ISO sigue conectada como primer dispositivo de arranque;
  • Corrupción del cargador de arranque GRUB;
  • Incompatibilidad UEFI/BIOS.

Solución 1: Comprobar y cambiar el orden de arranque

En el host XCP-ng, compruebe el boot order actual:

xe vm-param-get uuid=<UUID_VM> param-name=HVM-boot-params

Posibles valores de orden: - cdn - HDD ©, CD (d), Red (n) - dcn - CD (d), HDD ©, Red (n) - c - Solo HDD

Para la instalación del SO, establezca el CD primero:

xe vm-param-set uuid=<UUID_VM> HVM-boot-params:order=dcn

Tras la instalación del SO, establezca el arranque solo desde el HDD:

xe vm-param-set uuid=<UUID_VM> HVM-boot-params:order=c

Expulse la ISO de instalación si sigue conectada:

xe vm-cd-eject uuid=<UUID_VM>

Reinicie la VM:

xe vm-reboot uuid=<UUID_VM> --force

Solución 2: Arrancar a través de GRUB Rescue (para Linux)

Si termina en la línea de comandos de GRUB (aparece el prompt grub>), ejecute los siguientes comandos.

Busque las particiones disponibles:

ls
La salida será algo como: (hd0) (hd0,msdos2) (hd0,msdos1)

Busque la partición con /boot (normalmente msdos1 o gpt1):

ls (hd0,msdos1)/

Compruebe el contenido de arranque:

ls (hd0,msdos1)/boot/

Debería ver archivos vmlinuz, initramfs y la carpeta grub2.

Para sistemas BIOS ejecute:

set root=(hd0,msdos1)
set prefix=(hd0,msdos1)/grub2
insmod normal
normal

Para sistemas UEFI ejecute:

set root=(hd0,gpt1)
set prefix=(hd0,gpt1)/boot/grub2
insmod normal
normal

Tras el arranque del sistema, restaure GRUB.

Para sistemas basados en RHEL (AlmaLinux, Rocky, CentOS):

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Para sistemas UEFI:

sudo grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg

Para sistemas basados en Debian (Ubuntu, Debian):

sudo update-grub

Reinstale GRUB si es necesario (para BIOS):

sudo grub2-install /dev/xvda

Solución 3: Cambiar entre UEFI y BIOS

Si los problemas persisten, compruebe el modo actual en el host XCP-ng:

xe vm-param-get uuid=<UUID_VM> param-name=HVM-boot-params

Cambie a BIOS (puede requerir la reinstalación del SO):

xe vm-param-remove uuid=<UUID_VM> param-name=HVM-boot-params param-key=firmware

O establezca explícititamente BIOS:

xe vm-param-set uuid=<UUID_VM> HVM-boot-params:firmware=bios

Problema: La red no funciona tras la instalación

Síntomas:

  • La VM no obtiene dirección IP;
  • La interfaz de red muestra "disconnected" o "no carrier";
  • El ping no funciona;
  • La dirección IP no se muestra en la interfaz de XCP-ng;

Causas típicas:

  • Guest Tools no instaladas (causa principal);
  • Configuración de red incorrecta en la VM;
  • Problemas con el adaptador de red virtual;
  • El firewall bloquea la conexión.

Solución:

  1. Instale las Guest Tools (ver sección anterior) - esto resolverá el 90% de los problemas de red.

  2. Compruebe el estado de la interfaz de red en el SO invitado

    Para Linux compruebe el estado de la interfaz:

    ip link show
    

    Compruebe las direcciones IP:

    ip addr show
    

    Para sistemas con NetworkManager:

    nmcli device status
    

    Compruebe las conexiones:

    nmcli connection show
    

    Para sistemas con systemd-networkd:

    networkctl status
    

    Compruebe el enrutamiento:

    ip route show
    

  3. Habilite y configure la interfaz

    Para sistemas basados en RHEL con NetworkManager habilite la interfaz:

    sudo nmcli device set eth0 managed yes
    

    Levante la conexión:

    sudo nmcli connection up eth0
    

    O reinicie NetworkManager:

    sudo systemctl restart NetworkManager
    

    Para sistemas basados en Debian compruebe la configuración (Ubuntu 18.04+):

    cat /etc/netplan/00-installer-config.yaml
    

    Para Debian/Ubuntu antiguo:

    cat /etc/network/interfaces
    

    Habilite la interfaz:

    sudo ip link set eth0 up
    

    Solicite IP vía DHCP:

    sudo dhclient eth0
    

  4. Compruebe los ajustes de XCP-ng

    En el host XCP-ng compruebe las interfaces de red virtuales de la VM:

    xe vif-list vm-uuid=<UUID_VM>
    

    Compruebe las redes disponibles:

    xe network-list
    

    Si la VIF falta o es incorrecta, obtenga el UUID de la red:

    xe network-list name-label="Pool-wide network associated with eth0"
    

    Cree una nueva VIF:

    xe vif-create vm-uuid=<UUID_VM> network-uuid=<UUID_NETWORK> device=0
    

  5. Compruebe el firewall

    Para Linux (firewalld) compruebe el estado:

    sudo systemctl status firewalld
    

    Desactive temporalmente para pruebas:

    sudo systemctl stop firewalld
    

    Para Linux (iptables) compruebe las reglas:

    sudo iptables -L -n
    

    Limpie temporalmente las reglas para pruebas:

    sudo iptables -F
    

Problema: Instalación del SO muy lenta

Síntomas:

  • La instalación tarda varias horas en lugar de 15-30 minutos;
  • La copia de paquetes es muy lenta;
  • La VM se bloquea en la etapa de "Installing packages" o "Configuring".

Causas típicas:

  • Subsistema de disco del host lento (HDD en lugar de SSD);
  • Storage Repository sobrecargado;
  • Recursos de la VM insuficientes (CPU, RAM);
  • Problemas de rendimiento del host.

Soluciones:

  1. Utilice una instalación mínima (Minimal Install) para Linux:

    • Minimal contiene ~400-600 paquetes en lugar de 1000-1500 (Server con GUI);
    • La instalación tarda 5-10 minutos en lugar de horas;
    • Para servidores de producción, la GUI no suele ser necesaria;
    • Puede instalar los paquetes necesarios después de la instalación.
  2. Aumente temporalmente los recursos de la VM

    En el host XCP-ng (antes de iniciar o durante la instalación) aumente la RAM:

    xe vm-param-set uuid=<UUID_VM> memory-static-max=8GiB memory-dynamic-max=8GiB
    

    Aumente la vCPU:

    xe vm-param-set uuid=<UUID_VM> VCPUs-max=4 VCPUs-at-startup=4
    

  3. Compruebe el rendimiento del disco

    En el host XCP-ng compruebe la E/S (I/O):

    iostat -x 1
    

    Compruebe la carga del disco:

    iotop
    

    Compruebe el estado del SR:

    xe sr-list
    

    Obtenga detalles del SR:

    xe sr-param-list uuid=<UUID_SR>
    

  4. Utilice un almacenamiento más rápido:

    • Si hay varios SR disponibles, utilice SSD-based storage;
    • Considere la migración a otro SR.

Problema: No se puede conectar la ISO

Síntomas:

  • Error "The VM has no empty CD drive (VBD)";
  • Error "No matching VMs found";
  • La ISO no aparece en la lista de disponibles.

Solución 1: La VM no tiene una unidad CD vacía

Compruebe los VBDs (Virtual Block Devices) existentes:

xe vbd-list vm-uuid=<UUID_VM>

Si la unidad CD está ocupada por otra ISO, expúlsela:

xe vm-cd-eject uuid=<UUID_VM>

Ahora inserte la ISO necesaria:

xe vm-cd-insert uuid=<UUID_VM> cd-name="guest-tools.iso"

Si la unidad CD no existe, primero busque el UUID de la ISO necesaria:

xe cd-list name-label="guest-tools.iso"

Cree el VBD manualmente:

xe vbd-create vm-uuid=<UUID_VM> vdi-uuid=<UUID_ISO> device=3 bootable=false mode=RO type=CD

Solución 2: No se encontraron VMs coincidentes

Problema: uso del UUID del Control Domain en lugar de la VM.

Compruebe la lista de VMs correctamente (excluyendo el Control Domain):

xe vm-list is-control-domain=false

Asegúrese de estar utilizando el UUID correcto comprobando:

xe vm-param-list uuid=<UUID_VM> | grep "is-control-domain"

Debería ser: is-control-domain ( RO): false

Solución 3: La ISO no aparece en la lista

Compruebe que la ISO esté cargada:

xe cd-list

Si la ISO no está en la lista, busque el SR de la ISO:

xe sr-list content-type=iso

Navegue al directorio de ISO:

cd /opt/xensource/packages/iso

Compruebe la presencia del archivo:

ls -lh

Si el archivo falta, descárguelo desde internet:

wget https://example.com/your-iso.iso

O desde su ordenador local (ejecute en su PC):

scp /ruta/local/archivo.iso root@<IP-host>:/opt/xensource/packages/iso/

Realice un reescaneo del SR:

xe sr-scan uuid=<UUID_SR>

Comprobar de nuevo:

xe cd-list

Problema: La VM no se apaga correctamente

Síntomas:

  • xe vm-shutdown no funciona o se bloquea
  • La VM solo puede apagarse mediante --force
  • Errores de tiempo de espera (timeout) en los logs

Causas:

  • Guest Tools no instaladas o no funcionan
  • El SO no responde a los eventos ACPI
  • Procesos bloqueados en el SO invitado

Solución:

  1. Instale/compruebe las Guest Tools (causa principal)

  2. Compruebe el estado de las Guest Tools

    En el host XCP-ng compruebe la versión de los controladores PV:

    xe vm-param-get uuid=<UUID_VM> param-name=PV-drivers-version
    

    Compruebe la actualidad de los controladores:

    xe vm-param-get uuid=<UUID_VM> param-name=PV-drivers-up-to-date
    

  3. Utilice los comandos de apagado correctos

    Apagado suave (requiere Guest Tools):

    xe vm-shutdown uuid=<UUID_VM>
    

    Apagado forzado (equivalente a pulsar el botón de encendido):

    xe vm-shutdown uuid=<UUID_VM> --force
    

Apagado brusco (equivalente a desenchufar el cable de alimentación, use solo como último recurso):

xe vm-destroy uuid=<UUID_VM>

Consejos de diagnóstico general

Cuando ocurran problemas, compruebe siempre los logs.

En el SO invitado (Linux) compruebe los eventos recientes:

journalctl -xe

Compruebe los mensajes del kernel:

dmesg | tail -50

Ver el log del sistema (basados en RHEL):

tail -f /var/log/messages

Ver el log del sistema (basados en Debian):

tail -f /var/log/syslog

En el host XCP-ng vea el log principal:

tail -f /var/log/xensource.log

Compruebe los mensajes del hipervisor Xen:

xl dmesg

Compruebe los eventos del sistema:

journalctl -xe

Crear un informe de diagnóstico en el host XCP-ng:

xen-bugtool -y

El resultado se guardará en /var/opt/xen/bug-report/

Nota

La información detallada sobre la configuración y administración de XCP-ng está disponible en la documentación oficial.

Nota

XCP-ng Forum - foro de la comunidad para obtener ayuda.

Pedir un servidor con XCP-ng mediante la API

Para instalar un servidor con RouterOS utilizando la API, siga estas instrucciones.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×