Le dom0

root@deb6xen:/etc/xen# uname -a
Linux deb6xen 2.6.32-5-xen-amd64 #1 SMP Wed Jan 12 05:46:49 UTC 2011 x86_64 GNU/Linux

root@deb6xen:/etc/xen# free
             total       used       free     shared    buffers     cached
Mem:       7478636    3780044    3698592          0     126852    2416084
-/+ buffers/cache:    1237108    6241528
Swap:      7812088          0    7812088


root@deb6xen:/etc/xen# cat /etc/apt/sources.list

deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free


root@deb6xen:/home/domains# dpkg -l | grep '^ii' | grep -i 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-qemu-dm-4.0                      4.0.1-2                        Xen Qemu Device Model virtual machine hardware emulator
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


root@deb6xen:/etc/xen# cat /proc/cpuinfo

processor    : 0
...
processor    : 1
...
processor    : 2
...
processor    : 3
vendor_id    : GenuineIntel
cpu family    : 6
model        : 37
model name    : Intel(R) Core(TM) i5 CPU         650  @ 3.20GHz
stepping    : 5
cpu MHz        : 3192.062
cache size    : 4096 KB
fpu        : yes
fpu_exception    : yes
cpuid level    : 11
wp        : yes
flags        : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx
                  fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nonstop_tsc
                  aperfmperf pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 popcnt aes
                  hypervisor lahf_lm ida arat
bogomips    : 6384.12
clflush size    : 64
cache_alignment    : 64
address sizes    : 36 bits physical, 48 bits virtual
power management:

root@deb6xen:/etc/xen# df -hTa
Sys. fich.    Type  Taille  Uti. Disp. Uti% Monté sur
/dev/sda1     ext4     46G  1,9G   42G   5% /
tmpfs        tmpfs    3,8G     0  3,8G   0% /lib/init/rw
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
udev         tmpfs    3,4G  192K  3,4G   1% /dev
tmpfs        tmpfs    3,8G  140K  3,8G   1% /dev/shm
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda3     ext4    177G  6,3G  161G   4% /home
fusectl    fusectl       0     0     0   -  /sys/fs/fuse/connections
xenfs        xenfs       0     0     0   -  /proc/xen

root@deb6xen:/etc/xen# cat /var/log/dmesg  =>  résultat

root@deb6xen:/etc/xen# ifconfig  (avec un domU XP en fonctionnement)

eth0      Link encap:Ethernet  HWaddr 84:2b:2b:9b:74:4c 
          inet adr:192.168.1.2  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::862b:2bff:fe9b:744c/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:83863 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42151 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:89788269 (85.6 MiB)  TX bytes:3769341 (3.5 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:49703 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49703 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:194500962 (185.4 MiB)  TX bytes:194500962 (185.4 MiB)

peth0     Link encap:Ethernet  HWaddr 84:2b:2b:9b:74:4c 
          adr inet6: fe80::862b:2bff:fe9b:744c/64 Scope:Lien
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:77875 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36254 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:100
          RX bytes:85911611 (81.9 MiB)  TX bytes:3166686 (3.0 MiB)
          Mémoire:f7be0000-f7c00000

tap11.0   Link encap:Ethernet  HWaddr ae:5e:4e:c7:ae:b4 
          adr inet6: fe80::ac5e:4eff:fec7:aeb4/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6122 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6909 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:500
          RX bytes:5286871 (5.0 MiB)  TX bytes:775807 (757.6 KiB)

vif11.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:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:770 overruns:0 carrier:0
          collisions:0 lg file transmission:32
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@deb6xen:/etc/xen# xm info
host                   : deb6xen
release                : 2.6.32-5-xen-amd64
version                : #1 SMP Wed Jan 12 05:46:49 UTC 2011
machine                : x86_64
nr_cpus                : 4
nr_nodes               : 1
cores_per_socket       : 2
threads_per_core       : 2
cpu_mhz                : 3192
hw_caps                : bfebfbff:28100800:00000000:00001f40:029ae3ff:00000000:00000001:00000000
virt_caps              : hvm hvm_directio
total_memory           : 7990
free_memory            : 1015
node_to_cpu            : node0:0-3
node_to_memory         : node0:1015
node_to_dma32_mem      : node0:512
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 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
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




root@deb6xen:/home/pme# cat /etc/xen/xend-config.sxp |egrep -v '^#|^$'

(network-script network-bridge)
(vif-script vif-bridge)
(dom0-min-mem 196)
(enable-dom0-ballooning yes)
(total_available_memory 0)
(dom0-cpus 0)
(vncpasswd '')




Install winxp sur domU xen


1) Récupérer un cd d'install de windows XP

2) Créer le repertoire de la machine par:  

     root@deb6xen:/home/domains#  mkdir /home/domains/winxp

3) Créer un fichier iso a partir du cd (pas necessaire mais ca sera plus rapide)   

    root@deb6xen:/home/domains#  dd if=/dev/sr0 of=/home/domains/winxp/winxp.iso

4) Créer le fichier de configuration de la machine

root@deb6xen:/etc/xen# cat winxp.cfg

kernel = "/usr/lib/xen-4.0/boot/hvmloader"
builder='hvm'
memory = 512
shadow_memory = 8
name = "winxp"
vif = [ 'type=ioemu, bridge=eth0' ]
disk = [ 'file:/home/domains/winxp/xenwin.img,hda,w', 'file:/home/domains/winxp/winxp.iso,hdb:cdrom,r' ]

# si on souhaite utiliser le lecteur physique de l'hôte plutôt qu'une image iso
#disk = [ 'file:/home/xen/xenwin.img,hda,w', 'phy:/dev/scd0,hdb:cdrom,r' ]
device_model = '/usr/lib/xen-4.0/bin/qemu-dm'
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot="dc"
vfb = [ "type=vnc,keymap=fr" ]
sdl=0
vnc=1
vncconsole=1
vncpasswd=''
stdvga=0
serial='pty'
usbdevice='tablet'

5) Créer le disque dur  (6 Go dans ce cas)
    root@deb6xen:/home/domains#  dd if=/dev/zero of=xenwin.img bs=1024k seek=6144 count=0

6) Démarrer la machine   
   root@deb6xen:/home/domains#  xm create /etc/xen/win.cfg
   Using config file "/etc/xen/win.cfg".
   Started domain winxp (id=2)

Une petite vérif pour la route:

root@deb6xen:/etc/xen# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  7302     4     r-----    216.7
winxp                                        2   512     1     -b----      7.3


7) Lancer vncviewer comme suit:    
    root@deb6xen:/home/domains#  vncviewer 127.0.0.1:5900  (le port est incrémenté à chaque démarrage de vm)

On retrouve la fenetre d'install de XP.

Lorsque c'est terminé, je prends d'activer le bureau a distance (poste de travail/gerer/utilisation a distance) cf 8)

Le résultat sur une vidéo http://www.pmenier.info/docext/xenxp/xenxp.ogv



8) Souhaitant profiter des performances exceptionnelles de cette version Xen, j'ai installé ensuite un serveur ltsp sur lequel bootent donc des terminaux diskless qui peuvent ouvrir une session TerminalServer sur les machines windows
    tournant dans Xen. ( en référence à ce billet http://blogpmenier.dynalias.net/index.php?post/2010/04/21/Ltsp-vmware-et-stations-diskless ).
    Le résultat est tout simplement bluffant ! Les performances des machines s'exécutant sous Xen et celles s'exécutant sous Vmware-Server sont incomparables.



root@deb6xen:/etc/xen# netstat -lnp
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1687/exim4     
tcp        0      0 0.0.0.0:59613           0.0.0.0:*               LISTEN      954/rpc.statd  
tcp        0      0 0.0.0.0:52383           0.0.0.0:*               LISTEN      -              
tcp        0      0 0.0.0.0:47040           0.0.0.0:*               LISTEN      1254/rpc.mountd
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -              
tcp        0      0 0.0.0.0:9571            0.0.0.0:*               LISTEN      1334/inetd     
tcp        0      0 0.0.0.0:9572            0.0.0.0:*               LISTEN      1334/inetd     
tcp        0      0 127.0.0.1:5900          0.0.0.0:*               LISTEN      3360/qemu-dm   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      932/portmap    
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      2187/X         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1845/sshd      
tcp6       0      0 ::1:25                  :::*                    LISTEN      1687/exim4     
tcp6       0      0 :::6001                 :::*                    LISTEN      2187/X         
tcp6       0      0 :::22                   :::*                    LISTEN      1845/sshd      
udp        0      0 0.0.0.0:32942           0.0.0.0:*                           954/rpc.statd  
udp        0      0 0.0.0.0:48700           0.0.0.0:*                           1254/rpc.mountd
udp        0      0 0.0.0.0:706             0.0.0.0:*                           954/rpc.statd  
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1604/dhcpd     
udp        0      0 0.0.0.0:69              0.0.0.0:*                           3259/in.tftpd  
udp        0      0 0.0.0.0:111             0.0.0.0:*                           932/portmap    
udp        0      0 0.0.0.0:2049            0.0.0.0:*                           -              
udp        0      0 0.0.0.0:42506           0.0.0.0:*                           -              
raw        0      0 0.0.0.0:1               0.0.0.0:*               7           1604/dhcpd     

.... suivent les sockets ....


9) Pour le fun: on peut booter une station diskless sur la machine qui se connectera sur le serveur ltsp du même hôte:

Il suffit pour cela de créer un simple fichier de configuration:

root@deb6xen:/etc/xen# cat pxe.cfg

kernel='/usr/lib/xen-4.0/boot/hvmloader'
builder='hvm'
memory='256'
name='pxe'
device_model='/usr/lib/xen-4.0/bin/qemu-dm'
boot='nc'
vfb = [ "type=vnc,keymap=fr" ]
vnc=1
vncviewer=1
vncpasswd=""
vif=['type=ioemu,bridge=eth0,mac=00:00:aa:bb:44:ae']
usbdevice='tablet'
vnclisten='0.0.0.0'





Liens:


http://www.virtuatopia.com/index.php/Installing_and_Running_Windows_XP_or_Vista_as_a_Xen_HVM_domainU_Guest

http://mediakey.dk/~cc/xen-howto-install-windows/