Xen Best Practices/es

From Xen

Buenas Prácticas con Xen

Esta página de la wiki lista varias de las mejores prácticas para ejecutar el hypervisor de Xen.

La información siguiente es aplicable a la versión opensource de Xen xen.org, no necesariamente implica a Citrix XenServer o XCP.

Memoria dedicada (dom0) y cómo prevenir el efecto "inflado" de memoria o "memory ballooning" (dom0)

Se debe fijar siempre una cantidad fija de memoria dedicada de RAM para el dom0.

Esto se hace especificándolo en la opción "dom0_mem=512M" del hypervisor de Xen (normalmente en xen.gz) del menu del grub.conf/menu.lst. Esto asegura que la cantidad de memoria asignada para el dom0es de 512MB (sustitúyala con la cantidad de memoria que quiera), y el resto de la RAM se queda disponible para otros invitados que maneje el hypervisor de Xen. A continuación, un ejemplo de grub.conf con GRUB1:

title Xen 4.1.0 / pv_ops dom0 kernel 2.6.32.36
        root (hd0,0)
        kernel /xen-4.0.gz dom0_mem=512M loglvl=all guest_loglvl=all
        module /vmlinuz-2.6.32.36 ro root=/dev/sda2 console=hvc0 earlyprintk=xen nomodeset
        module /initrd-2.6.32.36.img

El siguiente paso es configurar xend para asegurar que la memoria del dom0 nunca disminuye tanto por el efecto de inflado (ballooning), al iniciar un nuevo invitado.

Esto se consigue editando /etc/xen/xend-config.sxp y modificando la opción "dom0-min-mem" como (dom0-min-mem 512) y también cambiando la opción "enable-dom0-ballooning" a (enable-dom0-ballooning no). Estas opciones asegurarán que xend nunca se lleve la memoria del dom0.

Después de hacer estos cambios al grub.conf y al xend-config.sxp, reinicie el sistema. Después de reiniciar, se dará cuenta de que el dom0 sólo tiene 512 MB de memoria, y el resto de la RAM está disponible en el hypervisor de Xen como memoria libre. Ejecute "xm list" para verificar la cantidad de memoria que tiene dom0, y "xm info" para verificar la cantidad de memoria libre en el hypervisor de Xen.

Por qué dedicar una cantidad fija de memoria para dom0

Asignar una cantidad fija de memoria al dom0 es bueno por dos razones:

Primero, el kernel de Linux (dom0) calcula varios parámetros de red según la cantidad de memoria que se le deje en el arranque del sistema.

Lo segundo, es que Linux necesita memoria para guardar los metadatos de memoria (estructuras de información por página), y esta asignación se hace en base a la cantidad de memoria que encuentra al arrancar el sistema.

Entonces, si se arranca el sistema dejando visible toda la memoria al dom0, después se disminuye la memoria del dom0 cada vez que se arranca un invitado, y el dom0 termina quedándose con muy poca de la memoria que originalmente tuvo al arranque primero. Esto hace que los parámetros calculados no sean los correctos, y se desperdicie mucha de la memoria para los metadatos de una memoria a la que yo se tiene alcance. El hecho de disminuir la memoria del dom0 como consecuencia del efecto de inflado, puede que tenga otros efectos no deseados.

El Planificador de crédito de Xen calcula y asegura que al dom0 se le asigna suficiente tiempo de CPU para servir las peticiones de E/S (disco/red)

Para que todo funcione como es debido y que el invitado tenga un buen rendimiento, tiene que asegurarse de que el dom0 siempre tiene asignado suficiente tiempo de CPU para poder procesar y servir las peticiones de E/S para las máquinas virtuales.

Para garantizarlo, se configuran los pesos y límites. Véase la página de la wiki [[[CreditScheduler]]] para más información.

Un poco sobre el tema: Por defecto Xen le da a cada invitado (incluido el dom0) un peso inicial de 256. Esto significa que todos los invitados (incluidos el dom0) son iguales, y tienen asignado la misma cantidad de tiempo de CPU. Esto puede perjudicar al dom0, ya que este tiene que poder servir todas las peticiones de E/S de los otros invitados. Habría que asignarle más peso al dom0, para que tuviera más tiempo de CPU que el resto de invitados, cuando la necesite.

Comandos de ejemplo:

  • usar "xm sched-credit -d Domain-0" para comprobar los parámetros actuales del planificador de crédito de Xen para el Dom0.
  • usar "xm sched-credit -d Domain-0 -w 512" para dar al dom0 un peso de 512, dándole así más tiempo de CPU ( hasta el doble) que al resto de invitados.

¡Tenga en cuenta que tiene que aplicar esta configuración en cada reinicio! No es una configuración persistente. Puede colocar el "xm sched-credit" en rc.local o en otro script que se ejecute tarde en el proceso de arranque. Asegúrese de que el comando se ejecuta después de que se inicia xend, ya que el comando xm necesita comunicarse con xend.

Dedicar un sólo núcleo/-s de la CPU para el dom0

Si ejecutas cargas intensivas de E/S para los invitados, puede que sea una buena idea dedicar (pin) un sólo núcleo de la CPU para el uso del dom0. Vea en la sección de la página de la wiki [[[XenCommonProblems]]] "¿Puedo dedicar un núcleo de cpu (o núcleos) sólo para el dom0?" para más información.

Configuración de la red para el Dom0

Debería configurar la red del dom0 a través de los scripts de red que vienen con su distribución del dom0, por ejemplo, en "/etc/network/interfaces" en Debian y Ubuntu, y "/etc/sysconfig/network-scripts/ifcfg*" en RHEL/CentOS/Fedora. El método a través del tipo de distribución es mucho mejor que usar el script de xen "network-bridge", que da muchos problemas en muchas configuraciones por los nombres diferentes y las formas.

Si usa las herramientas del paquete XL / LIBXL Xen 4.1+) ¡necesita configurar definitivamente la red a través de los scripts de red de su distribución!

Para usar las herramientas/scripts de red de su distribución:

  • Si usa las herramientas del paquete xm/xend, deshabilite los scripts de red de Xen (network-script) en "/etc/xen/xend-config.sxp", por ejemplo, comentando las lineas de "network-script", o hágalo "/bin/true".
  • Configura la red (brigdes etc) usando los scripts de red disponibles en tu distribución del dom0. Vea la documentación de sus distribución para más ayuda.
  • Reinicie.

Puede usar así y todo el script por defecto de Xen vif-bridge para enlazar las vifs de las VM's a las conexiones pueste que haya configurado con las herramientas de su distribución, por lo que no se necesitarían ficheros de configuración para el domU en "/etc/xen/<domU>".

Vea la página de la wiki HostConfiguration/Networking: para ejemplos en cómo usar los scripts de red según su distribución.

Problemas comunes con Xen

También vea la página de la wiki XenCommonProblems para respuestas a los problemas más comunes relacionados con el uso/ejecución de Xen.

Languages Language: English  • Deutsch • español • français • 日本語 • 한국어 • português do Brasil • русский • 中文