KVM vs LXC : quand choisir quoi¶
Réponse courte. Par défaut, créez une VM KVM : elle est isolée, migrable à chaud et accepte tous les systèmes. Choisissez un conteneur LXC seulement pour un service Linux léger, de confiance, qui tolère un redémarrage lors d'une migration.
Deux technologies, un même outil de gestion¶
- KVM/QEMU virtualise une machine complète : BIOS ou UEFI, disques, cartes réseau, son propre noyau. Commande :
qm. Configuration :/etc/pve/qemu-server/<vmid>.conf. - LXC isole des processus qui partagent le noyau de l'hôte. Le conteneur contient seulement l'espace utilisateur d'une distribution Linux. Commande :
pct. Configuration :/etc/pve/lxc/<ctid>.conf.
Les deux partagent le même espace de numérotation (VMID), la même GUI, les mêmes stockages, la HA, le firewall et la sauvegarde PBS.
flowchart TB
subgraph Hote["Nœud pve01 : noyau Linux Proxmox"]
direction LR
subgraph VM["VM 101 (KVM)"]
K1[Noyau invité<br/>Windows ou Linux] --> A1[Applications]
end
subgraph CT["Conteneur 201 (LXC)"]
A2[Applications Linux]
end
end
VM -->|matériel virtuel QEMU| Hote
CT -->|appels système directs| Hote
Comparaison¶
| Critère | VM KVM | Conteneur LXC |
|---|---|---|
| Systèmes invités | Tous (Windows, Linux, BSD…) | Linux uniquement |
| Noyau | Propre à la VM | Celui de l'hôte |
| Isolation | Forte (matériel virtuel) | Plus faible : surface d'attaque du noyau partagée |
| Surcoût CPU / RAM | Faible avec VirtIO | Quasi nul |
| Démarrage | Quelques dizaines de secondes | Quelques secondes |
| Migration à chaud | Oui (qm migrate --online) |
Non : migration avec redémarrage (pct migrate 201 pve02 --restart) |
| HA | Oui | Oui (avec redémarrage) |
| Snapshots, sauvegarde PBS | Oui | Oui |
| Passthrough PCI / GPU | Oui | Non prévu de la même manière |
| Mise à jour du noyau de l'hôte | Sans effet sur l'invité | Affecte tous les conteneurs |
| Support éditeur logiciel | Généralement certifié sur VM | Rarement certifié sur conteneur |
Privilégié ou non privilégié¶
Un conteneur non privilégié (choix par défaut à la création) mappe l'utilisateur root du conteneur sur un utilisateur sans droits de l'hôte. Un conteneur privilégié garde root = root : réservez-le à un environnement de confiance. Détails : Conteneurs LXC.
Arbre de choix rapide¶
| Votre besoin | Choix |
|---|---|
| Windows, appliance éditeur, OS non Linux | VM |
| Application certifiée par un éditeur (ERP, base de données) | VM |
| Service exposé à Internet ou utilisé par des tiers | VM |
| Migration à chaud sans coupure obligatoire | VM |
| Docker, Kubernetes | VM (isolation et migration à chaud) |
| Petit service Linux interne : DNS, proxy, supervision, serveur de fichiers léger | LXC possible |
| Densité maximale sur un mono-nœud de lab | LXC |
Recommandations MSP¶
- Standard de production : VM. Les procédures, runbooks et modèles de sauvegarde du MSP sont d'abord écrits pour des VMs.
- Utilisez LXC pour l'outillage interne (supervision, rebond, DNS) si vous acceptez le redémarrage lors des maintenances.
- Ne lancez pas Docker dans un conteneur LXC de production : les mises à jour du noyau ou d'AppArmor peuvent le casser. Proxmox recommande une VM pour l'isolation et la migration à chaud.
- La création d'un conteneur à partir d'une image OCI existe dans les versions 9.x récentes mais reste en aperçu technologique : à éviter en production.
Pièges vus en support
- Maintenance de nœud planifiée avec des conteneurs critiques : l'équipe découvre que LXC ne migre pas à chaud et que le service redémarre.
- Montage NFS ou CIFS à l'intérieur d'un conteneur non privilégié : refusé par défaut. Montez sur l'hôte puis utilisez un bind mount.
- Restauration d'un conteneur privilégié en non privilégié : problèmes de droits sur les fichiers.
- Application qui charge un module noyau : impossible dans un conteneur, il faut une VM.
Testez-vous¶
-
Pourquoi un conteneur LXC ne peut-il pas faire tourner Windows ?
Réponse
Il partage le noyau Linux de l'hôte. Seul l'espace utilisateur d'une distribution Linux peut y tourner.
-
Vous devez maintenir
pve01sans couper le service DNS hébergé dans le conteneur 201. Que se passe-t-il ?Réponse
Le conteneur ne migre pas à chaud.
pct migrate 201 pve02 --restartl'arrête, le déplace et le redémarre : coupure courte. Pour un DNS, prévoyez deux instances sur deux nœuds. -
Un éditeur fournit une appliance au format OVA. VM ou conteneur ?
Réponse
VM : une appliance OVA embarque son propre système et son noyau. Import : OVF/OVA.
-
Quel type de conteneur est créé par défaut, et pourquoi ?
Réponse
Non privilégié : root dans le conteneur n'a pas les droits root sur l'hôte, ce qui limite l'impact d'une évasion.
Pour aller plus loin¶
- Créer une VM optimisée
- Conteneurs LXC : privilégiés, non privilégiés, bind mounts
- Documentation officielle : Machines virtuelles QEMU/KVM · Conteneurs Proxmox