VM vs LXC Reference
Decision Matrix
Use VM (QEMU/KVM) When
- Running Windows or non-Linux OS
- Need full kernel isolation
- Running untrusted workloads
- Complex hardware passthrough needed
- Different kernel version required
- GPU passthrough required
Use LXC When
- Running Linux services
- Need lightweight, fast startup
- Comfortable with shared kernel
- Want better density/performance
- Simple application containers
- Development environments
QEMU/KVM VMs
Full hardware virtualization with any OS support.
Hardware Configuration
| Setting |
Options |
Recommendation |
| CPU type |
host, kvm64, custom |
host for performance |
| Boot |
UEFI, BIOS |
UEFI for modern OS |
| Display |
VNC, SPICE, NoVNC |
NoVNC for web access |
Storage Controllers
| Type |
Performance |
Use Case |
| VirtIO |
Fastest |
Linux, Windows with drivers |
| SCSI |
Fast |
General purpose |
| SATA |
Moderate |
Compatibility |
| IDE |
Slow |
Legacy OS |
Network Adapters
| Type |
Performance |
Use Case |
| VirtIO |
Fastest |
Linux, Windows with drivers |
| E1000 |
Good |
Compatibility |
| RTL8139 |
Slow |
Legacy OS |
Features
- Snapshots (requires compatible storage)
- Templates for rapid cloning
- Live migration (requires shared storage)
- Hardware passthrough (GPU, USB, PCI)
LXC Containers
OS-level virtualization with shared kernel.
Container Types
| Type |
Security |
Use Case |
| Unprivileged |
Higher (recommended) |
Production workloads |
| Privileged |
Lower |
Docker-in-LXC, NFS mounts |
Resource Controls
- CPU cores and limits
- Memory hard/soft limits
- Disk I/O throttling
- Network bandwidth limits
Storage Options
- Bind mounts from host
- Volume storage
- ZFS datasets
Features
- Fast startup (seconds)
- Lower memory overhead
- Higher density per host
- Templates from Proxmox repo
Migration Considerations
VM Migration Requirements
- Shared storage (Ceph, NFS, iSCSI)
- Same CPU architecture
- Compatible Proxmox versions
- Network connectivity between nodes
LXC Migration Requirements
- Shared storage for live migration
- Same architecture
- Unprivileged preferred for portability