Proxmox VE
Proxmox VE (Proxmox Virtual Environment; kurz PVE) ist eine auf Debian basierende Open-Source-Virtualisierungsplattform zum Betrieb von virtuellen Maschinen mit einem Webinterface zur Einrichtung und Steuerung von x86-Virtualisierungen. Die Umgebung basiert auf QEMU mit der Kernel-based Virtual Machine (KVM). PVE bietet neben dem Betrieb von klassischen virtuellen Maschinen (Gastsystemen), die auch den Einsatz von Virtual Appliances erlauben, auch LinuX Containers (LXC) an.
Proxmox VE | |
---|---|
Open-Source-Virtualisierungsplattform | |
Entwickler | Proxmox Server Solutions GmbH |
Lizenz(en) | AGPLv3 (Open Source) |
Erstveröff. | 15. April 2008 |
Akt. Version | 7.1[1] vom 17. November 2021 (vor 102 Tagen) |
Kernel | Linux |
Abstammung | \ Debian \ Proxmox VE |
Architektur(en) | x86-64 mit AMD-V
oder IVT |
Installationsmedium | ISO-Image |
pve.proxmox.com |
Durch die Verwendung einer Web-Oberfläche wird ein Großteil der einfachen Arbeiten wie das Einrichten, Starten und Stoppen, Erstellen von Backups und Verwaltung der Netzwerkinfrastruktur und der laufende Betrieb von virtuellen Maschinen und den dazugehörigen Speichersystemen am Hostsystem erleichtert. Darüber hinaus können Cluster von mehreren PVE-Hostsystemen basierend auf der Corosync Cluster Engine gebildet werden, welche gemeinsam verwaltet werden. Zwischen diesen können virtuelle Maschinen und deren virtueller Festplattenspeicher ausgetauscht werden. Dies ermöglicht den Aufbau von Hochverfügbarkeitsclustern.
Eine Besonderheit von PVE ist, dass beliebige Pakete des Debian-Projekts mittels des Debian Package Managers (dpkg) und darauf aufbauend Advanced Packaging Tool (apt) am Hostsystem nachinstalliert werden können. Auch die Verwaltung und Aktualisierung von Proxmox-Paketen erfolgt über eigene Repositories mittels dpkg. Der Veröffentlichungszyklus von PVE liegt dabei meist bei zwei bis vier Monaten, bei größeren Änderungen auch länger. Proxmox VE wird von der Wiener Proxmox Server Solutions GmbH entwickelt und betreut.[2]
Geschichte
Bis Version 3.4 wurde als Container-Technologie OpenVZ verwendet, mit Version 4.0 wurde dieser durch LXC ersetzt.[3] Die Proxmox-VE-Version 5.1 arbeitet auf Basis von Linux 4.13 und unterstützt im Parallelbetrieb sowohl KVM-basierte Gastsysteme, als auch LXC-basierte Linux-Container
Funktionsweise
Im einfachsten Fall wird PVE auf einer kompatiblen x86-64-Plattform wie beispielsweise einem Bladeserver von dem zur Verfügung gestellten ISO-Image aus installiert. Das Installationsprogramm erledigt den gesamten Installationsvorgang in einer Debian-Grundinstallation praktisch automatisch und nutzt dabei die gesamte erste Festplatte des PCs. Weitere Installationsarten sind möglich und werden im PVE-Wiki erklärt.[4] Die Unterschiede zu einer gewöhnlichen Debianinstallation bestehen primär in der Vorauswahl der zu unterstützenden Hardware: So werden beispielsweise eine größere Auswahl der im Serverbereich anzutreffenden PHY-Ethernet-Netzwerkchips von der Firma Intel direkt unterstützt, die Nachinstallation von Treibern entfällt damit. Das Proxmox-Wiki bietet dazu diverse FAQs, Howtos sowie zahlreiche Video-Tutorials.
Proxmox VE unterstützt am Hostsystem jede Hardware, die auch von Debian in der jeweiligen Version unterstützt wird, somit auch uneingeschränkt SMP-Systeme mit mehreren Prozessoren und Prozessorkernen.
Die Administration von PVE erfolgt für einfache Schritte über ein Webinterface. Ergänzend steht ein SSH-Zugang zur Kommandozeile auf root-Ebene zur Verfügung, auf welchem sich mit entsprechenden Scripts und Systemprogrammen auch umfangreichere Arbeiten und spezielle Konfigurationen am Hostsystem erledigen lassen.
Aufbau
Virtuelle Maschinen (KVM)
Proxmox VE beinhaltet auf der einen Seite einen Linux-Kernel, der auf KVM-Basis als Hypervisor (auch Virtual Machine Monitor genannt) direkt auf der Hardware läuft. Der Linux-Kernel stellt ab der Version 2.6.21 als Rahmenbedingung für Virtualisierungs-Anwendungen die paravirt ops-Schnittstelle bereit.
Der Vorteil von KVM liegt darin, nahezu beliebige x86-Betriebssysteme ohne zusätzliche Anpassungen unter einer zentralen Verwaltung ausführen zu können. Diese Betriebsart wird als volle Virtualisierung oder Hardware Virtual Machine (HVM) bezeichnet. Für die HVM-Virtualisierungstechniken wird am Hostsystem standardmäßig vorhandene Hardwareunterstützung für Virtualisierung mit AMD-V oder Intel VT benötigt.
Linux Containers (LXC)
Ab Version 4.0 lösen Linux Containers (LXC) die bisher verwendeten OpenVZ-Container (bis Proxmox VE 3.4) ab. Bei einem Upgrade eines Proxmox-Clusters können die OpenVZ-Container zu LXC konvertiert werden.[5] Im Gegensatz zu virtuellen Maschinen weisen Container einen geringeren Speicherbedarf auf, dafür ist das Gastsystem auf das Betriebssystem Linux limitiert, da bei Containern der Kernel des Hostsystems im Gastsystem verwendet wird.
Mit dem Wechsel auf LXC kann Proxmox die aktuellen Linux-Kernels nutzen. Die komplette Integration von LXC in das Proxmox VE-Framework erlaubt ab Proxmox VE 4.x die Verwendung von LXC mit Storage-Plugins wie Ceph, ZFS (Dateisystem) (lokal oder via iSCSI), NFS (Network File System), GlusterFS, iSCSI, Sheepdog oder lokalem Speicher (Verzeichnisse oder LVM).[6] DRBD9 wird seit Proxmox 4.4 aufgrund von Lizenzproblemen nicht mehr direkt unterstützt und kann nur durch externe Plugins eingebunden werden.[7]
OpenVZ
Proxmox VE integrierte bis Version 3.4 auch OpenVZ, eine auf Linux aufbauende Servervirtualisierung auf Betriebssystemebene. Hier wird anders als bei KVM ein gemeinsamer Kernel für alle virtuellen Maschinen (Instanzen) verwendet, die in sogenannten Containern voneinander isoliert sind. Der Vorteil ist hier die Schlankheit dieser Technik, d. h. der Speicherverbrauch und die Prozessornutzung ist günstiger als bei KVM.
Jedoch ist es mit OpenVZ nur möglich, Linux-VMs mit auch auf Hostseite angepasstem Kernel zu betreiben; die Gäste können weiterhin auch keine eigenen Änderungen am Kernel vornehmen oder eigene Kernelmodule laden, da der Kernel mit dem Hostsystem geteilt wird. Um diese Technik benutzerfreundlich zu halten, verfügt Proxmox VE/OpenVZ über Templates, die alle notwendigen Änderungen des Gastsystems automatisiert durchführen. Wiederum profitieren von einem Update des zentralen Kernel sofort alle Instanzen; der Verwaltungsaufwand ist also gegebenenfalls geringer.
Speichersysteme
PVE unterstützt die Aufnahme und Einrichtung der für den Betrieb notwendigen virtuellen Laufwerke der Gastsysteme, Snapshots und Backups. Dabei können sowohl lokale im Hostsystem eingebaute Speichermedien wie Festplatten (HDD) oder Solid-State-Drives (SSD) als auch netzwerkbasierende Speichersysteme, wie Storage Area Networks (SAN) oder Network Attached Storages (NAS), zur Anwendung kommen. Die Anbindung kann dabei dateisystembasierend erfolgen, beispielsweise mittels Network File System (NFS), als auch als Blockgerät über Schnittstellen wie iSCSI.
Zur Verwaltung der lokalen Speichermedien wird generell ein Volume-Management (LVM) eingesetzt, darauf aufbauend erfolgt für die virtuellen Laufwerksabbildungen die Speicherung entweder in eigenen Partitionen in englisch Thinly-Provisioned Logical Volumes, thin-LVM oder in einem Dateisystem, beispielsweise in dem standardmäßig von QEMU verwendeten Dateiformat qcow2. Damit ist auch der Austausch der Laufwerksabbildungen zwischen verschiedenen Virtualisierungsumgebungen auf Dateiebene möglich. Als Dateisystem am Hostsystem wird neben ext4 auch das im Serverbereich anzutreffende und speicherintensive ZFS zur Auswahl angeboten.
Diverses
PVE bietet sowohl für das Hostsystem als auch darauf aufbauend individuell für jedes Gastsystem einzeln die Möglichkeit einer auf iptables basierenden Firewall an. Die Konfiguration für die Netzwerkregeln kann über das Web-Interface erfolgen.
Die Schnittstelle zur Konsole der Gastsysteme, beispielsweise die Ausgabe einer grafischen Oberfläche und die Eingabe der Tastatur- und Maussteuerungen im Rahmen eines virtuellen KVM-Switchs, erfolgt wahlweise über das Protokoll SPICE oder über eine auf HTML5 basierende Variante von Virtual Network Computing (noVNC). Damit nicht jedes Gastsystem einen eigenen Port für die Konsolenschnittstelle am Hostsystem belegt, erfolgt der verschlüsselte Zugang mit Authentifizierung über einen Proxy.
Ab Version 5.3 besteht über die Weboberfläche die Möglichkeit einzelne Hardwarekomponenten vom Hostsystem, wie beispielsweise Einsteckkarten mit Peripheral Component Interconnect (PCI) oder Grafikkarten (GPU), direkt in bestimmte Gastsysteme für den exklusiven Zugriff durchzureichen.[8]
Literatur
- Rik Goldman: Learning Proxmox VE. Packt Publishing Ltd., 2016, ISBN 978-1-78398-178-6.
- Simon M.C. Cheng: Proxmox High Availability. Packt Publishing Ltd., 2014, ISBN 978-1-78398-088-8.
Weblinks
- Proxmox VE Administration Guide – Release 5.1. (PDF) Proxmox Server Solutions Gmbh, 23. Oktober 2017, abgerufen am 29. November 2017.
- Proxmox VE: Open-Source-Virtualisierungplattform mit KVM und OpenVZ (GPLv3 aber auch kommerzieller Support verfügbar, entwickelt in Österreich)
Einzelnachweise
- www.proxmox.com.
- Proxmox Server Solutions GmbH (Wien, AT)
- Pressemitteilung Release Proxmox VE 4.0
- Wiki des Proxmox-VE-Projekts
- Virtualisierungsumgebung Proxmox VE erscheint in Version 4.0. Heise Online, abgerufen am 15. Dezember 2015.
- Storage im Proxmox-Wiki
- DRBD9 im Proxmox-Wiki
- Proxmox VE 5.3 – Roadmap. Abgerufen am 8. Dezember 2018.