Xen Setup · 10 min read · Dec 06, 2025

Cómo configurar Xen 4.3 en Debian Wheezy (7.0.2) y luego actualizar a Jessie

Cómo configurar Xen 4.3 en Debian Wheezy (7.0.2) y luego actualizar a Jessie

Versión 1.0
Autor: Peter Okupski

Esto será una configuración rápida y fácil de XEN (dom0-hypervisor) y un sistema virtual (domU-guest). Quería probar XEN como mi segunda experiencia después de VMware y dado que muchas páginas web están desactualizadas y tienen muchos errores y bugs fijos antiguos. He decidido probarlo con XEN.

Nota importante:

¿Quién se beneficiará de este tutorial? Solo principiantes que deseen probar máquinas virtuales simples sin ningún dispositivo de nube real como XenOrchestra, Cloudstack, Opencloud y cualquier cosa que use XAPI para Xen Cloud Platform (XCP). Espero que esto ahorre tiempo a cualquiera que necesite un dispositivo de nube real con al menos una interfaz gráfica web y algunas funciones para la asignación de almacenamiento/memoria/CPU, que en este momento no se puede aplicar a un simple hipervisor Xen. (o es demasiado trabajo:)

¿Para quién no es? Para cualquier usuario/empresa que necesite alta disponibilidad y un dispositivo de nube real.

Animo a todos ustedes, novatos de Xen, a ver este video para tener una idea y comprensión de Xen.

El tutorial se dividirá en las siguientes secciones:

  1. Instalación simple de Debian con configuración LVM rápida y sencilla
  2. Actualizar a Jessie, para que estemos al día con las últimas correcciones de XEN
  3. Instalación de XEN 4.3
  4. Algunos consejos de ajuste de XEN
  5. Configuración de puente simple de XEN
  6. Configuración de XEN para usar plantillas para crear hosts
  7. Creando el primer sistema domU Guest con un solo comando;)

1. Instalación simple de Debian con configuración LVM

Sugiero usar ISOs no oficiales (pero de Debian) que ya tienen firmware no libre necesario para tarjetas de red Broadcom y otras, que podrían romper este bonito y fácil proceso.

ISOs no oficiales de Debian

Después de la configuración inicial del instalador de Debian, elija la configuración de partición personalizada como se indica a continuación: creé las siguientes particiones:

Punto de montajeTamañoComentario
/boot200 MB(Primaria) (Ubicación para la nueva partición: Inicio) (ext3) (Bandera de arranque: activada <– importante, de lo contrario, su sistema no arrancará!)
swap1GB(Lógica) (Ubicación para la nueva partición: Inicio) (la memoria de dom0 se reducirá a 512M)
/6GB(Lógica) (Ubicación para la nueva partición: Inicio) (ext3)

Podemos configurar el resto del disco como LVM. Necesitamos aceptar los cambios y escribirlos en el disco.

Su instalación debería finalizar, y necesita escribir grub en su disco. Después de eso, la instalación se reiniciará.

Después de instalar, sus particiones deberían verse así:

root@xen-dom0:~# df -h   
Sistema de archivos Tamaño Usado Disponible Uso% Montado en  
/dev/sda6 6.0G 2.0G 2.4G 30% /  
udev 10M 0 10M 0% /dev  
tmpfs 38M 268K 38M 1% /run  
tmpfs 5.0M 0 5.0M 0% /run/lock  
tmpfs 266M 0 266M 0% /run/shm  
/dev/sda1 180M 28M 140M 17% /boot

Ahora instalaremos lvm y crearemos el primer volumen físico.

apt-get install lvm2
pvcreate /dev/sda7

| Volumen físico "/dev/sda7" creado con éxito root@xen-dom0:/etc/xen-tools# pvscan PV /dev/sda7 lvm2 [273.51 GiB] Total: 1 [273.51 GiB] / en uso: 0 [0 ] / en no VG: 1 [273.51 GiB] root@xen-dom0:/etc/xen-tools# pvdisplay "/dev/sda7" es un nuevo volumen físico de "273.51 GiB" --- NUEVO Volumen físico --- Nombre PV /dev/sda7 Nombre VG Tamaño PV 273.51 GiB Asignable NO Tamaño PE 0 Total PE 0 PE Libre 0 PE Asignado 0 UUID PV 1vKp2c-KbmM-w8Ql-noOe-U00J-hlr0-FsKwOM |

Es hora de crear el grupo de volúmenes (vg0) (¡nota el cambio de letras p/v! antes de crear)

vgcreate vg0 /dev/sda7

| Grupo de volúmenes "vg0" creado con éxito |

Veamos si todo salió bien.

vgdisplay

| --- Grupo de volúmenes --- Nombre VG vg0 ID del sistema Formato lvm2 Áreas de metadatos 1 Número de secuencia de metadatos 1 Acceso VG lectura/escritura Estado VG redimensionable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 Tamaño VG 273.51 GiB Tamaño PE 4.00 MiB Total PE 70018 PE Asignados / Tamaño 0 / 0 PE Libre / Tamaño 70018 / 273.51 GiB UUID VG 2a3kn9-DvVA-3Qac-g4Wz-f2Xo-s5hk-Yh5fBc |

Después de configurar LVM, podemos proceder a limpiar nuestro dom0 de esos paquetes innecesarios:

apt-get remove bsd-mailx exim4 exim4-base exim4-daemon-light nfs-common

Y luego podemos instalar algunos que necesitamos/podríamos necesitar:

apt-get install mc screen ssh debootstrap python iproute bridge-utils libcurl3-dev

Después de instalar, Debian puro 7.0.2 ocupa alrededor de 760MB.

| rootfs 4.6G 764M 3.7G 18% / |

2. Actualizar a Debian Jessie

Ahora podemos hacer una actualización a testing (Jessie) ya que necesitamos que XEN esté lo más fresco posible.

Utilice este generador: le ahorrará tiempo:) y algunos errores. O simplemente cambie “wheezy” a “jessie”, y “stable” a “testing” en /etc/apt/sources.list.

/etc/apt/sources.list

| deb http://ftp.pl.debian.org/debian testing main contrib non-free deb-src http://ftp.pl.debian.org/debian testing main contrib non-free deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free deb-src http://ftp.debian.org/debian/ jessie-updates main contrib non-free deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free |

Primero:

apt-get update; apt-get -y upgrade

Durante la actualización se le pedirá que reinicie los servicios: elija Sí. A continuación, descargaremos todos los .deb que necesitamos (solo por razones de seguridad):

apt-get -y --download-only dist-upgrade

Luego podemos proceder a la actualización real. Es mejor reiniciar después de esto, para que el kernel cambie de 3.2 a 3.11.

apt-get -y dist-upgrade

Limpieza:

apt-get clean; apt-get autoclean;apt-get autoremove

3. Instalación de XEN 4.3

Primero debemos verificar si nuestra CPU admite virtualización por hardware.

egrep '(vmx|svm)' --color=always /proc/cpuinfo

La salida debería verse así:

root@xxxx:~# egrep '(vmx|svm)' --color=always /proc/cpuinfo  
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority  
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority

Luego podemos proceder a instalar XEN: el hipervisor, el kernel consciente de xen y las herramientas xen. Esto se puede hacer mediante un metapaquete:

apt-get install xen-linux-system xen-tools

Debian Wheezy usa Grub 2 y, por defecto, lista primero los kernels normales, y solo luego lista el hipervisor Xen y sus kernels. Puede cambiar esto para hacer que Grub 2 prefiera arrancar Xen, cambiando la prioridad del script de configuración de Xen de Grub (20_linux_xen) para que sea mayor que la configuración estándar de Linux (10_linux). Esto se hace más fácilmente usando dpkg-divert:

dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen

Después de cualquier actualización a la configuración de Grub, debe aplicar la configuración ejecutando:

update-grub

4. Ajuste de Xen

  1. Establecer la memoria de Dom0 en 512Mb y deshabilitar el Ballooning para que los DomUs nunca tomen la memoria de Dom0.
  2. Evitar que las máquinas virtuales en volúmenes lógicos aparezcan en el menú de arranque.
  3. Deshabilitar el guardado y la restauración de Xendomains.
  4. Limitar solo a la 1ª CPU para dom0.

1. Establecer la memoria de Dom0 en 512Mb y deshabilitar el balonamiento

/etc/xen/xend-config.sxp

| (dom0-min-mem 512) (enable-dom0-ballooning no) |

2. Evitar que las máquinas virtuales en volúmenes lógicos aparezcan en el menú de arranque

Modificar grub:

/etc/default/grub

| #asignar memoria a dom0 GRUB_CMDLINE_XEN="dom0_mem=512M" # Deshabilitar OS prober GRUB_DISABLE_OS_PROBER=true |

update-grub;reboot

3. Deshabilitar el guardado y la restauración de Xendomains

/etc/default/xendomains

| #XENDOMAINS_SAVE=/var/lib/xen/save XENDOMAINS_SAVE= #XENDOMAINS_RESTORE=true XENDOMAINS_RESTORE=false |

4. Limitar dom0 a solo la 1ª CPU

Por defecto, todas las CPUs se comparten entre dom0 y todos los domU (invitados). Puede romper la responsabilidad de dom0 si los invitados consumen demasiado tiempo de CPU. Para evitar esto, es posible otorgar un (o más) núcleo de procesador a dom0 y también fijarlo a dom0.

Agregue las siguientes opciones a /etc/default/grub para asignar un núcleo de CPU a dom0:

/etc/default/grub

| # Parámetros de arranque de Xen para todos los arranques de Xen GRUB_CMDLINE_XEN="dom0_mem=512M dom0_max_vcpus=1 dom0_vcpus_pin" # Deshabilitar OS prober GRUB_DISABLE_OS_PROBER=true |

Recuerde ejecutar update-grub después de estos cambios!

update-grub

También haga tales cambios en /etc/xen/xend-config.sxp:

/etc/xen/xend-config.sxp

| (dom0-cpus 1) |

!! Antes de reiniciar, verifique si hizo update-grub y luego reinicie su servidor !!

5. Configuración de puente simple de XEN

La mayoría de las configuraciones utilizarán una configuración BRIDGEed, y eso es suficiente si planea un entorno simple, pero recomiendo encarecidamente usar OpenVSwitch si requiere VLANs o cualquier ACL, etc.

Aquí está la versión fácil para solo un puente simple:

apt-get install bridge-utils

Necesitamos editar: /etc/network/interfaces

/etc/network/interfaces

| ##La interfaz de red de loopback auto lo iface lo inet loopback iface eth0 inet manual auto xenbr0 iface xenbr0 inet static address 10.0.9.100 netmask 255.255.255.0 network 10.0.9.0 broadcast 10.0.9.255 gateway 10.0.9.1 # opciones dns-* son implementadas por el paquete resolvconf, si está instalado dns-nameservers 10.0.9.2 dns-search yourdomain.net bridge_ports eth0 #otras opciones posiblemente útiles en un entorno virtualizado bridge_stp off # deshabilitar el Protocolo de Árbol de Expansión bridge_waitport 0 # sin demora antes de que un puerto esté disponible bridge_fd 0 # sin demora de reenvío |

Después de eso, debería reiniciar la red con

/etc/init.d/networking restart

Y verificar si su puente ha subido

brctl show

| nombre del puente id del puente STP habilitado interfaces xenbr0 8000.001a6479cd8c no eth0 |

6. Configuración de XEN-Tools para usar plantillas para sus máquinas virtuales (invitados-domU)

Ahora vamos a crear nuestra primera imagen de nuevo domU con una plantilla. Necesitamos editar el archivo:

/etc/xen-tools/xen-tools.conf

| lvm = vg0 # su grupo de volúmenes que creamos antes install-method = debootstrap # Esto lanzará el instalador de debian tamaño = 10Gb # Tamaño de la imagen del disco. memoria = 512Mb # Tamaño de la memoria swap = 2Gb # Tamaño de swap noswap = 1 # No usar swap en absoluto para el nuevo sistema. fs = ext4 # usar el sistema de archivos EXT3 para la imagen del disco. dist = `xt-guess-suite-and-mirror --suite` # Distribución predeterminada para instalar. imagen = sparse # Especificar imágenes de disco dispersas vs. completas. gateway = 10.0.9.1 # Su puerta de enlace, que dom0 también está usando con el puente netmask = 255.255.255.0 # sin comentarios necesarios;) broadcast = 10.0.9.255 # Su difusión bridge = xenbr0 # Aquí deberíamos usar el puente que creamos, xen lo convertirá en eth0 en domU. cachedir = /var/cache/xen-tools/archives/ # Lugar para *.debs para uso posterior passwd = 1 #Esto pedirá una contraseña de root para crear en la nueva máquina kernel = /boot/vmlinuz-`uname -r` #Usará el mismo kernel que usa dom0 (esto es crucial, para evitar problemas) initrd = /boot/initrd.img-`uname -r` #Lo mismo aquí para initrd mirror = `xt-guess-suite-and-mirror --mirror` mirror = ftp://ftp.pl.debian.org/debian/ #Ingrese su espejo de debian ext3_options = noatime,nodiratime,errors=remount-ro #Opciones simples para aplicar para la nueva máquina ext2_options = noatime,nodiratime,errors=remount-ro xfs_options = defaults reiserfs_options = defaults btrfs_options = defaults boot = 1 # ¿Queremos arrancar nuestra nueva máquina después de crearla? ¡Claro que sí! |

7. Creando el primer domU Guest

Ahora podemos crear nuestro primer host domU:

xen-create-image --hostname domU-test --dist=jessie --vcpus=4 --ip=10.0.9.101

Esto tomará alrededor de 3-4 minutos, dependiendo de la velocidad de su conexión, CPU y velocidad del disco. Una vez que haya terminado, podemos verificar si está funcionando.

xm list

| Nombre ID Mem VCPUs Estado Tiempo(s) Dominio-0 0 512 1 r----- 93.8 domU-test 1 512 4 -b---- 23.9 |

Recomiendo leer xen-create-image –help ya que le dará una idea de lo que puede cambiar proporcionándole opciones para crear cualquier distribución. Ejemplo: ejecutar comandos después y todas las demás cosas que pueda necesitar. También hay una opción para generar una imagen y usarla para un sistema-plantilla listo para lanzar, sin tener que ejecutar el instalador durante 3 minutos cada vez.

Ahora puede iniciar sesión en su nuevo host con ssh.

A continuación, puede encontrar enlaces que utilicé en este tutorial:

  1. Xen en la Wiki de Debian
  2. OpenVSwitch
  3. Xen 4 en Debian Wheezy
  4. Ajuste de XEN - Wiki de XEN
  5. Generador de fuentes Apt
  6. Mejores prácticas de Xen
  7. Cómo usar LVM
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.