Die Virtualisierung bietet viele Vorteile, wie z.B. erhöhte Sicherheit durch einfache Backups und Snapshots, aber auch eine bessere Skalierbarkeit sowie eine effizientere Nutzung der vorhandenen Ressourcen. Im Hypervisor Proxmox können einerseits LX-Container (LXC) erstellt und andererseits virtuelle Maschinen (VMs) betrieben werden.
LXC vs. VM
Zunächst muss der Unterschied zwischen einem LXC (Linux Container) und einer VM (Virtuelle Maschine) erläutert werden, um den jeweiligen Einsatzzweck besser einschätzen zu können.
LXC - Linux Container
Ein LXC (Linux Container) ist ein abgeschotteter Bereich im Betriebssystem, in dem Anwendungen und Dienste sicher und getrennt voneinander ausgeführt werden können. Container sind voneinander isoliert, teilen sich jedoch den Linux-Kernel des Host-Systems. Dadurch haben sie einen kleineren Ressourcenbedarf und benötigen weniger Speicher. Auch das Starten eines Containers geht blitzschnell, da das System nicht neu gebootet werden muss. Da der Container den Kernel des Host-Systems verwendet, können nur Anwendungen und Dienste ausgeführt werden, die mit diesem Kernel kompatibel sind.
VM - Virtuelle Maschine
Eine virtuelle Maschine hingegen ist komplett vom Host-System getrennt. Es werden keine Systembereiche geteilt, weshalb eine VM ein eigenes, vollständig installiertes Betriebssystem benötigt. Dies führt zu einem höheren Ressourcenverbrauch und längeren Startzeiten, da das Betriebssystem vollständig gebootet werden muss. Der Vorteil der VM liegt jedoch in der höheren Sicherheit, da sie wie ein eigener, separater Rechner agiert. Ein weiterer Vorteil ist, dass der Kernel der VM nicht mit dem Host-System geteilt wird. In einer VM kann somit jedes beliebige Betriebssystem installiert werden, z.B. auch Windows.
Wann sollte man welche Variante nutzen?
Eine allgemeine Faustregel könnte lauten:
- Alles, was intern genutzt wird, kann als Container ausgeführt werden, kann aber auch als VM betrieben werden.
- Alles, was extern erreichbar ist, sollte immer in einer VM ausgeführt werden.
Wenn man sich an diese Regel hält, würde man z.B. Webserver, Reverse-Proxies oder Cloud-Dienste, die auch von außerhalb des eigenen Netzwerks erreichbar sein sollen, immer in VMs ausführen. Am besten bekommt jeder Dienst seine eigene VM, also eine VM für den Proxy, eine für die Nextcloud, etc.
Interne Dienste, wie z.B. ein Pi-Hole als DNS-Proxy, oder der UniFi Network Server, der nur von Geräten innerhalb des Netzwerks angesprochen wird, kann als leichtgewichtiger Container ausgeführt werden.
Zusammenfassend lässt sich sagen, dass sowohl LXC-Container als auch virtuelle Maschinen ihre spezifischen Vor- und Nachteile haben. Die Wahl der richtigen Technologie hängt von den jeweiligen Anforderungen an Sicherheit, Ressourcen und Skalierbarkeit ab.