Xen
Notes sur l'installation de Xen sur une Debian Etch / Linux 2.6
En cours de rédaction
Sommaire
Introduction
Nous utilisons Linux VServers sans problèmes depuis un certain temps déjà, mais dans certains cas il est intéressant de faire un pas plus en avant en terme de para-virtualisation (plus grande liberté au niveau de la couche réseau, ou des noyeaux utilisés) ou tout simplement dans la cas de la virtualisation pure (OS propriétaires).
Ce petit article n'est pas un n-ième howto sur la question, mais rassemble plutôt quelques notes prises lors de mes installations et tests.
Environnement:
- Materiel: SuperMicro X7DVL-E Bi-Xeon Quad core (E5310), 12 GB Memoire, 2 TB Disque
- OS hôte (Domain 0): Debian Etch
- Xen Open Source: version 3.1
Debian Etch (DomO)
Généralités
Nous démarrerons su base d'une Debian Etch installée et à jour.
Nous désirons tourner des machines virtuelles 32 bits. Le support des machines virtuelles 32 bits sur un hôte 64 bits dans Xen est assez récent (32-on-64 PV guest support), et pour des raisons de stabilité, nous installons donc une version i386 de Debian.
Partitionnement
Nous réservons un Volume Group pour accueillir les machines virtuelles Xen. Il contiendra un file system pour les images disques sur fichier et des logical volumes pour les acces direct.
Packages
En dehors d'un install de base, les packages suivants sont nécessaires:
Pour Xen:
python iproute bridge-utils libssl0.9.7 libsdl1.2debian
Install et build:
dpkg-dev gcc file debootstrap
Noyeau para-visrtualisé Debian:
linux-image-2.6.18-4-xen-686
??
python-twisted libcurl3-dev
Packages utiles
openssh-server screen
Nous utiliserons aussi Checkinstall pour empaqueter Xen
cd /usr/src wget http://asic-linux.com.mx/~izto/checkinstall/files/deb/checkinstall_1.6.1-1_i386.deb dpkg -i dpkg -i checkinstall_1.6.1-1_i386.deb
Xen (Dom0)
L'hyperviseur est téléchargé de XenSource (version tarball / i386 PAE)
mkdir /usr/src/xen cd /usr/src/xen wget http://bits.xensource.com/oss-xen/release/3.1.0/bin.tgz/xen-3.1.0-install-x86_32p.tgz tar xzf xen-3.1.0-install-x86_32p.tgz
Adaptations Debian:
cd dist chown -R root:root . cd install/etc mv sysconfig default
Création du script network-dummy, si on ne désire pas utiliser le bridge Xen:
cd /usr/src/xen/dist/install/etc/xen echo -e '#!/bin/sh\n\nexit 0' > scripts/network-dummy chmod 755 scripts/network-dummy
Scripts de startup:
cd /usr/src/xen/dist/install/etc perl -pi -e 's@LOCKFILE=/var/lock/subsys/xendomains@LOCKFILE=/var/lock/xendomains@' init.d/xendomains perl -pi -e 's@XENDOM_CONFIG=/etc/sysconfig/xendomains@XENDOM_CONFIG=/etc/default/xendomains@' init.d/xendomains perl -pi -e 's@-c0-17@-c0-37@;s@-c18-@-c38-@' init.d/xendomains for i in 0 1 2 3 4 5 6 ; do mkdir rc$i.d ; done for i in 0 1 6 ; do cd rc$i.d ; ln -sf ../init.d/xend K21xend ; ln -sf ../init.d/xendomains K20xendomains ; cd .. ; done for i in 2 3 4 5 ; do cd rc$i.d ; ln -sf ../init.d/xend S20xend ; ln -sf ../init.d/xendomains S21xendomains ; cd .. ; done
Nous utiliserons les noyeaux Debian:
cd /usr/src/xen/dist/install rm -rf lib rm -f boot/vmlinux-syms-2.6.18-xen boot/vmlinuz-2.6.18-xen boot/vmlinuz-2.6-xen boot/System.map-2.6.18-xen boot/config-2.6.18-xen
Préparation du paquet avec checkinstall
cd /usr/src/xen mv dist xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0 cd xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0 checkinstall -D ./install.sh
Installer le package:
dpkg -i xen-hypervisor-and-tools-3.1.0-1-i386-pae_3.1.0-1_i386.deb
Mettre grub à jour
update-grub
Rebooter!
Notes
Bridging
Si on ne désire pas utiliser le bridge Xen (efficace mais complexe), on peut simplement modifier le fichier de configuration:
perl -pi -e 's@^\(network-script\ network-bridge\)$@\(network-script network-dummy\)@' /etc/xen/xend-config.sxp
Et créér le bridge dans /etc/network/interfaces
auto br0 iface br0 inet dhcp bridge_fd 0 bridge_maxwait 0 bridge_helo 0 bridge_stp off bridge_ports eth0