Virtualisierung

Was ist OpenVZ?

Auch bekannt als: Virtuozzo
Definition

OpenVZ is container-based virtualisation in which every instance shares the host kernel, so guests cannot load kernel modules or run a different operating system. OpenVZ is why unusually cheap virtual servers exist: density is much higher and memory is routinely oversold.

Warum OpenVZ wichtig ist

OpenVZ ist der Grund, warum ungewöhnlich günstige virtuelle Server existieren: Die Dichte ist viel höher, und der Speicher wird routinemäßig überbucht. Es ist auch der Grund, warum Docker, WireGuard auf älteren Hosts und benutzerdefinierte Kernel bei Billiganbietern häufig scheitern.

OpenVZ in der Praxis

Wenn Sie einen OpenVZ-VPS betreiben, leben Sie im Kernel des Hosts. Sie sehen das in /proc und in den Modulen, die Sie nicht laden können: Versuchen Sie modprobe wireguard, und es schlägt mit einer Berechtigungsmeldung fehl, nicht mit einer fehlenden Datei. Den Kernel zu ändern kommt nicht in Frage, also passen Sie die Arbeitslast an, nicht den Host. Der Speicher wird geteilt und oft überbucht, sodass ein Nachbar-Spike auf Ihren drücken kann. Ein Fehler hier ist kostspielig: Wählen Sie eine OpenVZ-Box für eine Aufgabe, die Kernel-Kontrolle erfordert, und Sie stehen vor einem Neuaufbau auf KVM oder müssen den Plan komplett ersetzen.

Was Leute bei OpenVZ falsch machen

Ein häufiger Fehler ist anzunehmen, OpenVZ sei nur eine ältere oder billigere Art von KVM. Das ist es nicht. OpenVZ-Container können keine Kernel-Module laden, kein anderes Betriebssystem ausführen oder Funktionen wie WireGuard auf älteren Hosts nutzen. Die Korrektur: Behandeln Sie OpenVZ als eine eigene Einschränkung, nicht als Teilmenge. Wenn Sie Kernel-Kontrolle benötigen, wählen Sie von Anfang an einen KVM-Plan.

OpenVZ – häufige Fragen

Kann ich Docker auf OpenVZ ausführen?

Oft nicht direkt. Da OpenVZ den Host-Kernel teilt und Kernel-Funktionen einschränken kann, kann die übliche Container-Laufzeit von Docker fehlschlagen, besonders auf älteren Hosts. Sie könnten Workarounds wie lxc verwenden oder Container in einer VM ausführen, aber das ist nicht garantiert. Prüfen Sie die Fähigkeiten Ihres Hosts, bevor Sie sich auf Docker verlassen.

Wofür ist OpenVZ gut?

OpenVZ ist gut für Umgebungen mit hoher Dichte, in denen viele Instanzen auf einem Host laufen, was es billig macht. Es eignet sich für typische Webserver, leichtgewichtige Anwendungen und jede Arbeitslast, die keine Kernel-Änderungen erfordert. Vermeiden Sie einfach Aufgaben, die benutzerdefinierte Kernel, verschachtelte Virtualisierung oder exotische Netzwerkfunktionen erfordern.

Mehr aus virtualisierung

KVM
KVM ist vollständige Hardware-Virtualisierung, die in den Linux-Kernel integriert ist und jedem Gast einen eigenen Kernel und hardwaregestützte Isolierung von anderen Mandanten bietet.
LXC
LXC ist Linux-native Containerisierung, die Prozesse mit Namespaces und Cgroups isoliert, während der Host-Kernel geteilt wird.
Hypervisor
Ein Hypervisor ist die Softwareschicht, die virtuelle Maschinen erstellt und ausführt und physische CPU, Speicher und E/A zwischen ihnen zuteilt.
Verschachtelte Virtualisierung
Verschachtelte Virtualisierung ermöglicht es einer virtuellen Maschine, selbst virtuelle Maschinen auszuführen, indem die Prozessor-Virtualisierungserweiterungen dem Gast exponiert werden.
vCPU
Eine vCPU ist ein virtueller Prozessor, der einem Gast präsentiert wird und durch Planungszeit auf einem physischen Kern oder Thread unterstützt wird.
cloud-init
cloud-init ist der Standardmechanismus zur Konfiguration einer virtuellen Maschine beim ersten Start unter Verwendung von Metadaten, die von der Plattform bereitgestellt werden.