Xen (Español)

From ArchWiki
Revision as of 09:18, 8 December 2010 by LucaXtremo (Talk | contribs) (Created page with "Category:Emuladores (Español) {{i18n|Xen}} Esta página explica como instalar Xen en Arch Linux. ==Que es Xen?== Según el equipo de desarrollo de Xen: "El hipervisor Xen, ...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Esta página explica como instalar Xen en Arch Linux.

Que es Xen?

Según el equipo de desarrollo de Xen: "El hipervisor Xen, la solución para virtualización open source estándar del mercado, ofrece un poderoso, eficiente, y seguro conjunto de características para la virtualización de x86, x86_64, IA64, PowerPC, y otras arquitecturas. Soporta una amplia gama de sistemas operativos huéspedes, incluyendo Windows®, Linux®, Solaris®, y sistemas basados en BSD."

Xen es una capa delgada de software que emula una arquitectura de computadora. Comienza a funcionar desde el cargador de arranque y permite correr simultáneamente varios sistemas operativos sobre el. Una vez cargado el hipervisor Xen, éste arranca el "dom0" (dominio 0), o dominio privilegiado, que en nuestro caso corre un kernel modificado de Linux (otros sistemas como NetBSD y OpenSolaris tambien son capaces de alojar el dom0). El kernel dom0 que está disponible en AUR, está basado en una version reciente del kernel 2.6 de linux. Hay una version -dev más inestable tambien; para el que el hardware debe, obviamente, estar soportado por este kernel para correr Xen. Después de que el dom0 halla arrancado, uno o más dominios "domU" (sin privilegios) pueden ser ejecutados y administrados desde dom0.

Instalando Xen

Consiguiendo los paquetes necesarios

Antes de trabajar con el paquete xen, debemos estar seguros de que tenemos gcc, make, patch, y python2 instalados.

pacman -S gcc make patch python2

El nuevo paquete xen, contiene Xen 4 y resuelve todas las dependencias necesarias automáticamente. Vamos a conseguirlo por AUR.

yaourt -S xen

Xen-tools es una colección de simples scripts de perl que permiten crear facilmente nuevos dominios huéspedes de Xen. Si es que lo necesitas, tambien está disponible en AUR.

yaourt -S xen-tools

El siguiente paso es compilar e instalar el kernel dom0. Para hacer eso, vamos a construir el paquete kernel26-xen-dom0 de AUR.

yaourt -S kernel26-xen-dom0

Importante: actualmente, el paquete kernel26-xen-dom0 esta declarado como desactualizado en AUR, y hasta entonces no ha sido puesto al día con la versión 2.6.36. Lo más recomendable, es pasar por alto los parámetros de la versión 2.6.36 y usar los valores por defecto (o los que desees) - a partir de ahi, apretar enter cada vez que se es preguntado.

La etapa de instalación termina aquí. Ahora vamos a configurar Grub y arrancaremos en el kernel que acabamos de compilar.

Configurando GRUB

Grub debe ser configurado de tal manera que el hipervisor Xen arranque seguido por el kernel dom0. Agregaremos la siguiente entrada al archivo /boot/grub/menu.lst:

title Xen con Arch Linux
root (hd0,X)
kernel /xen.gz dom0_mem=524288
module /vmlinuz26-xen-dom0 root=/dev/sdaY ro console=tty0 vga=gfx-1024x768x8
module /kernel26-xen-dom0.img

En donde X e Y son los números correspondientes a nuestra configuración de disco; y dom0_mem, console, y vga son parámetros opcionales y personalizables. Pequeño Detalle: podemos usar volúmenes LVM también. Entonces, en vez de /dev/sdaY podriamos poner /dev/mapper/pepitolvm. También, podremos notar que el parámetro vga se comporta de una manera distinta a las lineas habituales de configuración del kernel. El tema a sido discutido en la lista Xen-devel: [1]

El kernel estándar de arch puede ser usado para arrancar domU's. Para lograr esto, debemos agregar 'xen-blkfront' a los modules de /etc/mkinitcpio.conf:

MODULES="... xen-blkfront ..."

Ahora, debemos reiniciar en el kernel xen.

Siguiente paso: Iniciar xend:

# /etc/rc.d/xend start

Asignar una cantidad de fija de memoria es la mejor opción a la hora de usar xen. Además, si estamos corriendo huéspedes con una actividad de E/S intensiva, es una buena idea dedicar (pin) un núcleo del CPU únicamente para uso de dom0. Para mas información, visitar la sección "Can I dedicate a cpu core (or cores) only for dom0?" de XenCommonProblems.

Configurando GRUB2

Se hace de la misma manera que Grub, pero en este caso, necesitamos usar el comando 'multiboot' en vez de usar 'kernel'. Un ejemplo podría ser:

# (2) Arch Linux(XEN)
menuentry "Arch Linux(XEN)" {
    set root=(hd0,X)
    multiboot /boot/xen.gz dom0_mem=2048M
    module /boot/vmlinuz26-xen-dom0 root=/dev/sdaY ro
    module /boot/kernel26-xen-dom0.gz
}

Si ya conseguimos arrancar en el kernel dom0, podemos continuar.

Agregando un domU

La idea básica detrás de agregar un domU es la siguiente. Necesitamos conseguir los kernels domU, asignar espacio para el disco virtual, crear un archivo de configuración para el domU, y finalmente arrancarlo con xm.

$ mkfs.ext4 /dev/sdb1    ## format partition
$ mkdir /tmp/install
$ mount /dev/sdb1 /tmp/install
$ mkdir -p /tmp/install/dev /tmp/install/proc /tmp/install/sys /tmp/install/var/lib/pacman /tmp/install/var/cache/pacman/pkg /tmp/install/var/lib/pacman
$ mount -o bind /dev /tmp/install/dev
$ mount -t proc none /tmp/install/proc
$ mount -o bind /sys /tmp/install/sys
$ pacman -Sy -r /tmp/install --cachedir /tmp/install/var/cache/pacman/pkg -b /tmp/install/var/lib/pacman base
$ cp -r /etc/pacman* /tmp/install/etc
$ chroot /tmp/install /bin/bash
$ vi /etc/resolv.conf
$ vi /etc/fstab
    /dev/xvda               /           ext4    defaults                0       1

$ vi /etc/inittab
    c1:2345:respawn:/sbin/agetty -8 38400 hvc0 linux
    #c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
    #c2:2345:respawn:/sbin/agetty -8 38400 tty2 linux
    #c3:2345:respawn:/sbin/agetty -8 38400 tty3 linux
    #c4:2345:respawn:/sbin/agetty -8 38400 tty4 linux
    #c5:2345:respawn:/sbin/agetty -8 38400 tty5 linux
    #c6:2345:respawn:/sbin/agetty -8 38400 tty6 linux


$ exit  ## exit chroot
$ umount /tmp/install/dev
$ umount /tmp/install/proc
$ umount /tmp/install/sys
$ umount /tmp/install

Si no estamos arrancado desde una instalación fresca y queremos usar rsync con un sistema operativo preexistente:

$ mkfs.ext4 /dev/sdb1    ## format lv partition
$ mkdir /tmp/install
$ mount /dev/sdb1 /tmp/install
$ mkdir /tmp/install/{proc,sys}
$ chmod 555 /tmp/install/proc
$ rsync -avzH --delete --exclude=proc/ --exclude=sys/ old_ooga:/ /tmp/install/

$ vi /etc/xen/dom01     ## create config file
    #  -*- mode: python; -*-
    kernel = "/boot/vmlinuz26"
    ramdisk = "/boot/kernel26.img"
    memory = 1024
    name = "dom01"
    vif = [ 'mac=00:16:3e:00:01:01' ]
    disk = [ 'phy:/dev/sdb1,xvda,w' ]
    dhcp="dhcp"
    hostname = "ooga"
    root = "/dev/xvda ro"

$ xm create -c dom01

Arch como huésped de Xen (modo PV)

Para llevar a cabo la paravirtualización tenemos que instalar:

Cambiamos al modo PV por comandos (en dom0):

 xe vm-param-set uuid=<vm uuid> HVM-boot-policy=""
 xe vm-param-set uuid=<vm uuid> PV-bootloader=pygrub

Editamos /boot/grub/menu.lst y agregamos kernel26-xen:

 # (1) Arch Linux (domU)
 title  Arch Linux (domU)
 root   (hd0,0)
 kernel /boot/vmlinuz26-xen root=/dev/xvda1 ro console=hvc0
 initrd /boot/kernel26-xen.img

Agregamos los siguientes módulos de Xen a nuestro initcpio, añadiendo los siguientes módulos a MODULES en /etc/mkinitcpio.conf: "xen-blkfront xen-fbfront xenfs xen-netfront xen-kbdfront" y reconstruimos nuestro initcpio:

 mkinitcpio -p kernel26-xen

Descomentamos la siguiente línea en /etc/inittab para habilitar el login por console:

 h0:2345:respawn:/sbin/agetty -8 38400 hvc0 linux

xe-guest-utilities

Para usar xe-guest-utilities, agregamos el punto de montaje xenfs al archivo /etc/fstab:

 xenfs                  /proc/xen     xenfs     defaults            0      0

y añadimos 'xe-linux-distribution' a la sección DAEMONS de /etc/rc.conf.

Notas

  • pygrub no muestra menu de arranque.
  • Para evitar mensajes de error de hwclock, debemos establecer HARDWARECLOCK="xen" en /etc/rc.conf (actualmente, alcanza con usar cualquier valor que no sea "UTC" o "localtime")
  • Si necesitamos volver a la HVM, establecemos HVM-boot-policy="BIOS order".
  • Si se presenta un mensaje 'kernel panic' en el arranque de Xen y éste sugiere 'use apic="debug" and send an error report', podemos intentar agregar 'noapic' a la línea del kernel en menu.lst

Xen Management Tools

The "Virtual Machine Manager" application (virt-manager for short package name) is a desktop user interface for managing virtual machines. It presents a summary view of running domains, their live performance & resource utilization statistics. The detailed view graphs performance & utilization over time. Wizards enable the creation of new domains, and configuration & adjustment of a domain's resource allocation & virtual hardware. An embedded VNC client viewer presents a full graphical console to the guest domain.

yaourt -S virt-manager-light

Paquetes

En AUR, hay una pequeña cantidad de paquetes que pueden ser utiles si se tienen en cuenta, en la siguiente lista se encuentran algunos de los más interesantes (Actualizado: 23/05/2010)

Hipervisor (dom0)

Huésped (domU)

Paquetes no relacionados

(p.e. para plataformas XenServer/Xen Cloud)

  • Open source multiplatform clone of XenCenter frontend: openxencenter
  • Open source multiplatform clone of XenCenter frontend (svn version): openxencenter-svn
  • Xen Cloud Platform frontend: xvp

Enlaces Externos

  • Web Oficial de Xen: [2]
  • La Wiki Xen: [3]
  • Parches Xen para el kernel: [4]