Xen
From AleikoumWiki
Contents |
Requis
aptitude install xen-linux-system-2.6.26-1-xen-686 libc6-xen bridge-utils xen-tools
puis il faut rebooter sur le kernel patche xen
et theoriquement une fois loggue, on obtient cette information :
# uname -a Linux psrv-qg-dmz-0 2.6.26-1-xen-686 #1 SMP Sat Jan 10 22:52:47 UTC 2009 i686 GNU/Linux
Xen (ses outils et le kernel) est installe ! on peut commencer a creer notre premier DomU !
Creation avec xen-create-image
Modification des fichiers de configuration
Il faut bien distinguer les outils (les xen-tools qui permettent de creer les DomU, les modifier, etc...) du processus xend (qui va faire tourner chaque DomU que vous allez creer)... Ils possedent chacun leur propre fichier de configuration.
Nous allons les modifier comme suit :
/etc/xen-tools/xen-tools.conf
Voici le mien :
# cat /etc/xen-tools/xen-tools.conf | grep -v "^#" lvm = vg0 # le nom de mon groupe de volume qui sera utilise pour faire # les futurs disques install-method = debootstrap # la methode d'installation size = 4Gb # la taille de la partition / par defaut memory = 64Mb # la taille de la RAM par defaut swap = 128Mb # la taille de la SWAP par defaut fs = ext3 # le systeme de fichier par defaut dist = lenny # la distribution par defaut a installer image = sparse # sparse vs. full disk images. gateway = 192.168.0.1 netmask = 255.255.255.0 broadcast = 192.168.0.255 passwd = 1 # en placant cette option a 1, un password vous sera demande # lors de l'installation du DomU kernel = /boot/vmlinuz-`uname -r` initrd = /boot/initrd.img-`uname -r` mirror = http://ftp.fr.debian.org/debian/ ext3_options = noatime,nodiratime,errors=remount-ro ext2_options = noatime,nodiratime,errors=remount-ro xfs_options = defaults reiser_options = defaults serial_device = hvc0 # /!\ tres important, sans ca pas de console
/etc/xen/xend-config.sxp
Voici le mien :
#cat /etc/xen/xend-config.sxp | grep -v "^#" (network-script network-bridge) (vif-script vif-bridge) (dom0-min-mem 196) (dom0-cpus 0) (vncpasswd '')
Theoriquement les lignes que vous aurez a ajouter sont :
(network-script network-bridge) (vif-script vif-bridge)
Elles permettent a vos DomU de "sortir" par le reseau et d'avoir acces a Internet par exemple.
Creation "auto" de l'image de notre DomU
Etape 1
Maintenant que tout semble bien configure, nous allons utilise l'assistant de creation d'image pour generer le fichier de configuration xen de notre DomU mais aussi pour installer le systeme de notre DomU !
Pour cela il suffit de lancer la commande suivante :
#xen-create-image --hostname=le-nom-de-votre-host --ip=192.168.0.42
En consultant le man de xen-create-image vous obtiendrez la liste complete des options... de plus il faut noter que les options non explicitees seront initialisees avec le fichier de conf edite plus tot : /etc/xen-tools/xen-tools.conf.
Voici ce que donne l'execution de la commande :
# xen-create-image --hostname=le-nom-de-votre-host --ip=192.168.0.42 General Information -------------------- Hostname : le-nom-de-votre-host Distribution : lenny Partitions : swap 128Mb (swap) / 4Gb (ext3) Image type : full Memory size : 64Mb Kernel path : /boot/vmlinuz-2.6.26-1-xen-686 Initrd path : /boot/initrd.img-2.6.26-1-xen-686 Networking Information ---------------------- IP Address 1 : 192.168.0.42 [MAC: 00:16:3E:8C:EB:F0] Netmask : 255.255.255.0 Broadcast : 192.168.0.255 Gateway : 192.168.0.1 Creating swap on /dev/vg0/le-nom-de-votre-host-swap Done Creating ext3 filesystem on /dev/vg0/le-nom-de-votre-host-disk Done Installation method: debootstrap Done Running hooks Done No role scripts were specified. Skipping Creating Xen configuration file Done Setting up root password Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully All done Logfile produced at: /var/log/xen-tools/le-nom-de-votre-host.log
Et suivre l'evolution de l'installation :
tail -f /var/log/xen-tools/le-nom-de-votre-host.log
Si tout se passe bien, les deux disques virtuels /dev/vg0/le-nom-de-votre-host-swap et /dev/vg0/le-nom-de-votre-host-disk ont ete crees (verification avec la commande lvdisplay) et un joli petit fichier a ete genere dans /etc/xen/le-nom-de-votre-host.cfg .
Etape 2
Voici donc le contenu de mon fichier /etc/xen/le-nom-de-votre-host.cfg genere plus tot et qui a subi de legere petite modification :
# cat le-nom-de-votre-host.cfg # # Configuration file for the Xen instance le-nom-de-votre-host, created # by xen-tools 3.9 on Tue Feb 24 11:21:52 2009. # # # Kernel + memory size # kernel = '/boot/vmlinuz-2.6.26-1-xen-686' ramdisk = '/boot/initrd.img-2.6.26-1-xen-686' memory = '64' # # Disk device(s). # root = '/dev/sda2 ro' disk = [ 'phy:/dev/vg0/le-nom-de-votre-host-swap,sda1,w', 'phy:/dev/vg0/le-nom-de-votre-host-disk,sda2,w', ] # # Hostname # name = 'le-nom-de-votre-host' # # Networking # vif = [ 'ip=192.168.0.42,mac=00:16:3E:8C:EB:F0' ] # # Behaviour # on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'destroy' extra = "console=hvc0"
Creation "manuelle" de l'image de notre DomU
il peut etre utile de creer et configurer soit meme from scratch un DomU : typiquement pour avoir plusieurs partitions par exemple.
voici donc la procedure que j'ai utilise pour creer un DomU "sur mesure" !
creation des partitions LVM
on veut pouvoir retrouver la situation suivante :
- / de 1Go
- /boot de 64Mo
- /usr de 5Go
- /tmp de 2Go
- /var de 50Go
- /home de 5Go
- /usr/local de 5Go
- un swap de 2Go
Pour cela voici les commandes que j'ai utilise pour creer et formater ces partitions
lvcreate -n p01 -L 64m vg0 lvcreate -n p02s -L 2g vg0 lvcreate -n p03 -L 1g vg0 lvcreate -n p04 -L 5g vg0 lvcreate -n p05 -L 2g vg0 lvcreate -n p06 -L 50g vg0 lvcreate -n p07 -L 5g vg0 mkswap /dev/vg0/p02s mke2fs -j /dev/vg0/p01 mke2fs -j /dev/vg0/p03 mke2fs -j /dev/vg0/p04 mke2fs -j /dev/vg0/p05 mke2fs -j /dev/vg0/p06 mke2fs -j /dev/vg0/p07
Exploitation du DomU
Arrive le moment ou il va falloir demarrer le DomU fraichement cree !
Le processus xend doit tourner et la machine physique (donc celle qui heberge les domU) doit apparaitre en tant que dom0 :
# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 7984 4 r----- 134.7
Maintenant il faut lancer le domU puis le configurer un minimum afin de pouvoir se connecter a lui via SSH :
# cd /etc/xen && xm create le-nom-de-votre-host.cfg Using config file "./le-nom-de-votre-host.cfg". Started domain le-nom-de-votre-host
Ensuite on va se connecter a la console de ce domU :
# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 7984 4 r----- 122.1 le-nom-de-votre-host 3 64 1 r----- 9.3 # xm console le-nom-de-votre-host Debian GNU/Linux 5.0 le-nom-de-votre-host hvc0 le-nom-de-votre-host login:
Il ne reste qu'a se logger en root avec le password initialise lors de la creation de l'image, configurer les users, les acces SSH et faire les MAJs et installs souhaitees.
Tel quel il sera impossible de se connecter via SSH a votre domU (pour Debian Lenny !) ! Il faudra en plus faire les operations suivantes :
#aptitude install udev ... #echo "none /dev/pts devpts defaults 0 0" >> /etc/fstab
Sinon a chaque tentative de connexion, il y aura l'erreur suivante : PTY allocation request failed on channel 0
Redemarrer le domU depuis le dom0 grace a :
xm shutdown le-nom-de-votre-host && xm create le-nom-de-votre-host
Et voila
Liens
http://www.cl.cam.ac.uk/research/srg/netos/xen/ : site officiel du projet
http://fr.wikipedia.org/wiki/Xen : presentation de xen
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502798 : lien vers le bug debian pour la console