Quelques documentations à parcourir attentivement.
* http://www.bortzmeyer.org/xen.html
* http://julien.danjou.info/xen.html
* http://wiki.xensource.com/xenwiki/
* http://wiki.xensource.com/xenwiki/XenNetworking
* http://wiki.xensource.com/xenwiki/XenIntro
Dans sources.list :
deb http://www.backports.org/debian/ sarge-backports main
/etc/apt/preferences
Package: xen-3.0 Pin: release a=sarge-backports Pin-Priority: 999 Package: xen-tools Pin: release a=sarge-backports Pin-Priority: 999 Package: linux-2.6 Pin: release a=sarge-backports Pin-Priority: 999 Package: udev Pin: release a=sarge-backports Pin-Priority: 999 Package: lsb-base Pin: release a=sarge-backports Pin-Priority: 999 Package: module-init-tools Pin: release a=sarge-backports Pin-Priority: 999 Package: grub Pin: release a=sarge-backports Pin-Priority: 999 Package: * Pin: release a=stable Pin-Priority: 900 Package: * Pin: release a=sarge-backports Pin-Priority: 300
# apt-get install xen-hypervisor-3.0-i386 xen-utils-3.0 xen-tools linux-image-xen-686
S'il y a un problème avec udev :
# dpkg --purge udev # apt-get install udev
Le fichier intrd n'étant pas encore créé automatiquement :
# update-initramfs -t -c -k 2.6.16-1-xen-686
Configuration de grub :
title Xen-3.0 - 2.6-xen-686 - 256M kernel /boot/xen-3.0-i386.gz dom0_mem=262144 module /boot/vmlinuz-2.6.16-1-xen-686 root=/dev/hdXX ro module /boot/initrd.img-2.6.16-1-xen-686 savedefault boot
On va réutiliser les images utilisées pour user mode linux : dans /etc/xen/fw
kernel = "/boot/vmlinuz-2.6.16-1-xen-686" ramdisk = "/boot/initrd.img-2.6.16-1-xen-686" memory = 64 name = "fw" root = "/dev/hda1 ro" disk = [ "file:/home/ftp/ISRAD/UML/fw.root,hda1,w", "file:/home/ftp/ISRAD/UML/fw.swap,hdb1,w"] vif = [ '' , '', '' ]
Modifier /etc/fstab sur fw.root ubd0 devient hda1, ubd1 devient hdb1 et /etc/inittab tty0 devient tty1
Installer les modules du noyau xen dans l'image fw.root :
# mount -o loop fw.root /mnt # cp -a /lib/modules/2.6.16-1-xen-686/ /mnt/lib/modules/ # umount /mnt
S'assurer que le module loop est bien chargé :
: modprobe loop
Ou ajouter loop au fichier /etc/modules
Par défaut il n'y a que 8 devices loop de possible, utiliser l'option max_loop=64 pour avoir une valeur plus confortable.
modprobe loop max_loop=64
Ou ajouter options loop max_loop=64 au fichier /etc/modprobe.d/loop
Création du domaine (= lancement de la machine virtuelle) :
xm create fw -c
Pour quitter la console du domaine Ctrl ], pour y revenir :
xm list xm console "id du domaine"
S'assurer que le paquet bridge-utils est installé.
Lire /usr/share/doc/bridge-utils/README.Debian.gz
Editer le fichier de configuration de xend /etc/xen/xend-config.sxp et y choisir le script voulu. Voir http://wiki.xensource.com/xenwiki/XenNetworking.
Pour obtenir le même type de configuration que pour l'UML avec fw, lan et dmz :
(network-script network-bridge)
créera un pont ethernet relié à internet auquel se raccordera l'interface eth0 du fw via l'option vif=['bridge=xenbr0'] de son fichier de configuration /etc/xen/fw
Créer deux autres ponts lan et dmz en utilisant /etc/network/interface :
auto dmz iface dmz inet manual bridge_ports none # optional bridge_maxwait 0 auto lan iface lan inet manual bridge_ports none # optional bridge_maxwait 0
Rebooter afin que xend prenne en compte la modification de son fichier de configuration.
Lancer fw, lan et dmz, il doit y avoir du réseau entre elles.
Extrait de http://www.shorewall.net/XenMyWay.html (page très intéressante) :
“Caution
Under some circumstances, UDP and/or TCP communication from a domU won't work for no obvious reason. That happened with the lists domain in my setup. Looking at the IP traffic with tcpdump -nvvi eth1 in the firewall domU showed that UDP packets from the lists domU had incorrect checksums. That problem was corrected by arranging for the following command to be executed in the lists domain when its eth0 device was brought up:”
ethtool -K eth0 tx off
Cette commande désactive la vérification des checksums des paquets transmis via eth0. Il y a apparemment quelquefois un problème avec l'implémentation des interfaces réseau virtuelles de xen. La commande ethtool est dans le paquet ethtool.
Afin que cette commande soit lancée juste après la configuration de l'interface, rajouter dans /etc/network/interfaces du lan et de la dmz
post-up ethtool -K eth0 tx off
fw:~# apt-get install dhcp3-server
Le serveur dhcp doit éciouter l'interface eth1 : Dans /etc/default/dhcp3-server
INTERFACES="eth1"
shorewall doit laisser passer les paquets dhcp sur eth1 : /etc/shorewall/interfaces :
loc eth1 detect dhcp
Redémarrer shorewall : shorewall restart
Indiquer au serveur dhcp le réseau qu'il doit servir : modifier /etc/dhcp3/dhcpd.conf
option domain-name "isri.u-picardie.fr"; option domain-name-servers 193.49.184.6; subnet 192.168.253.0 netmask 255.255.255.0 { range 192.168.253.100 192.168.253.150; option routers 192.168.253.1; }
Redmarrer le serveur dhcp.
Création du disque :
dd if=/dev/zero of=netbsd.img bs=1 seek=1024M count=1
Récupèrer les noyaux, iso et fichier de configuration sur http://www.u-picardie.fr/~jcd/XEN/
Modifications à apporter au fichier /etc/xen/netbsd (copie du fichier netbsd.cfg récupéré précédemment) :
kernel = "/home/jcd/ISRAD/UML/netbsd-INSTALL_XEN3_U" vif = [ 'bridge=lan' ] disk = [ 'file:/home/jcd/ISRAD/UML/netbsd.img,hda,w','file:/home/jcd/ISRAD/UML/i386cd-3.0.iso,hdb,r'] dhcp="dhcp"
Démarrer le domaine. Choisir l'installation CD, le cdrom est sur accessible via le device xbd1a.
Une fois l'installation termninée, ne pas demander à l'installeur de rebooter : quitter l'installation puis arrêter le domU (halt). Sinon le domU va redémarrer sur le noyau d'installation.
Changer de noyau dans /etc/xen/freebsd, utilisez le noyau netbsd_XEN3_U. À la fin du fichier, vérifier que vous montez bien la bonne partition :
extra += ",vfs.root.mountfrom=ufs:/dev/xbd0a"
Démarrer le domaine.
Récupérer kernel-current, mdroot-7.0.bz2 et freebsd.cfg. Bunziper mdroot-7.0.bz2. Utiliser le fichier freebsd.cfg comme fichier de configuration pour le domU.
Démarrer le domaine. (Pas de mot de passe).