Virtualisation facile avec proxmox


Les copies d'écrans détaillent les étapes d'install d'une nouvelle machine virtuelle. Pour info, entre le moment où j'ai démarré l'install du serveur depuis l'image iso et le moment où je me suis connecté sur la première machine virtuelle créée il s'est écoulé 15mn maxi !!!.

L'install du serveur à proprement parler est vraiment basique et le nombre de questions est vraiment limité. Seul hic dans mon cas, le serveur s'exécutant déjà dans une machine virtuelle (vmware) il ne me sera pas possible de bénéficier des extensions VT.

Environnement:
ma machine: Nom: p733 / IP: 192.168.0.22 / distrib ubuntu-64-hardy / Vmware-Server V2.0

Le serveur proxmox: Nom: promox.net.caen / IP: 192.168.0.95 / distrib debian-64-etch / 1 disque virtuel de 8 Go

La machine virtuelle: Nom : vm1prx.net.caen / IP: 192.168.0.96 / distrib debian-i386-etch


Le serveur ssh étant installé par défaut je vais aller voir la bête de plus près :

pme@p733:~/iso$ ssh root@192.168.0.95
root@192.168.0.95's password:
Last login: Sat Nov 15 13:52:45 2008
Linux promox 2.6.24-1-pve #1 SMP PREEMPT Fri Oct 24 11:34:13 CEST 2008 x86_64

promox:~# ps ax

pour ne pas encombrer la page le résultat de cette commande est ici

promox:~# dmesg

pour ne pas encombrer la page le résultat de cette commande est ici

promox:/etc/apt# free
             total       used       free     shared    buffers     cached
Mem:        510148     457792      52356          0      21040     308420
-/+ buffers/cache:     128332     381816
Swap:      1048568          0    1048568


Côté réseau on découvre les interfaces virtuelles: il est possible d'utiliser un pont réseau ou d'assigner une ip à la machine virtuelle (exactement comme sous virtualbox ou vmware d'ailleurs). Cela se configure via l'interface web au moment de créer la vm.

 promox:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:6B:BE:D3 
          inet6 addr: fe80::20c:29ff:fe6b:bed3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:63666 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32160 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:91659741 (87.4 MiB)  TX bytes:2592525 (2.4 MiB)
          Base address:0x2000 Memory:d8920000-d8940000

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:328 errors:0 dropped:0 overruns:0 frame:0
          TX packets:328 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:63875 (62.3 KiB)  TX bytes:63875 (62.3 KiB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  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)

vmbr0     Link encap:Ethernet  HWaddr 00:0C:29:6B:BE:D3 
          inet addr:192.168.0.95  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe6b:bed3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:63366 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32100 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:90503306 (86.3 MiB)  TX bytes:2588541 (2.4 MiB)


promox:~# 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:56780           0.0.0.0:*               LISTEN     3225/rpc.statd     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     2808/portmap       
tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN     2966/inetd         
tcp        0      0 127.0.0.1:83            0.0.0.0:*               LISTEN     3232/pvedaemon work
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     3021/master        
tcp        0      0 192.168.0.95:33665      92.51.129.73:80         TIME_WAIT  -                  
tcp6       0      0 :::80                   :::*                    LISTEN     3320/apache2       
tcp6       0      0 :::22                   :::*                    LISTEN     3043/sshd          
tcp6       0      0 :::443                  :::*                    LISTEN     3320/apache2       
tcp6       0      0 ::ffff:192.168.0.95:22  ::ffff:192.168.0.:55773 ESTABLISHED3437/0 
     
 
promox:~# df -hT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/pve/root ext3    2.0G  512M  1.4G  27% /
tmpfs        tmpfs    250M     0  250M   0% /lib/init/rw
udev         tmpfs     10M   56K   10M   1% /dev
tmpfs        tmpfs    250M     0  250M   0% /dev/shm
/dev/mapper/pve-data
              ext3    3.5G  400M  3.1G  12% /var/lib/vz
/dev/sda1     ext3    496M   35M  436M   8% /boot


On retrouve dans le répertoire /var/lib/vz les templates et les machines nouvellement créées. Tout est prévu (notamment le manque de place) puisque par défaut c'est monté en LVM !.

promox:~# alias ll='ls -la'
promox:~# ll /var/lib/vz
total 48
drwxr-xr-x  9 root root  4096 2008-11-15 14:45 .
drwxr-xr-x 28 root root  4096 2008-11-15 14:45 ..
drwxr-xr-x  2 root root  4096 2008-10-28 12:41 dump
drwxr-xr-x  2 root root  4096 2008-11-05 12:19 images
drwxr-xr-x  2 root root  4096 2008-11-15 14:00 lock
drwx------  2 root root 16384 2008-11-15 14:44 lost+found
drwxr-xr-x  3 root root  4096 2008-11-15 13:59 private
drwxr-xr-x  3 root root  4096 2008-11-15 13:59 root
drwxr-xr-x  5 root root  4096 2008-11-15 14:45 template

promox:~# ll /var/lib/vz/private/
total 12
drwxr-xr-x  3 root root 4096 2008-11-15 13:59 .
drwxr-xr-x  9 root root 4096 2008-11-15 14:45 ..
drwxr-xr-x 20 root root 4096 2008-11-15 14:00 101

101 est l'UID de la vm vm1prx

promox:/etc/apt# ll /var/lib/vz/private/101
total 80
drwxr-xr-x 20 root root 4096 2008-11-15 14:00 .
drwxr-xr-x  3 root root 4096 2008-11-15 13:59 ..
lrwxrwxrwx  1 root root   39 2008-11-15 14:00 aquota.group -> /proc/vz/vzaquota/00000012/aquota.group
lrwxrwxrwx  1 root root   38 2008-11-15 14:00 aquota.user -> /proc/vz/vzaquota/00000012/aquota.user
drwxr-xr-x  2 root root 4096 2008-11-15 13:59 bin
drwxr-xr-x  2 root root 4096 2006-10-28 16:06 boot
drwxr-xr-x  4 root root 4096 2008-11-15 14:00 dev
drwxr-xr-x 53 root root 4096 2008-11-15 14:00 etc
drwxr-xr-x  2 root root 4096 2006-10-28 16:06 home
drwxr-xr-x  2 root root 4096 2008-10-27 12:08 initrd
drwxr-xr-x 10 root root 4096 2008-10-27 12:09 lib
drwxr-xr-x  2 root root 4096 2008-10-27 12:08 media
drwxr-xr-x  2 root root 4096 2006-10-28 16:06 mnt
drwxr-xr-x  2 root root 4096 2008-10-27 12:08 opt
drwxr-xr-x  2 root root 4096 2006-10-28 16:06 proc
drwxr-xr-x  2 root root 4096 2008-10-27 12:09 root
drwxr-xr-x  2 root root 4096 2008-11-15 13:59 sbin
drwxr-xr-x  2 root root 4096 2008-10-27 12:08 srv
drwxr-xr-x  2 root root 4096 2008-05-21 10:43 sys
drwxrwxrwt  4 root root 4096 2008-11-15 14:00 tmp
drwxr-xr-x 11 root root 4096 2008-10-27 12:09 usr
drwxr-xr-x 13 root root 4096 2008-10-27 12:08 var



promox:~# ll /var/lib/vz/template
total 20
drwxr-xr-x 5 root root 4096 2008-11-15 14:45 .
drwxr-xr-x 9 root root 4096 2008-11-15 14:45 ..
drwxr-xr-x 2 root root 4096 2008-11-15 13:53 cache
drwxr-xr-x 2 root root 4096 2008-11-05 12:19 iso
drwxr-xr-x 2 root root 4096 2008-11-05 12:19 qemu

promox:~# ll /var/lib/vz/template/cache
total 90152
drwxr-xr-x 2 root root     4096 2008-11-15 13:53 .
drwxr-xr-x 5 root root     4096 2008-11-15 14:45 ..
-rw-r--r-- 1 root root 92210280 2008-10-28 14:01 debian-4.0-standard_4.0-3_i386.tar.gz

Le sources.list est évidemment adapté:

promox:/etc/apt# cat sources.list
deb http://ftp.fr.debian.org/debian etch main

# PVE packages provided by proxmox.com
deb http://download.proxmox.com/debian etch pve

# security updates
deb http://security.debian.org/ etch/updates main


On pourra jouer sur beaucoup de paramètres à l'aide des commandes vzXXXX:

promox:/# vz<TAB>
vzcalc         vzctl          vzdqload       vzmemcheck     vznetcfg       vzquota       
vzcfgvalidate  vzdqcheck      vzdump         vzmigrate      vzpid          vzsplit       
vzcpucheck     vzdqdump       vzlist         vznetaddbr     vzps           vztop       



Je vais maintenant aller faire un tour dans la mchine vm1prx:

promox:~# vzctl enter 101
entered into CT 101
vm1prx:/# ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 init [2]     
   30 ?        S      0:00 /bin/sh /sbin/init-logger
  249 ?        Ss     0:00 /sbin/portmap
  327 ?        Ss     0:00 /sbin/syslogd
  371 ?        Ss     0:00 /usr/sbin/inetd
  426 ?        Ss     0:00 /usr/lib/postfix/master
  429 ?        S      0:00 pickup -l -t fifo -u -c
  431 ?        S      0:00 qmgr -l -t fifo -u
  438 ?        Ss     0:00 /usr/sbin/sshd
  454 ?        Ss     0:00 /sbin/rpc.statd
  464 ?        Ss     0:00 /usr/sbin/atd
  471 ?        Ss     0:00 /usr/sbin/cron
  497 ?        S      0:00 /bin/sh /sbin/init-logger
  498 ?        Rs     0:00 vzctl: pts/0  
  499 pts/0    Ss     0:00 -bash
  503 pts/0    R+     0:00 ps ax

vm1prx:/# ifconfig
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:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          inet addr:127.0.0.1  P-t-P:127.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  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)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          inet addr:192.168.0.96  P-t-P:192.168.0.96  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

vm1prx:/# 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:111             0.0.0.0:*               LISTEN     249/portmap        
tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN     371/inetd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     426/master         
tcp        0      0 0.0.0.0:39226           0.0.0.0:*               LISTEN     454/rpc.statd      
tcp6       0      0 :::22                   :::*                    LISTEN     438/sshd           



vm1prx:/# ping www.google.fr
PING www.l.google.com (209.85.135.99) 56(84) bytes of data.
64 bytes from mu-in-f99.google.com (209.85.135.99): icmp_seq=2 ttl=234 time=56.4 ms
64 bytes from mu-in-f99.google.com (209.85.135.99): icmp_seq=3 ttl=234 time=56.4 ms

--- www.l.google.com ping statistics ---
3 packets transmitted, 2 received, 33% packet loss, time 1998ms
rtt min/avg/max/mdev = 56.424/56.439/56.455/0.238 ms
vm1prx:/#


vm1prx:/# 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:111             0.0.0.0:*               LISTEN     249/portmap        
tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN     371/inetd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     426/master         
tcp        0      0 0.0.0.0:39226           0.0.0.0:*               LISTEN     454/rpc.statd      
tcp6       0      0 :::22                   :::*                    LISTEN     438/sshd        

vm1prx:/# mount
simfs on / type simfs (rw,relatime)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec)



Je vérifie depuis MA machine que je peux accéder directement à la machine virtuelle vm1prx:

pme@p733:/$ ssh root@192.168.0.96
The authenticity of host '192.168.0.96 (192.168.0.96)' can't be established.
RSA key fingerprint is 88:7a:e7:39:80:e3:2a:32:0f:9d:8a:4f:19:20:b3:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.96' (RSA) to the list of known hosts.
root@192.168.0.96's password:
Linux vm1prx.net.caen 2.6.24-1-pve #1 SMP PREEMPT Fri Oct 24 11:34:13 CEST 2008 i686

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.
vm1prx:~#

vm1prx:/etc/apt# cat sources.list
deb ftp://ftp.debian.org/debian etch main
deb http://security.debian.org/ etch/updates main


vm1prx:/# ps ax

Résultat de la commande ici



Dernière étape: création d'un cluster et migration à chaud d'une vm.