6. Création d'une machine virtuelle avec KVM

[Note] Note

Toutes les opérations présentées dans cette section utilisent le répertoire utilisateur ~/vm/ dans lequel sont stockées les images de disques virtuels.

Dans le but de faciliter la diffusion des images de machines virtuelles auprès des étudiants, ce répertoire peut appartenir à l'arborescence du serveur Web apache du portable de l'enseignant. De cette façon, il est possible diffuser instantanément des snapshots en cours de séance de travaux pratiques. Dans ce cas, le véritable répertoire de stockage des images de machines virtuelles est /var/www/vm/ et ~/vm/ est un lien symbolique qui pointe dessus.

6.1. Outils nécessaires avec KVM

Sachant que les modules de virtualisation appartenant au noyau Linux sont chargés en mémoire, il faut maintenant connaître la liste des outils nécessaires à la création des instances de machines virtuelles.

Le paquet associé au gestionnaire de virtualisation KVM fait partie de la collection QEMU. Plusieurs manipulations sont possibles pour connaître l'état des paquets installés sur un système.

$ aptitude search '~ikvm'
i   qemu-kvm                - Full virtualization on x86 hardware

$ dpkg -l *kvm* | grep ^ii
ii  qemu-kvm   0.13.0+dfsg-1  Full virtualization on x86 hardware

Ce paquet kvm fournit le processus d'émulation d'architecture x86 avec le support des extensions matérielles : Intel VT et AMD SVM. Il contient aussi contient les éléments d'émulation des périphériques de carte mère : contrôleur PCI, carte vidéo, cartes réseau, claviers de différentes nationalités, etc.

6.2. Installation d'une machine virtuelle KVM

On commence par créer une image de disque virtuel qui servira de support au système de fichiers de la nouvelle instance de système d'exploitation.

:~/vm$ qemu-img create vm0-debian-stable-amd64.raw -f raw 4G
Formatting 'vm0-debian-stable-amd64.raw', fmt=raw, size=4194304 kB

Le format d'image créé à l'aide de l'instruction ci-dessus est baptisé raw. Il s'agit d'un format simple, utilisé par défaut, sur lequel seuls les secteurs écrits entraînent une réservation d'espace si le système de fichiers supporte un tel mode de fonctionnement. Ce choix de format peut être modifié par la suite puisqu'il est toujours possible de convertir une image d'un format à un autre après coup.

On utilise cette image disque pour lancer le processus d'installation de la machine virtuelle.

:~/vm$ kvm \ 1
  -name install-example \
  -m 512 \ 2
  -rtc base=localtime,clock=host \ 3
  -drive file=vm0-debian-stable-amd64.raw,if=virtio,media=disk,boot=off \ 4
  -k fr \ 5
  -usb -usbdevice tablet \ 6
  -cdrom ~/iso.images/debian-501-amd64-DVD-1.iso \ 7
  -boot d 8

1

Appel de l'émulateur PC KVM. Son rôle est de fournir une liste type des périphériques que l'on trouve sur une carte mère de PC. Cet émulateur se comporte exactement comme l'émulateur QEMU. La liste des périphériques matériels émulés est disponible à la section QEMU PC System emulator de la documentation officielle QEMU.

2

Quantité de mémoire vive (RAM) allouée à la machine virtuelle.

3

Paramétrage des sources de temps. Dans cet exemple, l'horloge temps réel (RTC), définie par le paramètre base, utilise le temps défini au niveau du système hôte. De la même façon, la date est définie à partir du système hôte via le paramètres clock.

4

Correspondance entre unité de disque dur virtuelle et image disque système. Dans cet exemple, le périphérique hda désigne un disque dur IDE.

5

Désignation du modèle de clavier à utiliser. Ici, il s'agit du clavier AZERTY français.

6

Gestion de la capture automatique du curseur de la souris. Avec ce modèle de «tablette USB», il n'est plus nécessaire d'utiliser la séquence de touches Alt+Ctrl pour basculer entre la fenêtre de l'instance virtuelle et celles du système hôte.

7

Correspondance entre lecteur CD/DVD et image ISO du DVD d'installation de la distribution Debian GNU/Linux.

8

Désignation de l'unité de démarrage. Comme il s'agit d'une première installation, c'est le lecteur CD/DVD qui est utilisé pour accéder à l'image ISO d'installation.

Par la suite, le même traitement peu être réalisé en utilisant le script startup.sh proposé dans la Section 14.2, « Configuration système ».

:~/vm$ ./scripts/startup.sh 512 2 \
  vm0-debian-stable-amd64.raw \
  -cdrom ~/iso.images/debian-501-amd64-DVD-1.iso \
  -boot d

Après l'initialisation de la machine virtuelle, le processus d'installation classique démarre.

Les opérations suivantes sont communes aux deux solutions de virtualisation.