Capítulo 17. Virtualización mediante Xen

Tabla de contenidos

17.1. Instalación de Xen
17.2. Instalación de dominios
17.3. Inicio y control de los dominios Xen con xm
17.4. Solución de problemas
17.5. Información adicional

Resumen

Xen hace posible ejecutar varios sistemas Linux en una máquina física. El hardware para los distintos sistemas se proporciona de forma virtual. Este capítulo ofrece una descripción general de las posibilidades y limitaciones de esta tecnología. Las secciones sobre la instalación, configuración y ejecución de Xen completan esta introducción.

Por lo general, las máquinas virtuales necesitan imitar el hardware que un sistema necesita. El inconveniente es que el hardware emulado es mucho más lento que el real. Xen adopta una perspectiva diferente, puesto que restringe la emulación al número mínimo posible de partes. Para lograrlo, Xen utiliza la paravirtualización. Ésta es una técnica que presenta máquinas virtuales similares, aunque no idénticas al hardware subyacente. Por lo tanto, los sistemas operativos del host y del invitado se adaptan al nivel del núcleo. El espacio de usuario permanece sin cambios. Xen controla el hardware con un hipervisor y un invitado controlador (también denominado "dominio-0") que proporcionan los dispositivos virtuales de bloque y de red necesarios. Los sistemas invitados utilizan estos dispositivos para ejecutar el sistema y realizar la conexión con otros invitados o con la red local. Cuando varias máquinas físicas que ejecutan Xen se configuran de tal forma que los dispositivos virtuales de bloque y de red se encuentran disponibles, también resulta posible migrar un sistema invitado de un elemento de hardware a otro durante su ejecución. Originariamente, Xen se desarrolló para funcionar hasta con 100 sistemas invitados en un solo equipo; no obstante, este número presenta una fuerte dependencia de los requisitos del sistema de los sistemas invitados en ejecución (sobre todo del uso de la memoria).

Para limitar el uso de la CPU, el hipervisor de Xen ofrece tres planificadores distintos. El planificador también puede cambiarse durante la ejecución del sistema invitado, con lo que se posibilita el cambio de prioridad del sistema invitado en ejecución. En un nivel más alto, la migración de un invitado también puede utilizarse para ajustar los recursos disponibles de la CPU.

El sistema de virtualización Xen también presenta algunas desventajas relacionadas con el hardware admitido. Hay varios controladores de código no abierto, como los de Nvidia o ATI, que no funcionan como deberían. En estos casos, deben utilizarse los controladores de origen cerrado si se encuentran disponibles, aun si no admiten todas las capacidades de los chips. Al utilizar Xen, tampoco se admiten varios chips de WLAN y bridges Cardbus. En la versión 2, Xen no admite PAE (Physical Address Extension, Extensión de dirección física), lo que significa que no admite más de 4 GB de memoria. Tampoco se admite ACPI. La gestión de energía y otros modos que dependen de la ACPI no funcionan. Otra limitación de Xen es que actualmente no es posible arrancar simplemente un dispositivo de bloque. Para arrancar siempre es necesario contar con el núcleo correcto y el initrd disponible en dominio-0.

Figura 17.1. Descripción general de Xen

Descripción general de Xen

17.1. Instalación de Xen

El procedimiento de instalación de Xen implica la configuración de un dominio de tipo dominio-0 y la instalación de invitados Xen. En primer lugar, asegúrese de que los paquetes necesarios se encuentren instalados. Son los siguientes: python, bridge-utils, xen, xen-tools, xen-tools-ioemu y kernel-xen. Al seleccionar Xen durante la instalación, Xen se añadirá a la configuración de GRUB. En otros casos, cree en boot/grub/menu.lst una entrada similar a la siguiente:

title Xen3 
  kernel (hd0,0)/boot/xen.gz 
  module (hd0,0)/boot/vmlinuz-xen <parámetros> 
  module (hd0,0)/boot/initrd-xen

Sustituya (hd0,0) por la partición en la que se encuentre el directorio /boot. Consulte también el Capítulo 9, Cargador de arranque. Sustituya <parámetros> con los parámetros que se usan normalmente para arrancar un núcleo de Linux. A continuación, rearranque en modo Xen. Esto arranca el hipervisor de Xen y un núcleo Linux ligeramente modificado como dominio-0 que ejecuta la mayor parte del hardware. Aparte de las excepciones que ya se han mencionado, todo debería funcionar normalmente.