V01 - Les concepts de la virtualisation
Objectif
Comprendre ce qu’est une machine virtuelle, un hyperviseur (type 1 / type 2), un conteneur, et les modes réseau qui reviennent dans tous les TP.
1. Machine virtuelle et hyperviseur
Une machine virtuelle (VM) est un ordinateur simulé (processeur, RAM, disque, carte réseau virtuels) qui fait tourner son propre système d’exploitation. Le logiciel qui crée et gère les VM est l’hyperviseur.
flowchart TB subgraph T2["Type 2 (hébergé) — ton PC"] direction TB A1["VM Debian"] & A2["VM Windows 11"] & A3["VM pfSense"] --> H2["Hyperviseur : VirtualBox / VMware Workstation"] H2 --> OS["OS hôte : Pop!_OS / Arch"] --> M2["Matériel"] end subgraph T1["Type 1 (bare-metal) — serveur"] direction TB B1["VM Web"] & B2["VM BDD"] & B3["VM Routeur"] --> H1["Hyperviseur : Proxmox VE / ESXi / Hyper-V Server"] H1 --> M1["Matériel du serveur"] end
| Type 1 (bare-metal) | Type 2 (hébergé) | |
|---|---|---|
| S’installe | Directement sur le matériel | Comme une application dans un OS |
| Exemples | Proxmox VE, VMware ESXi, Hyper-V, Xen | VirtualBox, VMware Workstation, GNOME Boxes |
| Performances | Meilleures | Un peu moins bonnes |
| Usage | Production, datacenter, salle serveur de l’école | Labo sur ton PC |
KVM (Linux) est un cas à part : un module du noyau Linux qui transforme Linux lui-même en hyperviseur de type 1. virt-manager et Proxmox reposent sur KVM.
Prérequis matériel : les instructions de virtualisation Intel VT-x ou AMD-V activées dans le BIOS/UEFI.
grep -Ec '(vmx|svm)' /proc/cpuinfo # > 0 = le processeur les supporte
lsmod | grep kvm # kvm_intel ou kvm_amd chargé ?2. Pourquoi virtualiser ?
| Avantage | Exemple |
|---|---|
| Consolidation | 10 serveurs sur 1 machine physique |
| Instantanés (snapshots) | Revenir en arrière en 5 s après une erreur de TP |
| Isolation | Tester un malware, un pare-feu, sans risque pour ton PC |
| Clonage / modèles | Créer 5 VM identiques en 1 minute |
| Portabilité | Exporter une VM (.ova) vers un autre PC |
| Haute disponibilité | Migrer une VM d’un hôte à l’autre (Proxmox cluster) |
Un instantané n'est pas une sauvegarde : il dépend du disque d'origine. Si le disque de la VM est perdu, les instantanés aussi.
3. VM ou conteneur ?
flowchart TB subgraph VM["Machines virtuelles"] direction TB v1["App A<br/>Bibliothèques<br/>OS invité complet"] & v2["App B<br/>Bibliothèques<br/>OS invité complet"] --> hv["Hyperviseur"] end subgraph CT["Conteneurs"] direction TB c1["App A<br/>Bibliothèques"] & c2["App B<br/>Bibliothèques"] --> ce["Moteur : Docker / Podman / LXC"] ce --> k["Noyau Linux de l'hôte (partagé)"] end
| VM | Conteneur | |
|---|---|---|
| Contient | Un OS complet | Une appli + ses dépendances |
| Démarrage | Dizaines de secondes | ~1 seconde |
| Taille | Plusieurs Go | Quelques Mo à centaines de Mo |
| Isolation | Forte (noyau séparé) | Plus faible (noyau partagé) |
| OS différent de l’hôte | Oui (Windows sur Linux) | Non (Linux sur Linux) |
| Exemples | VirtualBox, KVM | Docker (V05 - Docker), LXC (Proxmox) |
4. Les modes réseau des VM (à connaître par cœur)
| Mode | La VM accède à Internet ? | Joignable depuis l’hôte ? | Les VM se voient ? | Usage typique |
|---|---|---|---|---|
| NAT | ✅ | ❌ (sauf redirection de port) | ❌ (VirtualBox) | Installer des paquets |
Réseau NAT (VirtualBox) / default (libvirt) | ✅ | libvirt : ✅ | ✅ | Petit labo connecté |
| Accès par pont (bridge) | ✅ (IP du réseau réel) | ✅ | ✅ | La VM est « un vrai PC » sur le réseau de la box |
| Réseau interne / réseau isolé | ❌ | ❌ | ✅ (même nom de réseau) | Labo fermé : AD, DHCP, pfSense LAN |
| Privé hôte (host-only) | ❌ | ✅ | ✅ | Administrer les VM en SSH depuis ton PC |
flowchart LR INTERNET((Internet)) --- BOX["Box 192.168.1.1"] BOX --- HOTE["PC hôte 192.168.1.20"] HOTE -- "NAT : 10.0.2.15" --> VM1["VM A"] HOTE -- "Pont : 192.168.1.50" --> VM2["VM B"] HOTE -- "Host-only : 192.168.56.x" --> VM1 VM1 -- "Réseau interne 'labo'" --- VM3["VM C"]
En résidence universitaire / à l'école, le mode pont est souvent bloqué (une seule adresse MAC autorisée par prise / Wi-Fi). Utilise NAT + host-only ou un réseau libvirt.