Complétons mon petit pense-bête avec quelques notes sur KVM.

KVM est une solution de virtualisation opensource sous licence GPL. Elle est idéale sur des processeurs possédant le jeu d'instructions adéquates car dans de telles conditions, le ralentissement induit est minime et les systèmes-invités n'ont pas besoin d'être modifiés. Ces jeux d'instructions portent les noms de SVM pour AMD et VT pour Intel.

Le site du projet, sponsorisé par la société Qumranet, est ici : http://kvm.qumranet.com

Une fois KVM installé avec ses dépendances, il faut charger le module kvm dans le noyau : (remplacer intel par amd selon)
sudo /sbin/modprobe kvm-intel
À noter que ce module n'est pas chargé automatiquement à chaque boot.

Ensuite, il faut créer un disque virtuel sur lequel on installera l'OS invité. On procèdera ainsi pour un disque de 10 Go :
/usr/local/kvm/bin/qemu-img create -f qcow2 vdisk.img 10G

À noter que plusieurs formats de disques virtuels sont possibles, qcow2 est à priori le plus performant, autorisant les "snapshots" (instantanées) de machines virtuelles. Les images au format VMware sont également utilisables, ce qui constitue un aspect non négligeable de la solution.

Afin de pouvoir créer et utiliser des machines virtuelles sous le compte d'un utlisateur lambda, il convient de procéder ainsi :

  • créer un nouveau groupe Unix par exemple kvm:

addgroup kvm

  • affecter ce groupe à l'utilisateur lambda[1]

addgroup lambda kvm

  • ensuite, le périphérique /dev/kvm devra être associé au groupe kvm nouvellement créé. Dans le cas d'une distribution utilisant udev comme Ubuntu, les périphériques sont recréés dynamiquement au démarrage. Il conviendra donc dans ce cas de figure de modifier le script udev qui va bien pour que le périphérique /dev/kvm soit créé comme appartenant au groupe kvm. Pour cela, il faudra ajouter une ligne dans le fichier /etc/udev/rules.d/40-permissions.rules :

KERNEL=="kvm", GROUP="kvm"

Ceci fait, il ne reste plus qu'à installer le système invité sur le disque virtuel créé précédemment. Partons sur le cas de figure suivant : installation d'une Ubuntu Desktop 7.10. Il est nécessaire de se procurer l'image ISO du Live-CD de la distribution la plus en vue du moment. Pour se faire, on vérifiera que 700Mo sont encore dispo dans le système de fichiers courant et on tapera de l'hexagone[2] :
wget ftp://ubuntu.univ-nantes.fr/ubuntu-cd/gutsy/ubuntu-7.10-desktop-i386.iso

Une fois l'image téléchargée, on est prêt pour l'installation :
kvm -hda vdisk.img -cdrom /path/to/ubuntu-7.10-desktop-i386.iso -boot d -m 512

Et une fois le système invité installé, on peut lancer la machine virtuelle équipée de 512 Mo de RAM :
kvm vdisk.img -m 512

De nombreuses options sont disponibles. Elles permettent d'émuler divers équipements hardware dans cette machine virtuelle (cartes réseau, carte on, etc...)

Ayant été confronté à quelques soucis, voici quelques détails techniques concernant les difficultés rencontrées et les solutions apportées :

  • Pas de souris dans la machine virtuelle. Lu quelque part, il faut ajouter les paramètres -usb -usbdevice tablet sur la ligne de commande pour lancer la VM. Au cas où le curseur ne serait toujours pas visible, il convient d'exporter la variable suivante export SDL_VIDEO_X11_DGAMOUSE=0 avant de lancer la VM. Pour moi, cette deuxième solution s'est avérée la bonne. Pour l'anecdote, je cherchais à faire un screencast pour un copain. Tout s'est bien passé. Mais en repassant le film enregistré, j'ai pu constater qu'il y avait sur le film 2 curseurs, décalés de plusieurs dizaines de pixels, mais bougeant de concert. Alors que je n'ai qu'un seul curseur dans la VM bien-sûr.

Pour finir, quelques liens utiles où l'on retrouvera une grande partie des choses lues ici, dans la langue de Shakespeare :
La documentation de kvm
La FAQ de kvm
Le HOWTO de kvm

Notes

[1] L'utilisateur devra fermer sa session et se ré-authentifier pour pouvoir bénéficier de ses nouveaux droits

[2] D'autres miroirs existent un peu partout chez les FAI. Le P2P et BitTorrent sont aussi là pour épargner les ressources des serveurs principaux.