Herramientas de usuario

Herramientas del sitio


octaviotron:xen

Xen en Debian Jessie

El sistema debe tener la siguiente geometría de particiones:

  • Una partición raíz, de 20 GB (/dev/sda1)
  • Una partición swap, del tamaño de la memoria RAM (/dev/sda2)
  • Una partición con todo el resto del disco, sin montar, para LVM (/dev/sda3)

Configurando LVM

Es necesario que se usen volúmenes virtuales para el almacenamiento de las máquinas virtuales

Instalamos LVM

aptitude install lvm2

Usamos la partición sin montar, como volumen físico:

pvcreate /dev/sda3

Creamos el grupo de volúmenes:

vgcreate vg0 /dev/sda3

No es necesario luego crear volúmenes lógicos, pero podemos probar:

lvcreate -nprueba -L10G vg0
lvremove /dev/vg0/prueba

Instalación y Configuración de XEN

Instalamos los paquetes de XEN

aptitude install xen-linux-system-amd64 xen-tools

Colocamos la opción del GRUB para que XEN quede de primero

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

agregamos esta línea en /etc/default/grub

GRUB_CMDLINE_XEN="dom0_mem=1024M dom0_max_vcpus=1 dom0_vcpus_pin"

o dependiendo de la versión:

GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=1024M dom0_max_vcpus=1 dom0_vcpus_pin"

Los parámetros anteriores harán que:

  • Dom0 use sólo 1GB de memoria. No necesitará más que eso, si es sólo para administrar las VMs, de hecho usará menos de 512M.
  • Dom0 usará exclusivamente 1 core del CPU, dejando los demás para las VMs

Esta guía es para el caso de un servidor con 16GB de memoria y 8 cores de CPU. En situaciones donde hayan más recursos o donde en Dom0 se vayan a instalar aplicaciones además de XEN, se pueden ampliar estos valores. Por ejemplo usando dom0_max_vcpus=2 y dom0_mem=2048M

Actualizamos GRUB para que esos cambios sean tomados

update-grub

Creamos el lugar donde se alojarán las futuras configuraciones de las VMs

mkdir -p /etc/xen/conf.d

Archivos de Configuración

Configuramos el toolstack (xl) para asegurarnos el uso restringido de la memoria de Dom0 e igualmente lo configuramos para que asuma valores por omisión en la creación de máquinas virtuales.

/etc/xen/xl.conf

autoballoon="off"
run_hotplug_scripts=1
vif.default.backend="0"
vif.default.gatewaydev="eth0"
vif.default.script="vif-bridge"
vif.default.bridge="xenbr0"

Nos aseguramos que use XL /etc/default/xen

TOOLSTACK=xl

Esto es muy largo de explicar y en la documentación se detalla suficientemente cada parámetro: /etc/xen-tools/xen-tools.conf

lvm = vg0
install-method = debootstrap
size   = 4G
memory = 512M
maxmem = 4096M
swap   = 512M
fs     = ext3
dist   = `xt-guess-suite-and-mirror --suite`
image  = sparse
gateway    = 192.168.1.1
netmask    = 255.255.255.0
broadcast  = 192.168.1.255
bridge = xenbr0
genpass = 1
passwd = 1
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
pygrub = 1
mirror = `xt-guess-suite-and-mirror --mirror`
ext4_options     = noatime,nodiratime,errors=remount-ro
ext3_options     = noatime,nodiratime,errors=remount-ro
ext2_options     = noatime,nodiratime,errors=remount-ro
xfs_options      = defaults
reiserfs_options = defaults
btrfs_options    = defaults
output    = /etc/xen/conf.d
extension = .cfg

Necesitaremos configurar una interfaz virtual “puente” para las conexiones de las VMs al exterior /etc/network/interfaces

auto xenbr0
iface xenbr0 inet static
    bridge_ports eth0
    address 192.168.1.200
    netmask 255.0.0.0
    broadcast 192.168.1.255
    gateway 192.168.1.1

Reiniciamos la tarjeta de red, creando la interfaz virtual:

ifdown eth0 && ifup xenbr0 && ifup eth0

Creando Máquinas Virtuales

Antes de crear la primera de ellas es necesario, después de haber hecho los pasos anteriores, que se reinicie el host, el cual deberá arrancar con el Hypervisor

xen-create-image --hostname="maquina-x" \
  --memory=512mb --size=10G --swap=512mb --vcpus=num \
  --ip=x.x.x.x --gateway=x.x.x.x \
  --dist=jessie --mirror=http://http.debian.net/debian

y para que la consola tenga colores se le agrega al archivo generado en /etc/xen/conf.d/

extra = 'xen-fbfront.video=16,1024,768'

Teniendo la imagen creada, levantamos la máquina:

xl create /etc/xen/conf.d/maquina-x.cfg

Podemos ver las máquinas levantadas con el comando

xl list

Para acceder por la consola interna de XEN a cadauna de las máquinas virtuales:

xl console maquina

y para salir de esa consola usar la combinación CTRL + ]

Administrando el ancho de banda por máquina

En el archivo de configuración respectivo en /etc/xen/conf.d/ se le debe modificar el valor “vif” de la sección Networking, agregando el parámetro “rate”:

vif = [ 'rate=256KB/s , mac=00:16:3e:7a:55:1c, bridge=xenbr0']

En este caso se le está otorgando un máximo de 256 Kbps a la maquina virtual.

octaviotron/xen.txt · Última modificación: 2016/04/28 10:33 por octaviotron