Proxmox: LXC vs VM Documentatie
Dit document beschrijft de fundamentele verschillen tussen Linux Containers (LXC) en Virtual Machines (VM's) binnen het Proxmox VE cluster, inclusief privileges, nesting, CPU-modellen en netwerkinfrastructuren.
1. Verschillen tussen LXC en VM
| Eigenschap | Linux Container (LXC) | Virtual Machine (VM / KVM) |
|---|---|---|
| Virtualisatie | OS-level (deelt host-kernel) | Hardware-level (geΓ«muleerde hardware) |
| Kernel | Zelfde als de Proxmox host | Eigen gekozen kernel (bijv. Linux of Windows) |
| Opstarttijd | < 2 seconden | 10 tot 30+ seconden |
| Geheugenverbruik | Extreem laag (vanaf ~30MB) | Hoog (volledige RAM-allocatie) |
| Isolatie & Veiligheid | Matig (proces-gebaseerd) | Sterk (volledig geΓ―soleerd) |
2. TurnKey Linux Oplossingen
Proxmox heeft ingebouwde ondersteuning voor TurnKey Linux templates. * Wat het is: Meer dan 100 kant-en-klare, vooraf geconfigureerde virtuele appliances (zoals WordPress, Nextcloud, FileServer en databases). * Voordeel: Binnen enkele minuten een werkende service draaien zonder handmatige pakketinstallaties of Docker-overhead. * Installatie: Ga in de Proxmox GUI naar de Local Storage -> CT Templates -> Templates en download de gewenste TurnKey optie.
3. LXC Specifieke Instellingen
Privileged vs Unprivileged
- Privileged (Met privileges):
- De
rootgebruiker in de container is dezelfderootgebruiker als op de Proxmox host. - Wanneer gebruiken: Nodig bij specifieke hardware-passthrough (zoals iGPU voor Plex) of directe NFS/SMB opslag-mounts.
- Risico: Minder veilig; een exploit in de container kan leiden tot volledige root-toegang tot de fysieke host.
- Unprivileged (Zonder privileges - Standaard & Aanbevolen):
- De
rootgebruiker in de container wordt gemapt naar een gewone, onbevoegde UID/GID op de host. - Voordeel: Maximale beveiliging. Mocht de container gecompromitteerd worden, blijft de host beschermd.
- Aandachtspunt: Vereist handmatige UID/GID-mapping (uidmap) bij het koppelen van externe opslag (bind mounts).
Nesting (Ja / Nee)
- Nesting = AAN (
1): - Schakelt extra isolatielagen zoals
procfsensysfsopen binnen de container. - Wanneer gebruiken: Absoluut noodzakelijk als je binnen een LXC-container nΓ³g een container-engine wilt draaien (zoals Docker of Podman in een LXC).
- Nesting = UIT (
0- Standaard): - Standaardinstelling voor reguliere, op zichzelf staande applicaties. Biedt de beste isolatie en veiligheid.
4. Diepe duik: Proxmox CPU-Modellen (VM's)
Bij het configureren van de CPU van een Virtual Machine bepaalt het 'Type' welke processorinstructies aan de VM worden doorgegeven.
kvm64(Standaard & Veilig):- Een generiek, geΓ«muleerd CPU-model met een minimale set aan instructies (gebaseerd op oude Pentium 4/Athlon architectuur).
- Voordeel: Maximale cluster-mobiliteit. Je kunt VM's live migreren tussen Proxmox hosts met totaal verschillende fysieke CPU's (bijv. van Intel naar AMD) zonder dat de VM crasht.
- Nadeel: Slechte prestaties. Moderne CPU-instructies (zoals AES-NI voor encryptie of AVX voor zware berekeningen) ontbreken.
host(Maximale Performance - Aanbevolen voor homelabs):- Geeft de exacte fysieke CPU-instructies van de Proxmox host 1-op-1 door aan de VM.
- Voordeel: Maximale prestaties. Essentieel voor CPU-intensieve VM's zoals een Docker host, Home Assistant of systemen die encryptie gebruiken.
- Nadeel: Live migratie binnen een cluster werkt alleen als de doelhost exact dezelfde generatie fysieke CPU heeft.
qemu64/x86-64-v2t/mv4:- Tussenoplossingen.
x86-64-v3activeert bijvoorbeeld AVX en AVX2 instructies, waardoor je betere prestaties krijgt dankvm64maar toch flexibiliteit behoudt bij migraties tussen verschillende Intel/AMD CPU's in het cluster.
5. Diepe duik: Netwerk-Bridges in Proxmox
Proxmox gebruikt virtuele netwerkkaarten en switches om netwerkverkeer te regelen. De keuze van de driver en configuratie bepaalt de doorvoersnelheid.
Virtuele Bridges (vmbr0, vmbr1, etc.)
vmbr0(Standaard Linux Bridge): Dit fungeert als een virtuele netwerk-switch die gekoppeld is aan een fysieke netwerkkaart (enpxxxofeth0) van de host. Zowel de host als de VM's/LXC's delen deze fysieke poort.- VLAN Aware: Als je deze optie inschakelt op de bridge, kan één enkele bridge tags (zoals VLAN 10, VLAN 20) doorgeven. Je kunt dan in de netwerkinstellingen van een specifieke VM of LXC direct het VLAN-id invullen om deze in het juiste netwerksegment te plaatsen (bijv. een IoT- of DMZ-netwerk).
Netwerk Drivers (Voor VM's)
- VirtIO (Paravirtualized - Aanbevolen):
- Geen emulatie, maar een directe software-koppeling tussen de VM en de Proxmox host.
- Voordeel: Biedt de hoogste doorvoersnelheid (tot wel 10Gbps+ virtueel) en de laagste CPU-overhead. Altijd gebruiken voor Linux VM's en Docker hosts. Voor Windows is de installatie van de
virtio-win.isodrivers vereist tijdens de setup. - Intel E1000 / Realtek:
- Emuleert een oude fysieke netwerkkaart.
- Wanneer gebruiken: Alleen als fallback/compatibiliteitsmodus wanneer een besturingssysteem de VirtIO drivers niet herkent. Vraagt veel CPU-kracht en is gelimiteerd tot 1Gbps.