Aller au contenu

KVM vs LXC : quand choisir quoi

Day 0 · ConcevoirNiveau 1 · DécouvrirCoursRédigé · à valider en lab

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

  1. 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.

  2. Vous devez maintenir pve01 sans 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 --restart l'arrête, le déplace et le redémarre : coupure courte. Pour un DNS, prévoyez deux instances sur deux nœuds.

  3. 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.

  4. 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