Dernière mise à jour : 25/01/2008
Cet article décrit une mise en route rapide d'un serveur Xen utilisant HVM (Hardware Virtual Machine). Il vous faut donc un serveur dont le processeur dispose de capacités VT (Virtual Technology). Notez également que cette option se configure dans le bios et que beaucoup de revendeurs ont tendance à la désactiver par défaut.
Je ne reviendrais pas sur l'installation de Debian ni de la configuration LVM qui ont été traités dans le premier article sur la virtualisation. Pour cet exemple, vous avez besoin d'un volume logique de quelques Go. L'exemple ici est fait avec 5Go, libre à vous d'adapter. Voici l'exemple de partionnement après installation dans le disque LVM :
Disk /dev/hda: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 1 61 489951 83 Linux /dev/hda2 62 304 1951897+ 83 Linux /dev/hda3 305 426 979965 83 Linux /dev/hda4 427 652 1815345 5 Extended /dev/hda5 427 548 979933+ 82 Linux swap / Solaris /dev/hda6 549 652 835348+ 83 Linux
Voici donc l'exemple de configuration à placer dans /etc/xen/exemple.cfg et dont je vais décrire les paramètres importants. Notez bien le disque physique utilisé pour LVM en hda et le CD d'installation donné comme lecteur secondaire. Notez aussi la MAC, indispensable pour éviter que Xen ne vous crée une nouvelle interface à chaque redémarrage de la machine virtuelle (remplacez xx par une MAC valide, comme celle que le système attribue lors de l'installation. Il faut ensuite commenter l'option de boot sur le CD (dernière ligne) après installation pour démarrager sur le disque dur virtuel. Les options VNC sont necessaires afin d'avoir une console pour procéder à l'installation, en HVM il n'existe en effet pour le moment aucun moyen d'utiliser la console Xen ...
kernel = '/usr/lib/xen/boot/hvmloader' builder = 'hvm' memory = '128' name = 'exemple' hostname = 'exemple.net' device_model = '/usr/lib/xen/bin/qemu-dm' nic=1 disk = [ 'phy:/dev/frlinuxvg/astaroth,ioemu:hda,w', 'file:/home/frlinux/debian-40r2-i386-CD-1.iso,hdc:cdrom,r'] vif = [ 'type=ioemu,mac=00:xx:xx:xx:xx:xx,bridge=xenbr0' ] sdl=0 # L'output sera visible sur un serveur vnc sur son display 1 vnc=1 vnclisten='192.168.0.1' vncunused=0 # remplacez 1 par 2 pour la prochaine machine, etc ... vncdisplay=1 vncconsole=1 vncpasswd='votre_pass' boot = 'd'
Petite astuce, si vous modifiez votre fichier exemple.cfg, pensez à faire un shutdown de la machine, car un reboot ne fera que prendre les paramètres existants. Petite cerise, voici un fichier de configuration pour netbsd 4 (merci iMil :) Notez l'ajout d'un modèle de carte sans lequel NetBSD perd vite les pédales avec le monde réel si vous prenez celui par défaut. Pensez enfin à commenter la dernière ligne pour démarrer sur le disque dur après installation.
kernel = '/usr/lib/xen/boot/hvmloader' builder = 'hvm' memory = '128' name = 'frbsd' hostname = 'frbsd.net' device_model = '/usr/lib/xen/bin/qemu-dm' nic=1 disk = [ 'phy:/dev/frlinuxvg/frbsd,ioemu:hda,w', 'file:/home/frlinux/i386cd-4.0.iso,hdc:cdrom,r'] vif = [ 'type=ioemu,bridge=xenbr0,model=ne2k_pci' ] sdl=0 # L'output sera visible sur un serveur vnc sur son display 1 vnc=1 vnclisten='192.168.0.1' vncunused=0 vncdisplay=1 vncconsole=1 vncpasswd='votre_pass' boot = 'd'