Ceci est une ancienne révision du document !
Ce qui est présenté ici est un ensemble de notes sur la mise en palce de la virtualisation avec XEN sous Centos 5.6 et non un tutorial validé.
Depuis la version 5.4 de Centos, il est possible en plus de XEN de virtualiser avec KVM. Il importe toutefois d'activer le jeux VT du processeur si celui-ci le permet. Ce réglage se fait en général dans le bios. La commande suivante doit retourner des lignes si la VT est supportée par le processeur.
egrep '(svm|vmx)' /proc/cpuinfo
Faire une installation basique de Centos dans un premier temps.Exemple ici
Procéder à la mise à jour des package et installer le groupe Virtualisation
yum -y update yum -y groupinstall Virtualisation
Ceci va mettre en place un nouveau noyau Linux dit xénifié. Il faut modifier la séquence de boot pour utiliser ce noyau en editant le fichier /boot/grub/menu.lst et en mettant le niveau 0 sur l'option default.
... default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-238.19.1.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-238.19.1.el5 module /vmlinuz-2.6.18-238.19.1.el5xen ro root=LABEL=/ module /initrd-2.6.18-238.19.1.el5xen.img ...
Relancer la machine et verifier l'utilisation du noyau Xen
uname -r => 2.6.18-238.19.1.el5xen
Pour installer une VM paravirtualisée, les sources d'installation, l'image ISO de la distribution, doit être accèssible par le réseau ( http, nfs…) . l'exemple ici présente l'installation avec un serveur web local sur l'IP 192.168.1.100.
Sur ce serveur, monter l'image iso de la distribution
mkdir -p /u01/centos mount -o loop -t iso9660 /home/centos56-i386.iso /u01/centos ln -s /u01/centos /var/www/html/centos
Installer le serveur web
yum install httpd service httpd start chkconfig httpd on
En pointant un navigateur sur http://192.168.1.100/centos, la liste des fichiers de la distribution doit s'afficher.
La méthode n'utilise aucun outils graphiques ou scripts virt-install.
Création d'un file-system pour héberger les VM
mkfs -t ext3 /dev/sda11 mkdir /u01 mount -t ext3 /dev/sda11 /u01
Création de l'image VM
dd if=/dev/zero of=/u01/adi101.img oflag=direct bs=1M count=8192
Installer wget
yum install wget
Charger les images d'installation noyau sous /boot
cd /boot wget http://mirror.centos.org/centos/5/os/i386/images/xen/initrd.img wget http://mirror.centos.org/centos/5/os/i386/images/xen/vmlinuz
Editer le fichier de configuration de la VM sous /etc/xen, exemple : /etc/xen/adi101.cfg
kernel = "/boot/vmlinuz" ramdisk = "/boot/initrd.img" extra = "text ks=http://192.168.1.100/standard-ks.cfg" name = "adi101" memory = "512" disk = [ 'tap:aio:/u01/adi101.img,xvda,w', ] vif = [ 'bridge=xenbr0', ] vcpus=1 on_reboot = 'destroy' on_crash = 'destroy'
Créer le fichier /var/www/html/standard-ks.cfg
install url --url http://192.168.1.100/centos lang fr_FR.UTF-8 keyboard fr-latin9 network --device eth0 --bootproto static --ip 192.168.1.101 --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 192.168.1.1 --hostname adi101.concarnux.fr rootpw azerty firewall --enabled --port=22:tcp authconfig --enableshadow --enablemd5 selinux --enforcing timezone --utc Europe/Paris bootloader --location=mbr --driveorder=xvda reboot clearpart --all --initlabel --drives=xvda part /boot --fstype ext2 --size=100 --asprimary part /home --fstype ext3 --size=3000 part /usr --fstype ext3 --size=2000 part swap --size=1024 --asprimary part /var --fstype ext3 --size=1000 part / --fstype ext3 --size=500 --asprimary part /tmp --fstype ext3 --size=500 %packages @core
Lancer la création de la VM
xm create /etc/xen/adi101.cfg -c
Une fois la VM installée, modifier /etc/xen/adi101.cfg ainsi :
name = "adi101" memory = "512" disk = [ 'tap:aio:/u01/adi101.img,xvda,w', ] vif = [ 'bridge=xenbr0', ] vcpus=1 bootloader="/usr/bin/pygrub" on_reboot = 'restart' on_crash = 'restart'
Relancer la VM
xm create /etc/xen/adi101.cfg -c
TODO : L'adresse IP reste en DHCP…A voir !
Les éléments comme les sources d'installation ou le fichier kickstart sont identiques. L'intérêt de virt-install est que la création d'une VM tient en une ligne.
virt-install --name adi101 -p -r 512 --disk path=/u01/adi101.img,size=8 --location http://192.168.1.100/centos -x "ks=http://192.168.1.100/standard-ks.cfg"
Pour créer plusieurs VM, modifier le fichier standard-ks.cfg ( la ligne network en adaptant les valeurs ) et relancer la commande virt-install .
Exemple de création de adi102.concarnux.fr
Fichier standard-ks.cfg
... network --device eth0 --bootproto static --ip 192.168.1.102 --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 192.168.1.1 --hostname adi102.concarnux.fr ...
Commande virt-install
virt-install --name adi102 -p -r 512 --disk path=/u01/adi102.img,size=8 --location http://192.168.1.100/centos -x "ks=http://192.168.1.100/standard-ks.cfg"