Virtualisation système et enseignement

Philippe Latu

inetdoc.net
Enseignant - Chargé de mission Systèmes & Réseaux
IUT - Université Toulouse III - Paul Sabatier

Résumé

Cet article est à la fois un retour d'expérience et une proposition d'évolution dans l'usage de la virtualisation d'instances de systèmes d'exploitation dans les enseignements pratiques sur ces mêmes systèmes. L'objectif est de faciliter la diffusion et l'usage de la virtualisation auprès des étudiants qui ont quelques difficultés à dépasser le niveau du simple utilisateur.


Table des matières

1. Copyright et Licence
1.1. Méta-information
1.2. Conventions typographiques
2. Introduction
3. Choix d'une solution de virtualisation
3.1. Virtualisation et noyau Linux
3.2. Contexte pratique
4. Mise en œuvre de KVM
4.1. Identification des extensions matérielles du processeur
4.2. Sélection des options du noyau Linux
5. Mise en œuvre de VIRTIO
5.1. Identification des modules disponibles
5.2. Utilisation des bibliothèques VIRTIO
6. Création d'une machine virtuelle avec KVM
6.1. Outils nécessaires avec KVM
6.2. Installation d'une machine virtuelle KVM
7. Création d'une machine virtuelle avec QEMU
7.1. Outils nécessaires avec QEMU
7.2. Installation d'une machine virtuelle QEMU
8. Optimisation d'une machine virtuelle
8.1. Optimisation de la gestion de paquets
8.2. Optimisation de la console
8.3. Optimisation de la configuration graphique
8.4. Optimisation des accès SSH
9. Extension de la capacité de stockage d'une image de machine virtuelle
9.1. Extension de l'image disque
9.2. Extension des volumes logiques LVM
10. Communications réseau en mode utilisateur
10.1. Exemple d'utilisation des communications réseau en mode utilisateur
11. Fonction TUN/TAP du noyau Linux
11.1. Configuration manuelle d'une interface TAP
11.2. Configuration système d'une interface TAP
11.3. Configuration Debian d'une interface TAP
12. Communications réseau en mode point-à-point
12.1. Exemple d'utilisation des communications réseau en mode point à point
13. Communications réseau en mode pont
13.1. Configuration simple
14. Communications réseau en mode commutation virtuelle
14.1. Configuration manuelle
14.2. Configuration système
15. En guise de conclusion
A. Scripts spécifiques

1. Copyright et Licence

Copyright (c) 2000,2013 Philippe Latu.
Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.3 or any later version
published by the Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included
in the section entitled "GNU Free Documentation License".
Copyright (c) 2000,2013 Philippe Latu.
Permission est accordée de copier, distribuer et/ou modifier ce document selon
les termes de la Licence de Documentation Libre GNU (GNU Free Documentation
License), version 1.3 ou toute version ultérieure publiée par la Free Software
Foundation ; sans Sections Invariables ; sans Texte de Première de Couverture,
et sans Texte de Quatrième de Couverture. Une copie de la présente Licence est
incluse dans la section intitulée « Licence de Documentation Libre GNU ».

1.1. Méta-information

Cet article est écrit avec DocBook XML sur un système Debian GNU/Linux. Il est disponible en version imprimable aux format PDF : vm.pdf.

Toutes les commandes utilisées dans ce document ne sont pas spécifiques à une version particulière des systèmes UNIX ou GNU/Linux. C'est la distribution Debian GNU/Linux qui est utilisée pour les tests présentés. Voici une liste des paquets contenant les commandes :

  • procps - The /proc file system utilities

  • kernel-package - A utility for building Linux kernel related Debian packages.

  • fakeroot - Gives a fake root environment.

  • kvm - Full virtualization on x86 hardware

  • qemu - fast processor emulator

  • openvpn - virtual private network daemon

  • vde2 - Virtual Distributed Ethernet

1.2. Conventions typographiques

Tous les exemples d'exécution des commandes sont précédés d'une invite utilisateur ou prompt spécifique au niveau des droits utilisateurs nécessaires sur le système.

  • Toute commande précédée de l'invite $ ne nécessite aucun privilège particulier et peut être utilisée au niveau utilisateur simple.

  • Toute commande précédée de l'invite # nécessite les privilèges du super utilisateur.