Xen Best Practices/es: Difference between revisions

From Xen
Jump to navigationJump to search
(Se ha corregido la palabra "ballooning" cambiándola por "inflado", dejando la aclaración junto a ella de que en inglés se hace referencia a esta expresión con el término "ballooning".)
 
(5 intermediate revisions by one other user not shown)
Line 30: Line 30:
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.
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 de 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.
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) ==
== Xen credit scheduler domain weights and making sure dom0 gets enough CPU time to serve IO requests (disk/net) ==


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.
For smooth operation and good guest performance you need to make sure dom0 always gets enough CPU time to process and serve the IO requests for guest VMs.


This can be guaranteed by setting up Xen credit scheduler domain weights and caps. See [[[CreditScheduler]]] wiki page for more information.
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.
Some background: As a default Xen gives every guest (including dom0) the default weight of 256. This means all guests (including dom0) are equal, and get the same amount of CPU time. This can be bad for dom0, since it needs to be able to serve and process the IO requests for other guests. You should give dom0 more weight, so it will get more CPU time than the guests, when it needs it.


Comandos de ejemplo:
Example commands:


* use "xm sched-credit -d Domain-0" to check the current Xen credit scheduler parameters for Dom0.
* usar "xm sched-credit -d Domain-0" para comprobar los parámetros actuales del planificador de crédito de Xen para el Dom0.
* use "xm sched-credit -d Domain-0 -w 512" to give dom0 weight of 512, giving it more (up to twice as much) CPU time than the guests.
* 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.
Note that you need apply this setting after every reboot! It's not persistent setting. You can place the "xm sched-credit" to rc.local or other script that is executed late in the boot process. Make sure the command is executed after xend is started, since the xm command needs to talk to xend.


¡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.
== Dedicating a CPU core(s) only for dom0 ==


== Dedicar un sólo núcleo/-s de la CPU para el dom0 ==
If you're running IO intensive guests or workloads in the VMs it might be a good idea to dedicate (pin) a CPU core only for dom0 use. Please see [[[XenCommonProblems]]] wiki page section "Can I dedicate a cpu core (or cores) only for dom0?" for more information.


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.
== Dom0 network configuration ==


== Configuración de la red para el Dom0 ==
You should configure and set up networking on Xen dom0 using the networking scripts provided by your dom0 distribution, ie. "/etc/network/interfaces" on Debian and Ubuntu, and "/etc/sysconfig/network-scripts/ifcfg*" in RHEL/CentOS/Fedora. The "distro-method" is much better than using the xen "network-bridge" script, which is troublesome on many configurations due to renaming tricks it uses.


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.
If using XL / LIBXL toolstack (Xen 4.1+) you're actually required to set up the networking using distro network scripts!


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!
To use distro networking scripts/tools:
* If using xm/xend toolstack disable the Xen network-script in "/etc/xen/xend-config.sxp", ie. comment out the "network-script" line, or make it be "/bin/true".
* Configure network settings (bridges etc) using the networking scripts available on your dom0 distribution. See the documentation of your distro for more help.
* Reboot.


Para usar las herramientas/scripts de red de su distribución:
You can still use the default Xen vif-bridge script to attach VM vifs to the bridges you have configured using the distro networking tools, so no changes are required to the domU configuration files in "/etc/xen/<domU>".
* 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>".
See [[HostConfiguration/Networking:]] wiki page for examples how to use the distro network scripts.


Vea la página de la wiki [[HostConfiguration/Networking:]] para ejemplos en cómo usar los scripts de red según su distribución.
== Common problems with Xen ==
Also check the [[XenCommonProblems]] wiki page for answers to many common problems related to using/running Xen.


== Problemas comunes con Xen ==
[[Category: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.
[[Category:Users]]

[[Category:Beginners]]
[[Category:HowTo]]
[[Category:Xen/es]]
[[Category:Users/es]]
[[Category:Overview]] <!-- Not quite sure about this, but this contains some of the key trade-offs -->
[[Category:Beginners/es]]
[[Category:HowTo/es]]
[[Category:Overview/es]] <!-- Not quite sure about this, but this contains some of the key trade-offs -->


[[Category:Languages/es]]
[[Category:Languages/es]]

Latest revision as of 16:39, 23 April 2012

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 • русский • 中文