Note en passant : Salut à tous, j’ai pas posté depuis longtemps sur ce site parce que j’étais parti pendant un an en voyage. Me revoilà (tadaaa !), premier article le jour de mon anniversaire 😀 Enjoy !
J’ai décidé d’écrire ce howto parce que j’ai rencontré des problèmes à l’installation de Xen 3.3.2 avec les modules du noyau compilé « manuellement » sur une debian 5.0 , et il y a deux-trois petites astuces à connaitre aussi, et aussi que j’en ai pas trouvé en français (j’avoue que j’ai pas été plus loin que le 2 premières pages de résultat google…).
Et pourquoi se casser la tête à compiler un xen me direz-vous ? Et bien tout simplement à cause d’un ou deux bugs gênant pour moi 🙂 Vous les découvrirez en lisant ce HOWTO.
Sur une installation fraiche de debian lenny :
Installation du xen normal :
apt-get install libc6-xen libxenstore3.0 linux-headers-2.6-xen-686 linux-headers-2.6.26-2-common-xen linux-headers-2.6.26-2-xen-686 linux-image-2.6-xen-686 linux-image-2.6.26-2-xen-686 linux-modules-2.6-xen-686 linux-modules-2.6.26-2-xen-686 xen-hypervisor-3.2-1-i386 xen-shell xen-tools xen-utils-3.2-1 xen-utils-common xenstore-utils
vim /etc/xen/xend-config.sxp
(xend-relocation-server yes)
(xend-relocation-hosts-allow '^localhost$ ^localhost\.localdomain$')
(network-script 'network-bridge bridge=xenbr0 netdev=eth0')
(vif-script vif-bridge)
(dom0-min-mem 196)
(enable-dom0-ballooning yes)
(dom0-cpus 1)
(vncpasswd '')
Ici il est très important de laisser dom0-cpus à 1, sinon le dom0 plantera au bout d’un certains temps. Mais cependant, de mettre le dom0 à 1 empêche le reboot des machines virtuelles. On est obligé de les tuer, ce qui n’est pas très propre. Un autre problème, c’est quand des utilisateurs sont admin de leur machine virtuelle, et qu’ils veulent faire un reboot, ça nous oblige à intervenir.
On configure l’interface réseau (à adapter selon le réseau) :
vim /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.15
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.63
dns-nameservers 192.168.0.2 192.168.0.3
auto xenbr0
iface xenbr0 inet static
address 192.168.0.15
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.63
dns-nameservers 192.168.0.2 192.168.0.3
bridge_ports eth0
bridge_maxwait 0
bridge_hello 0
bridge_fr 0
Ici on peut faire un reboot pour déjà valider que le dom0 fonctionne bien.
Puis on install la dernière version de xen en compilant :
On installe les paquets essentiels à la compilation :
apt-get install bcc bin86 gawk bridge-utils iproute libcurl3 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif texinfo pciutils-dev mercurial build-essential make gcc libc6-dev zlib1g-dev python python-dev python-twisted libncurses5-dev patch libvncserver-dev libsdl-dev libjpeg62-dev
On télécharge, on compile et on installe la source :
cd /usr/src/
wget http://bits.xensource.com/oss-xen/release/3.3.2/xen-3.3.2.tar.gz
tar -xvzf xen-3.3.2.tar.gz
cd xen-3.3.2
make world && make dist
(answer the few questions then take a coffee, or a rest :)...)
./install.sh
update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 21 20
depmod 2.6.18.8-xen
update-initramfs -c -k 2.6.18.8-xen
update-grub
On reconfigure xen :
vim /etc/xen/xend-config.sxp
(network-script 'network-bridge bridge=xenbr0 netdev=eth0')
(vif-script vif-bridge)
(dom0-cpus 0)
Ca y est on peut mettre dom0-cpu à 0, cool !
Et là l’astuce, c’est de modifier menu.lst de GRUB pour utiliser les modules de la version officielle (installée avant la version compilée) avec le nouveau noyau xen :
title Xen 3.3.2 / Debian GNU/Linux, kernel 2.6.18.8-xen
root (hd0,0)
kernel /boot/xen-3.3.2.gz
module /boot/vmlinuz-2.6.26-2-xen-686 root=UUID=fe72ca30-05cf-4baf-9e0f-41749cf4011a ro console=tty0
module /boot/initrd.img-2.6.26-2-xen-686
au lieu de
#module /boot/vmlinuz-2.6.18.8-xen root=UUID=fe72ca30-05cf-4baf-9e0f-41749cf4011a ro console=tty0
#module /boot/initrd.img-2.6.18.8-xen
Reboot and enjoy !
Cheers
Inspirations et sources :
– http://www.xen-support.com/?p=211
20 mai 2010
Bonsoir,
Joyeux anniversaire tout d’abord =)
Je suis un peu étonné par ce que tu dis notamment le passage suivante :
Ici il est très important de laisser dom0-cpus à 1, sinon le dom0 plantera au bout d’un certains temps
C’est surprenant et ça induit une utilisation assez problématique du dom0 surtout le coup du reboot des VM.
Je n’ai jamais eu de soucis à ce niveau là moi… Tu es sûr que c’est à cause de ca que tu as des crashs ?
Accessoirement, tant que tu es à compiler du Xen à la main, autant mettre la version 4.0 avec les kernel pvops 😛
Bonne soirée,
Antoine
26 mai 2010
Salut Antoine,
Désolé pour la réponse un peu longue…
Si tu veux plus d’info sur ce bug :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524571
Par contre tu as raison, il semblerait que ce soit corrigé à présent…
On fera des tests quand on aura le temps, et je modifierai le post en conséquence.
Merci en tout cas de participer 🙂
Romaric
22 juin 2010
Plop !
Vos articles sur la virtualisation me semblent fort intéressants et complets, je vais tâcher de prendre exemple et m’essayer à l’installation de XEN pour avoir une plate-forme de tests opensource.
Cordialement,
Valentin
23 juillet 2010
Bonjour,
Ayant fait mon server xen 3.2 sous Lenny, aujourd’hui, je rencontre un probleme, xen ne veut pas demarrer. Mes domU se trouvent sur des LVM et le dom0 sur un disc physique à part entiere. Si je prends un nouveau disc dur pour le dom0, va t il voir mes autre domU si je compile le xen 4 ? Et est il stable ?
10 juin 2011
Bonjour,
je suis en stage et je suis chargé de faire de la virtualisation sur un serveur de test, un debian 2.6.32-5-amd64
J’ai suivi votre tuto est voici c- dessous l’erreur que j’ai lorsque je fais la commande
xen-create-image –hostname=XenUbuntu
ça serait vraiment gentil s’il y a quelqu un qui pourrait m’aider
merci d’avance
General Information
——————–
Hostname : XenUbuntu
Distribution : gutsy
Mirror : http://archive.ubuntu.com/ubuntu
Partitions : swap 128Mb (swap)
/ 4Gb (ext3)
Image type : sparse
Memory size : 128Mb
Kernel path : /boot/vmlinuz-2.6.32-5-xen-amd64
Initrd path : /boot/initrd.img-2.6.32-5-xen-amd64
Networking Information
———————-
IP Address : DHCP [MAC: 00:16:3E:6E:B0:1D]
Creating partition image: /var/xen/domains/XenUbuntu/swap.img
Done
Creating swap on /var/xen/domains/XenUbuntu/swap.img
Done
Creating partition image: /var/xen/domains/XenUbuntu/disk.img
Done
Creating ext3 filesystem on /var/xen/domains/XenUbuntu/disk.img
Done
Installation method: debootstrap
Done
System installation failed. Aborting
/tmp/038mS6GGMN/etc/ssh/ssh_host_rsa_key.pub: No such file or directory
Logfile produced at:
/var/log/xen-tools/XenUbuntu.log
Removing: /var/xen/domains/XenUbuntu
17 juin 2011
Salut,
Désolé, mais je ne sais trop quoi te dire.
J’ai vu des pistes de ce côté :
http://lists.xensource.com/archives/html/xen-users/2011-04/msg00048.html
Bonne journée