Xen

From AleikoumWiki

Revision as of 09:46, 25 February 2009 by Erwan (Talk | contribs)
Jump to: navigation, search

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 1Go
  • /home de 10Go
  • /usr/local de 10Go
  • un swap de 2Go


Pour cela voici les commandes que j'ai utilise pour creer et formater ces partitions


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

Personal tools