Installation réalisée sur une debian squeeze toute fraiche installée et s'exécutant dans vmware-server-2.0.2. Le noyau de l'hôte physique est un 2.6.32.29 compilé perso.

root@debip124:/# cat /etc/issue.net
Debian GNU/Linux 6.0

root@debip124:/# free
             total       used       free     shared    buffers     cached
Mem:        252504     244884       7620          0      28612      50688
-/+ buffers/cache:     165584      86920
Swap:       359416       3648     355768

root@debip124:/# df -hT
Sys. fich.    Type  Taille  Uti. Disp. Uti% Monté sur
/dev/sda1     ext4    4,6G  1,5G  3,0G  33% /
tmpfs        tmpfs    233M     0  233M   0% /lib/init/rw
udev         tmpfs    182M  344K  181M   1% /dev
tmpfs        tmpfs    233M     0  233M   0% /dev/shm
/dev/sdb1     ext4    7,9G  2,3G  5,3G  30% /opt



J'ai installé les paquets suivants:

root@debip124:/# dpkg -l | grep '^ii' | grep xen
ii  libxenstore3.0                       4.0.1-2                        Xenstore communications library for Xen
ii  linux-image-2.6.32-5-xen-amd64       2.6.32-30                      Linux 2.6.32 for 64-bit PCs, Xen dom0 support
ii  xen-hypervisor-4.0-amd64             4.0.1-2                        The Xen Hypervisor on AMD64
ii  xen-tools                            4.2-1                          Tools to manage Xen virtual servers
ii  xen-utils-4.0                        4.0.1-2                        XEN administrative tools
ii  xen-utils-common                     4.0.0-1                        XEN administrative tools - common files
ii  xenstore-utils                       4.0.1-2                        Xenstore utilities for Xen


Après l'installation du noyau j'ai modifié le fichier /etc/grub.d/40_custom comme ceci:

root@debip124:/etc/grub.d# cat 40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Xen 4 / Debian Squeeze kernel 2.6.32-5 pvops" {
insmod ext2
set root='(hd0,msdos1)'
multiboot (hd0,msdos1)/xen-4.0-amd64.gz
module (hd0,msdos1)/vmlinuz-2.6.32-5-xen-amd64
module (hd0,msdos1)/initrd.img-2.6.32-5-xen-amd64
}

Puis prise en compte par :

root@debip124:/etc/grub.d# update-grub

Après le reboot sur le noyau xen je vérifie:

root@debip124:/etc/xen# xm info
host                   : debip124
release                : 2.6.32-5-xen-amd64
version                : #1 SMP Wed Jan 12 05:46:49 UTC 2011
machine                : x86_64
nr_cpus                : 2
nr_nodes               : 1
cores_per_socket       : 1
threads_per_core       : 1
cpu_mhz                : 2531
hw_caps                : 0febfbff:20100800:00000000:00000940:80002201:00000000:00000001:00000000
virt_caps              :
total_memory           : 511
free_memory            : 129
node_to_cpu            : node0:0-1
node_to_memory         : node0:129
node_to_dma32_mem      : node0:129
max_node_id            : 0
xen_major              : 4
xen_minor              : 0
xen_extra              : .1
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : unavailable
xen_commandline        : placeholder
cc_compiler            : gcc version 4.4.5 (Debian 4.4.5-10)
cc_compile_by          : waldi
cc_compile_domain      : debian.org
cc_compile_date        : Wed Jan 12 14:04:06 UTC 2011
xend_config_format     : 4



Avant de lancer la création de la première vm j'ai procédé à quelques réglages:

root@debip124:/etc/xen-tools# cat xen-tools.conf | egrep -v '^$|^#'
dir = /opt
install-method = debootstrap
size   = 4Gb      # Disk image size.
memory = 128Mb    # Memory size
swap   = 128Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = `xt-guess-suite-and-mirror --suite` # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.
gateway    = 192.168.0.254
netmask    = 255.255.255.0
broadcast  = 192.168.0.255
passwd = 1
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
mirror = `xt-guess-suite-and-mirror --mirror`
mirror_squeeze = http://192.168.0.63:3142/debian
ext3_options     = noatime,nodiratime,errors=remount-ro
ext2_options     = noatime,nodiratime,errors=remount-ro
xfs_options      = defaults
reiserfs_options = defaults
btrfs_options    = defaults


La valeur dir=/opt signifie que les vm seront créées dans: /opt/domains/<nom-de-la-vm>
La valeur passwd=1 signifie que le mot de passe root sera demandé en fin d'install.


root@debip124:/etc/xen# cat xend-config.sxp |egrep -v '^$|^#'
(xend-http-server yes)
(xend-port            8000)
(network-script network-bridge)
(vif-script vif-bridge)
(dom0-min-mem 196)
(enable-dom0-ballooning yes)
(total_available_memory 0)
(dom0-cpus 0)
(vncpasswd '')
(xend-domains-path /opt/domains)


Et c'est tout !

Il ne reste qu'à lancer l'install. Je vous conseille toutefois de vérifier le résultat de cette commande auparavant:

root@debip124:/etc/xen# xen-create-image --help

Pour la démo je vais faire simple:

root@debip124:/etc/xen# xen-create-image --hostname=xenv3 --ip=192.168.0.46

Les paramètres que je ne précise pas sur la ligne de commandes étant  lus dans le fichier de config /etc/xen-tools/xen-tools.conf

root@debip124:/etc/xen# xen-create-image --hostname=xenv3 --ip=192.168.0.46

General Information
--------------------
Hostname       :  xenv3
Distribution   :  squeeze
Mirror         :  http://192.168.0.63:3142/ftp.fr.debian.org/debian/
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 1   : 192.168.0.46 [MAC: 00:16:3E:59:02:97]
Netmask        : 255.255.255.0
Broadcast      : 192.168.0.255
Gateway        : 192.168.0.254


Creating partition image: /opt/domains/xenv3/swap.img
Done

Creating swap on /opt/domains/xenv3/swap.img
Done

Creating partition image: /opt/domains/xenv3/disk.img
Done

Creating ext3 filesystem on /opt/domains/xenv3/disk.img
Done
Installation method: debootstrap

........

Un petit coup d'oeil dans les process en cours nous montre que tout se passe bien:

root@debip124:/etc/xen# ps ax
........
26605 pts/0    S+     0:00 /usr/bin/perl -w /usr/bin/xen-create-image --hostname=xenv3 --ip=192.168.0.46
26617 ?        S      0:00 [flush-8:16]
26618 ?        S      0:00 [flush-8:0]
26620 ?        S<     0:05 [loop2]
26621 ?        S      0:00 [kjournald]
26623 pts/0    S+     0:03 /usr/bin/perl -w /usr/bin/xt-install-image --hostname=xenv3 --location=/tmp/XtwHZLKQGQ --dist=squeeze --install-method=debootstrap --mirror=http://192.168.0.63:3142/debian --cache=yes --cach
26636 ?        S      0:00 [flush-7:2]
26637 pts/0    S+     0:00 sh -c /usr/sbin/debootstrap  squeeze /tmp/XtwHZLKQGQ http://192.168.0.63:3142/debian 2>&1 | tee --append /var/log/xen-tools/xenv3.log
26638 pts/0    S+     0:00 /bin/sh -e /usr/sbin/debootstrap squeeze /tmp/XtwHZLKQGQ http://192.168.0.63:3142/debian
26639 pts/0    S+     0:00 tee --append /var/log/xen-tools/xenv3.log
26846 ?        Ss     0:00 sshd: root@pts/3
26855 pts/3    Ss     0:00 -bash
28879 pts/0    R+     0:00 /bin/sh -e /usr/sbin/debootstrap squeeze /tmp/XtwHZLKQGQ http://192.168.0.63:3142/debian
28880 pts/0    S+     0:00 /bin/sh -e /usr/sbin/debootstrap squeeze /tmp/XtwHZLKQGQ http://192.168.0.63:3142/debian
28883 pts/0    S+     0:00 dpkg --force-depends --install /var/cache/apt/archives/debconf_1.5.36.1_all.deb
28894 pts/0    R+     0:00 /usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/debconf.postinst configure
28895 pts/3    R+     0:00 ps ax
.......

REMARQUE: Attention à l'espace disponible sur /tmp. En effet les fichiers sont téléchargés dans ce répertoire

root@debip124:~# du -hs /tmp 2 > /dev/null
599M    /tmp


En fin d'install on me demande le pass de root et c'est terminé. Cela a pris 3 minuites (compte tenu du fait que j'utilise un apt-cacher-ng cf la ligne mirror_squeeze du xen-tools.conf)

.....
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/xenv3.log

Installation Summary
---------------------
Hostname        :  xenv3
Distribution    :  squeeze
IP-Address(es)  :  192.168.0.46
RSA Fingerprint :  b8:7a:eb:52:37:11:d2:43:fb:1c:a3:93:10:93:32:8b
Root Password   :  N/A


Je laisse le fichier de log ici


Un coup d'oeil au fichier de configuration généré:

root@debip124:/etc/xen# cat xenv3.cfg |egrep -v '^$|^#'
kernel      = '/boot/vmlinuz-2.6.32-5-xen-amd64'
ramdisk     = '/boot/initrd.img-2.6.32-5-xen-amd64'
vcpus       = '1'
memory      = '128'
root        = '/dev/xvda2 ro'
disk        = [
                  'file:/opt/domains/xenv3/disk.img,xvda2,w',
                  'file:/opt/domains/xenv3/swap.img,xvda1,w',
              ]
name        = 'xenv3'
vif         = [ 'ip=192.168.0.46,mac=00:16:3E:59:02:97' ]
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'



root@debip124:/etc/xen# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   246     2     r-----   1257.9
xenv2                                        6   128     1     -b----     82.3

Démarrage de la machine nouvellement créée

root@debip124:/etc/xen# xm create /etc/xen/xenv3.cfg
Using config file "/etc/xen/xenv3.cfg".
Started domain xenv3 (id=7)

Ca semble bon, je vérifie:

root@debip124:/etc/xen# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   246     2     r-----   1281.0
xenv2                                        6   128     1     -b----     83.0
xenv3                                        7   128     1     r-----     11.7

Je vais entrer dans la machine par la console:

root@debip124:/etc/xen# xm console xenv3

Dès que l'on attache la console on peut voir les informations de démarrage de la machine (dmesg-xenv3.txt )

Debian GNU/Linux 6.0 xenv3 hvc0

xenv3 login: root
Password: xxxxxx
Linux xenv3 2.6.32-5-xen-amd64 #1 SMP Wed Jan 12 05:46:49 UTC 2011 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.


root@xenv3:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3e:59:02:97 
          inet addr:192.168.0.46  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe59:297/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:145 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:11104 (10.8 KiB)  TX bytes:468 (468.0 B)
          Interrupt:247

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Je vérifie le fonctionnement du réseau (je me souviens de la galère à configurer dans les précédentes versions) et quelques broutilles.

root@xenv3:~# ping www.google.com
PING www.l.google.com (74.125.230.82) 56(84) bytes of data.
64 bytes from 74.125.230.82: icmp_req=1 ttl=54 time=32.1 ms
64 bytes from 74.125.230.82: icmp_req=2 ttl=54 time=30.0 ms

root@xenv3:~# df -hT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/xvda2    ext3    4.0G  494M  3.3G  13% /
tmpfs        tmpfs     63M     0   63M   0% /lib/init/rw
udev         tmpfs     47M   32K   47M   1% /dev
tmpfs        tmpfs     63M  4.0K   63M   1% /dev/shm

root@xenv3:~# swapon -s
Filename                Type        Size    Used    Priority
/dev/xvda1                              partition    131064    0    -1

root@xenv3:~# free
             total       used       free     shared    buffers     cached
Mem:        127832      33412      94420          0       1132      12564
-/+ buffers/cache:      19716     108116
Swap:       131064          0     131064

root@xenv3:~# netstat -tpan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      502/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      502/sshd       

Tout fonctionne correctement.

Pour détacher la console: Ctrl-AltGr-]



Côté hôte, le démarrage sur le noyau xen a apporté quelques modifs aux périphériques réseaux:

root@debip124:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:a3:ee:47 
          inet adr:192.168.0.124  Bcast:192.168.0.255  Masque:255.255.255.0
          adr inet6: fe80::20c:29ff:fea3:ee47/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:100896 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14739 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:63912275 (60.9 MiB)  TX bytes:2040177 (1.9 MiB)

lo        Link encap:Boucle locale 
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:2352 (2.2 KiB)  TX bytes:2352 (2.2 KiB)

peth0     Link encap:Ethernet  HWaddr 00:0c:29:a3:ee:47 
          adr inet6: fe80::20c:29ff:fea3:ee47/64 Scope:Lien
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:289939 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58822 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:266507740 (254.1 MiB)  TX bytes:29115365 (27.7 MiB)

vif6.0    Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff 
          adr inet6: fe80::fcff:ffff:feff:ffff/64 Scope:Lien
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:24665 errors:0 dropped:0 overruns:0 frame:0
          TX packets:74098 errors:0 dropped:4 overruns:0 carrier:0
          collisions:0 lg file transmission:32
          RX bytes:25327497 (24.1 MiB)  TX bytes:8262376 (7.8 MiB)

vif7.0    Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff 
          adr inet6: fe80::fcff:ffff:feff:ffff/64 Scope:Lien
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0
          TX packets:392 errors:0 dropped:15 overruns:0 carrier:0
          collisions:0 lg file transmission:32
          RX bytes:868 (868.0 B)  TX bytes:37869 (36.9 KiB)


L'interface peth0 est créée au démarrage des démons xen, les vif* au démarrage des vm.



Pour la petite histoire j'ai installé xfce4 dans une vm xen. Je n'ai pas encore réussi à le lancer depuis la machine elle-même (en console vmware)
mais j'ai pu exécuter l'environnement xfce4 sur une machine distante sur laquelle je n'avais démarré qu'un xterm.

machine distante: etch28 ip 192.168.0.4
vm sur laquelle est installé xfce4: ip 192.168.0.45

Méthode classique:

sur la machine distante dans le xterm:

pme@etch28:~$ xhost+

pme@etch28:~$ ssh -X -f pme@192.168.0.45 DISPLAY=192.168.0.4:1 /usr/bin/xfce4-session





Articles connexes

http://blog.cheramy.name/2010/10/17/installation-de-xen-4-sur-une-debian-squeeze/

http://www.howtoforge.com/ubuntu-8.04-server-install-xen-from-ubuntu-repositories

http://www.rootdamnit.eu/2012/06/07/xen-and-debian-6-xm-new-returns-error/
Copie de secours du lien ci-dessus