Este Xen esta siendo instalado en un Debian/Unstable Etch. Este documento no es un tutorial, es una receta (es necesario tener conocimientos sobre lo que se está haciendo).
Las maquinas virtuales utilizan dispositivos loop como discos
http://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p2
Preparar seguridad y herramientas en domU
apt-get remove exim4 exim4-base lpr nfs-common portmap pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig apt-get install screen ssh debootstrap python python-twisted iproute bridge-utils libcurl3-dev
Instalar systema Xen
apt-get install xen-linux-system-2.6.18-3-xen-686
este es un metapaquete que intala todo lo necesario en un sistema Debian para que quede funcionando Xen.
Conviene hacer una revisación de la configuración con la que ha dejado a grub la instalación de los paquetes
module /boot/vmlinuz-2.6.17-2-xen-686 root=/dev/hda1 ro console=tty0
esto permite levantar hasta 4 maquinas virtuales
module /boot/vmlinuz-2.6.17-2-xen-686 root=/dev/hda1 ro console=tty0 max_loop=X
donde X debe ser el doble de las máquinas virtuales a levantar (default: max_loop=8)
Reboot
Nuevos servicios deben aparecer una vez reinicado el servidor: xend xenstored xenconsoled
Verificar la existencia de las interfaces peth0
vif0.0
y xenbr0
. En caso de que no estén levantadas, es necesario habilitar:
/etc/xen/xend-config.sxp
(network-script network-bridge) # (network-script network-dummy)
y reiniciar /etc/init.d/xend restart
http://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p4
Crear espacio para el sistema de máquinas virtuales
mkdir /vserver mkdir /vserver/vm_base mkdir /vserver/images
Crear particiones basicas:
dd if=/dev/zero of=/vserver/images/vm_base.img bs=1024k count=1000 dd if=/dev/zero of=/vserver/images/vm_base-swap.img bs=1024k count=500
mkfs.ext3 /vserver/images/vm_base.img mkswap /vserver/images/vm_base-swap.img
Instalar debian básico en la imagen y configurar:
mount -o loop /vserver/images/vm_base.img /vserver/vm_base debootstrap --arch i386 etch /vserver/vm_base/ http://www.pilas.biz/debian chroot /vserver/vm_base
editar /etc/apt/sources.list
y colocar los repositorios que se van a utilizar
apt-get update apt-get install locales dpkg-reconfigure locales es_UY.UTF-8 (default) en_US.UTF-8 es_ES.UTF-8
/etc/environment
LANGUAGE="es_UY.UTF-8:es_ES.UTF-8" LANG=es_UY.UTF-8 LC_LANG=es_UY.UTF-8 LC_ALL=es_UY.UTF-8 export LANGUAGE LANG LC_LANG LC_ALL
e instalar algunas cositas útiles
apt-get install vim ssh zip unzip screen less iftop psmisc apt-get remove --purge nano
rm -f /etc/hostname
crear y editar un /etc/fstab
/dev/hda1 / ext3 defaults 1 2 /dev/hda2 none swap sw 0 0
Opcional (no necesario, pues Debian monta en init.d
/dev/hda1 / ext3 defaults 1 2 /dev/hda2 none swap sw 0 0 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0
/etc/network/interfaces
auto lo iface lo inet loopback
/etc/hosts
127.0.0.1 localhost.localdomain localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
desde la máquina principal copiar y arreglar lo que falta…
cp -dpR /lib/modules/2.6.17-2-xen-686 /vserver/vm_base/lib/modules/ mv /vserver/vm_base/lib/tls /vserver/vm_base/lib/tls.disabled umount /vserver/vm_base
http://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p5
cp -pf /vserver/images/vm_base.img /vserver/images/vm01.img cp -pf /vserver/images/vm_base-swap.img /vserver/images/vm01-swap.img
/etc/xen/vm01-config.sxp
name = "vm01" kernel = "/boot/vmlinuz-2.6.17-2-xen-686" ramdisk = "/boot/initrd.img-2.6.17-2-xen-686" root = "/dev/hda1 ro" memory = 32 disk = ['file:/vserver/images/vm01.img,hda1,w','file:/vserver/images/vm01-swap.img,hda2,w'] # network (NO FUNCIONO) # nics=1 (deprectated) # se asume mac aleatorea vif = [ '' ] dhcp = "off" ip = "192.168.2.44" netmask = "255.255.255.0" gateway = "192.168.2.1" hostname = "vm01" # runlevel extra="2"
xm create -c /etc/xen/vm01-config.sxp
Este error se debe a dos posibilidades:
disk = [ ]
tiene problemas:lsmod | grep loop
[max_loop=X]
como parámetro del kernelEsto bootea una maquina en ramdisk:
xm create -c /dev/null ramdisk=initrd.img \ kernel=/boot/vmlinuz-2.6.18-3-xen-686 \ ramdisk=/boot/initrd.img-2.6.18-3-xen-686 \ name=ramdisk vif='' vcpus=1 memory=64 root=/dev/ram0 \ cdrom=/data/CDImages/trixbox-2.0-beta2.iso boot=d