Virtualización Linux y Windows en Ubuntu con XEN

Hace un tiempo escribí un post en el que daba una introducción a diferentes tipos de virtualización. Desde entonces esta tecnología no ha dejado de crecer y de consolidarse como una opción más que factible en todo tipo de entornos, desde domésticos hasta corporativos.

En este post explico mis experiencias con XEN en mi entorno doméstico y cómo montarlo en un servidor GNU/Linux con Ubuntu. El objetivo que tenía al buscar una solución de virtualización era encontrar una alternativa que me permitiera disponer en mis servidor doméstico de varios servidores virtuales independientes, que pudiera ejecutar máquinas virtuales tanto Windows como Linux, que tuviera por supuesto un buen rendimiento, y en la medida de lo posible que fuera una solución de software libre o cuanto menos de bajo costo.

Tras probar algunas alternativas como VMPlayer, KVM, QEMU y XEN, finalmente la opción que consideré más apropiado fue XEN. Estuve dudando bastante tiempo entre éste y KVM, pero algunos problemas que encontré con KVM y el hecho de que XEN funcione tanto con paravirtualización como con virtualización completa, así como que el módulo de XEN está previsto que se incorpore de forma nativa al nucleo de linux, inclinaron finalmente la balanza a su favor.

La instalación de XEN es realmente sencilla y es suficiente únicamente con utilizar los repositorios de Ubuntu y apt-get. La siguiente instrucción realiza la instalación de XEN y todas sus dependencias, incluyendo las xen-tools, que se utilizarán para crear las imágenes de los sistemas paravirtualizados.

 
$ sudo apt-get install ubuntu-xen-server

En mi caso al ser un servidor de 64 bits el comando es ligeramente diferente.

 
$ sudo apg-get install ubuntu-xen-desktop-amd64

Una vez instalado XEN es necesario editar el archivo “/etc/xen/xend-config.sxp” para indicar que se quieren configurar la conectividad con las máquinas virtuales en modo bridge. De este modo la conexión ethernet del anfitrión (dom0) se comparte con los huéspedes (domU’s) y todas las máquinas parecen estar conectadas directamente a la red.

 
$ sudo vi /etc/xen/xend-config.sxp

En este archivo hay que comentar (con un # al comienzo) la línea “(network-script network-dummy)” y añadir en su lugar la línea “(network-script network-bridge)”. En el wiki de XEN hay una completa explicación de los diferentes modelos de conexión de red existentes en XEN.

#(network-script network-dummy)
(network-script network-bridge)

Ahora es necesario aumentar el número de dispositivos loop editando el archivo “/etc/modules”. Como el número máximo de dispositivos loop que existen en el sistema es por defecto 8 y que cada máquina virtual usa 2, si queremos arrancar más de 4 máquinas virtuales habrá que incrementar este valor. Por ejemplo para permitir utilizar hasta 64 dispositivos loop habría que incluir la siguiente línea.

 
loop max_loops=64

Tras esto ya podemos reiniciar el equipo. Una vez hecho esto se puede comprobar que estamos trabajando ya con el kernel adecuado ejecutando “uname -r”.

$ uname -r
2.6.22-14-xen

A continuación voy a explicar cómo crear máquinas virtuales huéspedes (domU’s) de dos formas diferentes. La primera de ella es utilizando las características de paravirtualización de XEN y su hypervisor, y la segunda, utilizando virtualización completa, mediante las capacidades de los procesadores Intel VT y AMD-V.

Las principales diferencias entre ambas es que con la paravirtualización únicamente podemos instalar sistemas operativos que han sido modificados, por lo que no es posible utilizarla para virtualizar máquinas Windows. Por contra, es posible realizar un mayor control de los huéspedes gracias al hypervisor.

Máquinas virtuales con paravirtualización

Al instalar las xen-tools disponemos ya de la información básica para instalar un buen conjunto de distribuciones GNU/Linux como sistema operativo de nuestros huéspedes. Podemos ver estos sistemas disponibles en “/usr/lib/xen-tools”.

$ ls -l /usr/lib/xen-tools
total 32
drwxr-xr-x 2 root root 4096 2007-12-24 16:11 centos4.d
-rwxr-xr-x 1 root root 4306 2007-09-17 01:13 common.sh
drwxr-xr-x 2 root root 4096 2007-12-24 16:11 dapper.d
drwxr-xr-x 2 root root 4096 2007-12-24 16:11 debian.d
drwxr-xr-x 2 root root 4096 2007-12-24 16:11 edgy.d
lrwxrwxrwx 1 root root    8 2007-12-24 16:11 etch.d -> debian.d
drwxr-xr-x 2 root root 4096 2007-12-24 16:11 fedora.d
lrwxrwxrwx 1 root root    6 2007-12-24 16:11 feisty.d -> edgy.d
drwxr-xr-x 2 root root 4096 2007-12-24 16:11 gentoo.d
lrwxrwxrwx 1 root root    6 2007-12-24 16:11 gutsy.d -> edgy.d
lrwxrwxrwx 1 root root    8 2007-12-24 16:11 lenny.d -> debian.d
lrwxrwxrwx 1 root root    8 2007-12-24 16:11 sarge.d -> debian.d
lrwxrwxrwx 1 root root    8 2007-12-24 16:11 sid.d -> debian.d
lrwxrwxrwx 1 root root    8 2007-12-24 16:11 stentz.d -> fedora.d

Vamos a comenzar a crear máquinas virtuales, para ello lo primero que vamos a hacer es crear una carpeta donde alojarlas. En mi caso he creado la carpeta “/opt/vms/xen”.

 
$ sudo mkdir -p /opt/vms/xen

El procedimiento para crear nuevas máquinas virtuales es realmente sencillo gracias a las xen-tools. Lo primero que tendremos que hacer será configurar los valores por defecto que se utilizarán al crear las máquinas. Estos valores se configuran en el archivo “/etc/xen-tools/xen-tools.conf”.

 
# sudo vi /etc/xen-tools/xen-tools.conf

En mi caso he modificado los siguientes valores. De todas formas hay que tener en cuenta que es posible indicar otros valores diferentes a la hora de crear las máquinas.

 
[...]
 
dir = /opt/vms/xen
 
[...]
size   = 4Gb      # Disk image size.
memory = 128Mb    # Memory size
swap   = 128Mb    # Swap size
[...]
 
dist   = gutsy     # distribución por defecto para instalar
 
[...]
dhcp = 1
 
[...]
 
passwd = 1
 
[...]
 
arch = i386
 
[...]
 
mirror = http://de.archive.ubuntu.com/ubuntu/
 
[...]

Con estos parámetros indico que por defecto las máquinas que voy a crear se van a alojar en la carpeta que he creado, que van a tener un tamaño de disco de 4GB, un swap de 128MB y 128MB de RAM. Indico también que se va a utilizar por defecto la distribución de Ubuntu Gutsy Gibbon, que se utilice como arquitectura i386, que se pida el password de root al crear la máquina, y que se utilice como dhcp para la conexión de red. En caso de no disponer de un servidor de dhcp o querer configurar las ip de forma fija, habría que haber utilizado en lugar de “dhcp = 1” algo como:

gateway   = 192.168.1.1
netmask   = 255.255.255.0
broadcast = 192.168.1.255

En este punto ya tenemos XEN instalado y configurado, hemos creado la ubicación para almacenar las máquinas y hemos configurado xen-tools para la creación de éstas. Ahora ya podemos comenzar a crear las máquinas virtuales.

Para ello utilizaremos el comando xen-create-image. Este comando dispone de diferentes parámetros, para la mayoría de los cuales ya hemos configurado los valores por defecto. Puede obtenerse información detallada de cada uno de ellos con “man xen-create-image”. En el ejemplo indico que se cree una nueva máquina virtual con nombre “vm1”, que se sobreescriba si ya existe, y que se utilice como identificador mac “aa:00:00:00:00:11”. Este último valor lo indico para configurar posteriormente en mi servidor dhcp una dirección ip fija, en caso de que no necesites esto no haría falta indicar este parámetro y se generaría una dirección aleatoria.

 
$ sudo xen-create-image --hostname=vm1 --force --mac=aa:00:00:00:00:11

Este proceso puede tardar unos cuantos minutos, principalmente la parte en la que se realiza el debootstrap. Tras la creación de la máquina se obtiene un archivo de configuración en /etc/xen/vm1.cfg, el cual es posible modificar para ajustar diferentes valores.

Ya estamos en disposición de ejecutar la máquina virtual, para lo cual hay que utilizar el comando “xm”.

 
$ sudo xm create /etc/xen/vm1.cfg
 
$ sudo xm console vm1

Las máquinas virtuales que se crean con xen-create-image no disponen de entorno gráfico, por lo que tendremos que utilizar el cliente de SSH para conectarnos. En caso de necesitar el entorno gráfico podremos instalar los paquetes correspondientes desde la propia máquina. Esto puede ser un inconveniente en algunas situaciones, pero por otra parte permite disponer de máquinas virtuales con un tamaño mínimo y plenamente operativas.

Con xm list puede obtenerse una lista de todas las máquinas activas.

$ sudo xm list

Para detener la máquina virtual se puede utilizar también el comando “xm”, que envía la orden de apagado a la máquina virtual.

 
$ sudo xm shutdown vm1

Si queremos que una máquina virtual se inicie automáticamente al arrancar el servidor habrá que crear un enlace simbólico de la siguiente forma.

 
$ sudo ln -s /etc/xen/vm1.cfg /etc/xen/auto

Máquinas virtuales con virtualización completa

Vamos a ver ahora cómo instalar máquinas virtuales con virtualización completa. A mi parecer esta es la forma más sencilla de disponer de máquinas virtuales con escritorio gráfico, tanto Windows como Linux, aunque como inconveniente no dispondremos de algunos de los controles existentes mediante el comando “xm” para las paravirtualizadas. De esta forma si indicamos con xm que se pare una máquina, lo que se producirá sería lo mismo que si la desconectásemos de la red, por lo que en su lugar deberíamos conectarnos a cada una de las máquinas que queramos apagar y apagarlas manualmente desde dentro de ellas.

Antes de nada es necesario comprobar que nuestro procesador dispone de las extensiones de virtualización, buscando la cadena de texto “vmx” en los datos de información del procesador “/proc/cpuinfo”. Si el comando devuelve algo, tal como en el ejemplo, significa que disponemos de las extensiones.

$ egrep '(vmx|svm)' /proc/cpuinfo
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc up pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

El primer paso consistirá en crear el archivo que servirá como imagen de la máquina virtual. Para ello lo más sencillo es utilizar el comando “dd”, por ejemplo indicando que cree un archivo de nombre “disk.img” con un tamaño de 4GB (4096 bloques de 1MB).

$ mkdir -p /opt/vms/xen/domains/winxp
$ dd if=/dev/zero of=/opt/vms/xen/domains/winxp/disk.img bs=1M count=4096

Tras esto hay que crear manualmente el archivo de configuración de la máquina virtual, en este caso “/etc/xen/winxp.cfg”.

kernel = "/usr/lib/xen/boot/hvmloader"
builder = 'hvm'
device_model = '/usr/lib/xen/bin/qemu-dm'
memory = 512
name = "winxp"
vcpus = 1
vif = [ 'type=ioemu, bridge=xenbr0' ]
disk = [ 'file:/opt/vms/xen/domains/winxp/disk.img,ioemu:hda,w' ]
cdrom='/dev/scd0'
ne2000=0
boot='d'

Es necesario comprobar que la ruta indicada en kernel existe, ya que puede variar entre sistemas (/usr/lib/xen/boot/hvmloader, /usr/lib/xen-ioemu-3.1/boot/hvmloader, …). La última línea indica que se arranque desde CD, una vez instalado el sistema operativo habría que cambiarla por boot=’c’. Si en vez de arrancar desde el CD queremos que Más información de las opciones disponibles con “man xmdomain.cfg”.

Una vez creado el archivo ya podemos iniciar la máquina.

$ xm create winxp.cfg

Automáticamente se mostrará una ventana con el proceso de arranque e instalación. A partir de aquí habrá que seguir los pasos habituales tal como si estuviéramos trabajando con una estación física normal. En mi caso una recomendación sería modificar la configuración de la máquina virtual para que no muestre la ventana automáticamente al iniciarla, sino que se pueda conectar con ella a través de VNC. Para ello hay que añadir las siguientes líneas al archivo de confiración.

vnc=1
vncunused=0
vncviewer=0
sdl=0

Para conectarnos por VNC tendremos que conectarnos a la dirección ip del equipo anfitrión (dom0) e indicar el puerto concreto de VNC que se ha asignado a la máquina virtual.

$ sudo xm list -l
[...]
    (device
        (vfb
            (vncunused 0)
            (uuid afbb5ef1-5c86-fd33-3c1e-4cfd80cb87b7)
            (location 192.168.1.1:5901)
        )
    )
 
[...]
 
$ vncviewer 192.168.1.1::5901

Es importante poner dos puntos antes del 5901 para que lo tome como puerto y no como display. Existen otras formas de configurar VNC para que se muestren las máquinas siempre en los mismos displays, hay información al respecto en “man xmdomain.cfg”.

El procedimiento para instalar una máquinar virtual con Linux y entorno gráfico es idéntico, crear el archivo de imagen, el archivo de configuración y arrancar la máquina para instalar el sistema operativo. Es probable que al arrancar el equipo la primera vez e intentar instalar el sistema operativo se produzca un cuelgue y no sea posible llegar a la pantalla de instalación. Si ocurre esto se debe a un problema con el logotipo que se suele mostrar al arrancar desde CD en muchas distribuciones. Para resolverlo es necesario modificar la imagen del CD de instalación.

El primer paso es obtener una imagen del CD de instalación (no es necesario si ya disponemos del ISO). El siguiente comando hace una copia del CD de instalación, en este caso de ubuntu, y la guarda como /opt/ubuntu-7.10.iso

$ dd if=/dev/cdrom of=/opt/ubuntu-7.10.iso

Una vez tenemos la imagen del CD de instalación hay que modificarla para desactivar el GFSBOOT. Para ello podemos probar primero con el siguiente comando.

$ sed -e 's/GFXBOOT bootlogo/#FXBOOT bootlogo/g' < /opt/ubuntu-7.10.iso > /opt/ubuntu-7.10-nogfxboot.iso

Para probar la imagen no es necesario volver a generar un CD, podemos indicarle a XEN que utilice directamente el archivo ISO modificando el archivo de configuración de la máquina virtual.

[...]
disk = ['file:/opt/vms/xen/domains/winxp/disk.img,ioemu:hda,w', 'file:/opt/ubuntu-7.10-nogfxboot.iso,ioemu:hdc:cdrom,r']
[...]

Si sigue sin funcionar existe otra opción para modificar la imagen, utilizando gfxboot-disable.

$ gfxboot-disable /opt/ubuntu-7.10.iso

Más información

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

19 Respuestas para “Virtualización Linux y Windows en Ubuntu con XEN”

  1. Hola, muy buenas.

    En el artículo (el cual aún no he leído entero) nombras VMPlayer, KVM, QEMU y XEN. Y me pregunto, ¿y VirtualBox? Disculpa si acaso éste no tiene nada que ver con los que nombras.

    Saludos.

  2. Hola David, pues por nada en especial. La verdad es que cuando comencé a mirar cosas de virtualización VirtualBox todavía no había dado el paso de licenciar una versión GPL, lo hizo justo después, en enero de 2007.

    Aparte de esto, que por ejemplo VMWare no ha hecho todavía, a la hora de hacer pruebas no lo contemplé por algún otro motivo: (1) ofrece virtualización completa al estilo de VMWare pero no utiliza completamente las capacidades de virtualización de los procesadores Intel-VT y AMD-V, (2) el soporte para Ubuntu 6.06, el cual necesito, no es completo, (3) por lo que pude ver por encima no se integraba en el sistema tanto como KVM y XEN.

    Desde luego parece una solución estupenda y seguramente a la altura de VMWare en algunos escenarios, pero no se adaptaba a lo que yo necesitaba.

  3. Buenas

    Perdona si mi duda es un poco estupida, pero, para utilizar xen y montar todo esto que explicas es necesario disponer de la version server de ubuntu o con la desktop podemos hacerlo igualmente?

    gracias

  4. Puedes hacerlo con cualquiera de ellas. De todas formas echa también un vistazo a este otro post, quizás te interese utilizar KVM en vez de XEN.
    http://www.eslomas.com/index.php/archives/2008/10/06/migrando-de-xen-a-kvm-en-ubuntu/

  5. hola una pequeñas dudas:

    -estoy leyendome un libro sobre virtualización de servidores con xen, de Crabhakar Chaganti,recién he empezado.
    En él explica que con xen en principio sólo puede virtualizarse sistemas operativos que “sepan” que están trabajando como maquinas virtuales y por lo tanto hayan sido modificados para ello, aunque ultimamente ha surgido una tecnología llamada Hardware Virtual Machine que poseen los ultimos procesadores Intel y Amd en los que esto no es necesario y ya se puede virtualizar windows por ejemplo, la pregunta es, esto es lo que tu en el artículo diferencias como paravirtualizacion y virtualización completa??

    -también dice que se puede trabajar simulando los 64 bits mediante PAE (physical address extension),pero que para ello hay que parchear el kernel-xen e instalarlo manualmente … es esto cierto?o al ser el libro relativamente “viejo” este problema se ha subsanado y ya las versiones que podemos encontrar por ejemplo en los repositorios de ubuntu corren correctamente sin necesidad de tocarlas???

    -la única diferencia que observo en como omntas las makinas virtuales en paravirtualizacion o virtualización completa es que creas manualmente el sistema de ficheros (dd …) y en vez de hacer la instalacion mediante el bootstrap lo haces desde una iso…es esto asi??o como eliges entre un modo y otro..?¿?¿que opciones de xm no se pueden usar al hacer una virtualización completa?¿

    seguramente se me quede algo en el tintero pero ya lo preguntaré :p
    perdón por el quijote que he escrito y gracias!

  6. Hola Antonio,

    En efecto la paravirtualización y la virtualización completa se refiere a lo que comentas. Respecto a los 64bits Xen funciona sobre plataformas de 64 bits, de hecho así es la mía. Otra cosa es si permite virtualizar máquinas de 64 bits, me suena que sí, pero no te lo puedo asegurar. De todas formas quiero comentarte que en la última LTS de Ubuntu yo tuve bastantes problemas con Xen, no por el tema de los 64 bits, sino porque una vez instalado encontraba problemas de conexión de red en el host o en los huéspedes. Al final opté por instalar KVM [http://www.eslomas.com/index.php/archives/2008/10/06/migrando-de-xen-a-kvm-en-ubuntu/]

    Por último, en cuanto a la creación de las máquinas virtuales, las diferencias son también las que dices. Las opciones de manejo del xm son en teoría las mismas, aunque en mi caso en la práctica las máquinas huesped con Windows XP no reciben bien las notificaciones de parada y únicamente es posible desconectarlas, es decir, como si las apagáramos con el botón, por lo que es mejor entrar en ella y apagarla desde dentro.

  7. lo primero gracias por la rapidez!!

    creo que no formulé bien la duda de los 64 bits, la pregunta era si sobre mi ordenador por ejemplo que es de 32 bits, puedo simular con Xen los 64 para que Xen funciona más rápidamente, lo que arriba llamé PAE

    ayer intenté instalar xen en mi portatil que corre ubuntu desktop y naranjas de la china.. :p he seguido una mezcla de este tutorial con otros y nada.. al momento de instalar los paquetes he probado tanto con ubuntu-xen-server como con ubuntu-xen-desktop, y me da el mismo problema ,después de instalarlo y configrar algunos archivos , reinicio para cargar con el nuevo xen-kernel y despues de cargar algunas cosas (digo algunas porque por ejemplo la red inalambrica no me da ip,lo probé tanto dándosela estática como con dhcp en el archivo de config.) la pantalla se me queda como en negro,en vez de salirme la pantalla que me pide la contraseña… :S :S no se si será porque Xen está hecho especialmente para sistemas server (ubuntu server) o por que,aunque no creo que esto fuese un problema…

    gracias!

  8. Ignoro si es posible emular los 64 bits sobre una plataforma de 32, pero lo que es seguro es que no será más rápido. Quizás se pueda direccionar más memoria o alguna otra de las características, no sé, pero no puede ser más rápido que los 32 bits, porque estás metiendo una capa de emulación que aporta más coste de proceso, por lo que iría más despacio.

    En principio es posible instalar xen en un portátil, lo que te pasa tiene pinta de que se están produciendo problemas al cargar los diferentes módulos en el arranque, mira en /var/log/messages para ver qué va sucediendo en el arranque. De todas formas te comento que yo tenía XEN funcionando sobre un Ubuntu Desktop, por lo que no hace falta un Server. Lo que sí tuve que hacer es poner la configuración de red fija, sin utilizar el network-manager, porque se volvía loco.

    Aparte de todo esto te recomiendo que pruebes KVM como te he dicho en el comentario anterior, ya que es la plataforma estándar de virtualización para Ubuntu, aunque necesita las características de virtualización del procesador. También puedes echar un vistazo a VirtualBox, está bastante bien y es sencillo de usar.

  9. posteo del log

    ….

    Nov 19 22:52:09 hack4free kernel: [ 115.625827] ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 17
    Nov 19 22:52:09 hack4free kernel: [ 115.626078] [drm] Initialized i915 1.6.0 20060119 on minor 0
    Nov 19 22:53:42 hack4free syslogd 1.5.0#1ubuntu1: restart.

    el restart es cuando le tengo que darle al boton manualmente para apagarlo ya que no responde a ninguna conmbinacion de teclas ni nada…

    solo puedo instalar el paquete ubuntu-xen-server (a pesar de yo usar ubuntu desktop) ya que el paquete ubuntu-xen-desktop da error con las dependencias

  10. y esta es parte de la salida del xend.log

    [2008-11-19 22:52:02 5857] DEBUG (XendDomain:443) Adding Domain: 0
    [2008-11-19 22:52:02 5857] DEBUG (XendDomain:379) number of vcpus to use is 0
    [2008-11-19 22:52:02 5857] DEBUG (XendDomainInfo:1111) XendDomainInfo.handleShutdownWatch
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: VBD.set_device not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: VBD.set_type not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: session.get_all_records not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: event.get_record not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: event.get_all not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: VM.get_auto_power_on not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: VM.set_auto_power_on not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: VIF.get_network not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: VIF.set_device not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: VIF.set_MAC not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: VIF.set_MTU not found
    [2008-11-19 22:52:02 5857] WARNING (XendAPI:678) API call: debug.get_all not found
    [2008-11-19 22:52:02 5857] INFO (XMLRPCServer:149) Opening Unix domain socket XML-RPC server on /var/run/xend/xen-api.sock; authentication has been disabled for this server.
    [2008-11-19 22:52:02 5857] INFO (XMLRPCServer:149) Opening Unix domain socket XML-RPC server on /var/run/xend/xmlrpc.sock.

  11. Pues ni idea… De todas formas se me hace raro que no puedas instalar ubuntu-xen-desktop, con apt-get se te deberían instalar automáticamente todas las dependencias. Lo único que se me ocurre es que pueda ser un problema con el arranque de las X, o quizás con el network-manager. Prueba a desinstalar network-manager y mira el log de X por si hay algún error que te pueda dar alguna pista, pero creo que no voy a poder ayudar mucho con ello.

  12. la version desktop no me deja porque hay una depndencia a un paquete (xenman) el cual no existe,pero lo raro es que hoy he instalado el ubuntu-xen-server en un ordenador de sobremesa(bastante viejo) con la misma version de ubuntu que la que tengo en mi portatil y ha funcionado sin problemas..

  13. Quisiera saber como puedo tener un entorno grafico para xen dom0 que esta sobre ubuntu server 8.10, he probado instalar gnome y xfce desde 2.6.27-7-server pero al entrar con el kernel de xen me muestra pantalla negra despues de iniciar algunos servicios.

  14. Felices fiestas,

    Tengo varias dudas:
    La primera es, ¿que Ubuntu utilitzas? Porque yo he probado de seguir tus pasos con Ubuntu 8.04 y me ha dado un monton de problemas, de hecho no he podido ni iniciar Xen. El primer problema es que no me deja instalar el paquete ubuntu-xen-desktop-amd64 porque me dice que no encuentra xenman, lo soluciono bajandome ese paquete de internet e instalandolo antes. Pero a la hora de reiniciar el sistema y escoger en el GRUB el kernel XEN parece que carga pero llega un momento que para y reinicia el ordenador.
    Porque cuando dices reiniciar el sistema ¿se supone que cuando inicia el GRUB debemos escoger el nuevo kernel XEN que aparece no? ¿o continuamos con el mismo de antes? (aunque lo dudo, porque este ultimo no da indicios de tener instalado nada de Xen, ejecuto uname -r tal y nada de nada)

    Me frustra porque no he podido probar nada de tu guia porque ni tan siquiera he conseguido ponerlo en funcionamiento.

    Espero que me puedas contestar relativamente pronto a pesar de ser Navidades.

    Saludos.

  15. Hola Otro+, esta guía la hice para Ubuntu 7.10. Cuando instalé la versión 8.04 me encontré con problemas como el que indicas, así como otros relacionados con la conectividad de las máquinas virtuales. Por lo que parece, pese a ser la 8.04 una versión LTS, Ubuntu no dedicó el esfuerzo necesario para probar XEN, ya que su apuesta de virtualización es KVM.

    Al final me pasé a KVM, que la verdad es que va bastante bien. Hacía tiempo que lo había probado y ha mejorado bastante, aunque desde luego no es forma de hacer las cosas los de Ubuntu. Mira este otro post donde explico cómo lo hice, igual te sirve:
    http://www.eslomas.com/index.php/archives/2008/10/06/migrando-de-xen-a-kvm-en-ubuntu/

  16. Muchas gracias por la respuesta, tengo en cuenta la opcion del KVM pero primero probare instalando de nuevo el Ubuntu 7.10 para probar con XEN (es que tengo que hacer un trabajo con este programa). Te dire si lo he conseguido.

    Saludos

  17. hola te felicito por tu articulo, esta muy documentado, ahora te comento mi problema al intentar iniciar xen desde el administrador de maquinas virtuales me tira este error y no puedo iniciar a ver si podiais ayudarme con qemu no tengo problema alguno saludos

    Unable to open connection to hypervisor URI ‘xen:///’:
    virConnectOpenReadOnly() failed
    Traceback (most recent call last):
    File “/usr/share/virt-manager/virtManager/connection.py”, line 332, in _open_thread
    self.vmm = libvirt.openReadOnly(self.uri)
    File “/usr/lib/python2.5/site-packages/libvirt.py”, line 144, in openReadOnly
    if ret is None:raise libvirtError(‘virConnectOpenReadOnly() failed’)
    libvirtError: virConnectOpenReadOnly() failed

  18. Tu comentario está pendiente de moderación.

    hermanos ayuda urgente……………. he podido virtualizar winserver 2008 r2, winxp, sin novedad… me he podido conectar por vnc al dom0 excelente y todo.. pero cuando inicia el escritorio windows y todo me lo muesta excelente… NO ME ASIGNA UNA IP VALIDA… NO TENGO RED Y MUCHO MENOS INTERNET… cuando creo los .cfg y le digo q tome por defecto dhcp=”dhcp” me da un error de “no existe la mv” y al comentarle la linea dhcp=”dhcp” si me crea la mv. pero sin ip….. en el xend-conf.sxp tengo los bridge:
    (network-script network-bridge)
    (vif-script vif-bridge)
    que estare haciendo mal? o q archivo debo modificar?????????? help meeeee!!!!!!

Trackbacks/Pingbacks

  1. EsLoMas.com » Migrando de XEN a KVM en Ubuntu - 06. Oct, 2008

    […] Hace unos meses comencé a utilizar XEN como plataforma de virtualización en mi servidor doméstico, sin embargo con la actualización a Ubuntu 8.04 LTS comenzó a darme problemas de conectividad entre las máquinas virtuales, el host e internet. Tras mucho investigar averigüé que habían sacado la versión 8.04 sin resolver unos problemas con la plataforma AMD64 (y eso que es un LTS), y dado que la opción preferente era KVM no tenía visos de resolverse rápido. Así pues no me ha quedado más remedio que pasarme a KVM. El cambio ha sido mejor de lo que pensaba porque KVM, combinado con libvirt y virt-manager, está bastante más maduro que cuando lo probé hace un año, pero esto no quita para que Ubuntu haya hecho algo bastante poco apropiado, más acorde con otro tipo de compañías. […]