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
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