Debian Xen 3.0 en 5 minutos

Esta receta explica cómo instalar Xen y crear dominios fácilmente en un sistema Debian GNU/Linux

Ingredientes

Todos son paquetes Debian:

  • linux-image-2.6.16-2-xen-vserver-686
  • linux-image-2.6.16-2-xen-686 xen-hypervisor-3.0-i386
  • xen-ioemu-3.0 xen-utils-3.0
  • xen-docs-3.0
  • libc6-xen
  • xen-tools
  • bridge-utils
  • sysfstools
  • lvm2

Instalación

Hacer los initrd a mano (de momento el postinstall de las imágenes no lo hace):

$ mkinitrd -o /boot/initrd.img-2.6.16-2-xen-686 2.6.16-2-xen-686
$ mkinitrd -o /boot/initrd.img-2.6.16-2-xen-vserver-686 2.6.16-2-xen-vserver-686

Añadir a mano una entrada en /boot/grub/menu.lst (la actualización automática entiende de Xen, pero no pone el initrd):

title Debian GNU/Linux, Xen
root  (hd0,1)
kernel /boot/xen-3.0-i386.gz
module /boot/vmlinuz-2.6.16-2-xen-vserver-686 root=/dev/hda2 ro
module /boot/initrd.img-2.6.16-2-xen-vserver-686
savedefault
boot

Evidentemente tendrás que ajustar el root a tu partición.

Editar el /etc/xen/xend-config.sxp y asegurarse de que están estas opciones:

(network-script network-bridge)
(vif-script vif-bridge)

Elige una partición gordota que no estés usando para poner las imágenes y crea el grupo de volúmenes LVM:

$ pvcreate /dev/hda5
$ vgcreate xen-img /dev/hda5

Cambia el hda5 por la partición que elijas.

Edita los parámetros por defecto de /etc/xen-tools/xen-tools.conf y asegurate de que tienes estas líneas:

lvm = xen-img
debootstrap = 1
fs = ext3
dist = sid
image = full

Y ajusta los parámetros size, memory y swap a tu gusto.

Creando y arrancando imágenes

Ya puedes crear las imágenes que quieras con un simple:

$ xen-create-image —hostname myNewImage

Y puedes arrancarla con:

$ xm create myNewImage.cfg -c

Para salir de la consola pulsa Ctrl-] y para volver a la consola de esta imagen:

$ xm console myNewImage

Más fácil imposible…

Referencias

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

si claro, facílisimo. Si eres

si claro, facílisimo. Si eres ingeniero y has estudiado linux 5 o 6 años. Al común de los mortales no nos da para tanto por mucho que queremos acercarnos al mundo linux.
saludos.

Imagen de int-0

Vaya...

...yo creo que no he estudiado ni un año Linux. Ni siquiera GNU/Linux. Llevaré usando esto como 4 años. Además, he de decir que este verano vi a gente con 1 mes de horas de vuelo seguir recetas más complejas que ésta. Como dice Cleto, no hace falta comprender. De la misma forma que no hace falta comprender las reacciones de la levadura en una determinada mezcla de sustancias para hacer un buen bizcocho.

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

frikunos

frikunos

Imagen de cleto

Las recetas están pensadas

Las recetas están pensadas para seguirlas sin tener que comprender cada paso que haces, aunque sería lo ideal. Las recetas no están para demostrar lo ignorante que es la gente, son para ayudar. Si tienes cualquier duda, pregunta, que para eso es este sitio.

Imagen de int-0

Mosquis!

Pues tienes razón, son 5 minutos... pero no me funciona Sad

Cuando hago el xm create me dice lo que me decía cuando usaba loopback's y no tenía el módulo loop cargado:

Error: Device 0 (vif) could not be connected. Backend device not found.

¿Puede ser porque tenga 2 tarjetas de red? La receta la he seguido al pie de la letra... con las mismas versiones y todo...
------------------------------------
init=/bin/bash to conquer the world!

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Imagen de int-0

Arreglado!

Hay que instalar un paquete más antes de reinciar la máquina con el linux-xen, el paquete es bridge-utils, sin él Xen no puede crear las interfaces virtuales. Eye-wink
------------------------------------
init=/bin/bash to conquer the world!

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Corregido

Ya ta corregido en la receta, sorry

Imagen de magmax

La pregunta del ignorante.

Seguramente la pregunta os parezca totalmente estúpida, pero... ¿Qué es Xen?

Un rápido vistazo por google y la wikipedia me ha informado de que es una máquina virtual tipo VMWare, pero que es de código abierto y parece que bastante mejor. ¿Correcto?

Miguel Ángel García
http://magmax.org

Imagen de int-0

Para entendernos...

Es un hypervisor de núcleos... para que nos entendamos: es como un dispatcher pero a nivel de núcleos no de procesos (siii ya se que no es lo mismo). Los núcleos están paraetes ("agazapaos") hasta que un evento (o interrupción) requiere la atención de la VCPU que corre ese núcleo, entonces xen pasa el control a esa VCPU. En realidad si véis los parches de xen para linux veréis que se trata de una serie de intercepciones de interrupción (irq-bypass) y algo por ahí con la segmentación de memoria.

Xen nació a raiz del "hypervisor" experimental de IBM, pero el de IBM es para PowerPC, este hypervisor usa una característica del PPC que no tienen los intel comunes: TLB manejada por el procesador. En los intel el TLB queda a cargo del kernel, los intel-vt ya vienen con el TLB más majo (si... en eso consiste la tecnología de virtualización de intel... a grandes rasgos...). El hypervisor de IBM reserva las zonas de memoria de forma automática gracias al TLB del PPC, en cambio xen debe parchear los núcleos que corre para que le dejen a él la administración del TLB. Por lo visto que los de AMD se han puesto también con esto de las tecnologías de virtualización y han diseñado "Pacifica" que lo anuncian como: "un sistema revolucionario de protección de particiones de datos", vamos que el TLB ya lo hace todo sólo. El de AMD lo anuncian como "optimizado para 64bits", no se si el de intel no está optimizado o qué... Sticking out tongue

En fin... me he explicado bien? Sticking out tongue
------------------------------------
init=/bin/bash to conquer the world!

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Xen no es VMWare

Mira www.xensource.com.

Usa una técnica muy diferente a la emulación. Es un paravirtualizador, una especie de exokernel para virtualización.

En los Intel VT-ready es incluso capaz de paravirtualizar sistemas operativos sin modificación (XP, etc).

Imagen de david.villa

claaaro, un

claaaro, un exokernel paravirtualizador corriente y moliente, vaya cosas que preguntas… Sticking out tongue

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.