Proxmox Virtual Envrionment (PVE) ist eine von der Wiener Proxmox Server Solutions GmbH entwickelte, ausschließlich auf Open-Source-Komponenten beruhende, cluster-fähige Virtualisierungsumgebung mit einigen Besonderheiten. Nutzer verwalten mit PVE virtuelle Maschinen (KVM, Kernel-based Virtual Machine), OpenVZ-Ressource-Container, Storage, virtuelle Netzwerke und HA-Cluster in einem ansprechenden Web-Interface. PVE erlaubt gleichermaßen das Bereitstellen echter virtueller Maschinen auf Basis von Qemu/KVM und virtueller Container mithilfe von OpenVZ. Allerdings verwendet Proxmox VE lediglich den gleichen Kernel wie das OpenVZ-Projekt.
Das gesamte übrige Ökosystem der Containervirtualisierung ist eine Eigenentwicklung von Proxmox. Kleine Notiz am Rande: Seit einiger Zeit kursiert in der Community ein Blogpost, wonach OpenVZ künftig unter der Bezeichnung "Virtuozzo Core" als quelloffene Variante von Parallels Cloud Server weitergeführt werden soll, um Doppelentwicklungen zu vermeiden.
Besonderheiten von Proxmox VE
Das als Appliance bereitgestellte System basiert auf einer minimalen Debian/GNU-Linux-Umgebung (derzeit Wheezy 7.8) mit einem Red-Hat-Enterprise-Kernel 2.6.32. Die auf den ersten Blick angestaubte Versionsnummer ist erforderlich, weil OpenVZ im Gegensatz zum im Standard-Linux-Kernel enthaltenen LXE (Linux Containers) einen speziell gepatchten Kernel benötigt. Der von Proxmox verwendete RHEL-Kernel befindet sich aber auf einem aktuellen Patch-Level.
Die Kombination der wahlweisen Bereitstellung voll-/para-virtualisierter Fullsize-VMs auf Basis von KVM und reiner Linux-Betriebssystemvirtualisierung ergibt Sinn, denn bei den weitaus meisten virtuelle Linux-Maschinen handelt es sich um GUI-freie Server (etwa als Webserver, LAMP-Umgebung, Mailserver oder DNS). In Form einer quasi-virtuellen Linux-Systemumgebung mithilfe von OpenVZ-Containern benötigen diese weitaus weniger Ressourcen als vollständige virtuelle Maschinen. Das über die Jahre ausgereifte OpenVZ sorgt für eine sichere Abgrenzung der einzelnen Linux-Container. Wer virtuelle Windows-Server benötigt, muss allerdings auf vollständige virtuelle Maschinen auf KVM-Basis zurückgreifen, wobei mit den paravirtualisierten Windows-Treibern von Fedora für virtuelle Disks, NICs und Memory Ballooning eine nahezu native Performance erreicht wird.
PVE-Bereitstellung
Eingerichtet wird das Ganze über ein modernes Ajax-Web-Interface (basierend auf Ext JS 4.0), das an vielen Stellen kontextsensitiv ist. Das Aufsetzen des Systems ist, sofern der vorgesehene Host die Installationsvoraussetzungen, wie etwa eine CPU mit Hardwarevirtualisierung (für KVM-VMs), erfüllt, trivial, gut dokumentiert und in wenigen Minuten erledigt, denn das System ist als Appliance konzipiert.
PVE ist eine professionelle Virtualisierungsplattform fürs Rechenzentrum und keine Desktop-Lösung im Stil von Oracle VirtualBox. PVE muss daher von der Papierform her keinen Vergleich mit vSphere, Hyper-V oder Citrix XenSerer scheuen. So unterstützt PVE von Haus aus Hochverfügbarkeit, Live-VM-Snapshots oder Live-Migration von virtuellen Maschinen. Installiert der Nutzer PVE nicht gerade auf Basis einer existierenden Debian-Umgebung (was immerhin möglich ist, um die Lösung im Zusammenhang mit einem bestehenden Partitionslayout evaluieren zu können), unterstützt der KVM-basierte Bare_Metal-Hypervisor bis zu 160 CPUs sowie 2 TB RAM pro Host.
Spice-Support und HTML-Console
Dank vollständiger Integration des Red-Hat-Virtualisierungs-Stacks einschließlich VDI-Remote-Zugriffsprotokoll Spice lassen sich auch Desktop-Betriebssysteme performant nutzen. Das PVE-Web-Interface bietet sogar eine eingebaute, HTML5-basierte Browser-Console, die ein effizientes Verwalten und Steuern von VMs, unabhängig vom verwendeten Client-Betriebssystem, erlaubt.
Preise und Support
Open Source PVE ist kein Community-Projekt, sondern wird federführend von der Proxmox Server Solutions GmbH entwickelt, obwohl bereits viele externe Community Developer mitwirken. Der Hersteller verdient sein Geld mit optional zur Community-Version angebotenen Support-Abonnements. Eine gültige PVE-Subskription erlaubt im Unterschied zur freien Version den Zugriff auf das Enterprise Repository und schließt regelmäßige Software-Updates ein. Die Preise der Subskriptionsversionen beginnen bei rund 5 Euro pro CPU und Monat. Damit ist Proxmox Virtual Envrionment preiswerter als Red Hat Enterprise Virtualization und zudem strukturell weniger komplex.
Architektur einer PVE-Umgebung
Eine PVE-Umgebung besteht aus mindestens einem oder mehreren PVE-Nodes, von denen jeder ein RestFul-API-basiertes Web-Interface und eine Reihe von CLI-Management-Tools mitbringt. Das Web-Interface fußt als Back-End auf einem von Proxmox selbst geschriebenen, performanten Webserver. Im Unterschied zu VMware vSphere oder Red Hat (bezuiehungsweise oVirt) gibt es keine dedizierte Management-Maschine. Anwender nutzen zum Verwalten ihrer Umgebung immer das Web-Interface des betreffenden Nodes. Erst durch das Zusammenschalten mehrerer Nodes zu einem Cluster mithilfe des Proxmox-eigenen Cluster-Management-Toolkits pvecm lassen sich mehrere Nodes in einem Web-Interface verwalten und Ressourcen gemeinsam zuweisen, etwa zur Realisierung einer zentralen Authentifizierung und Benutzerverwaltung.
PVE unterstützt lokale Authentifizierung via Linux-PAM oder PVE authentication server (Default) sowie optional die Verzeichnisdienste Active Directory oder LDAP. Zur Berechtigungssteuerung steht ein ausgefeiltes Rollenmodell zur Verfügung.
PVE Cluster-Stack
Die Bereitstellungsphilosophie von Proxmox unterscheidet sich von vSphere (ein vCenter-Server verwaltet beliebig viele Hosts im datenbankbasierten Web-Interface) oder XenServer. Erst ein via pvecm eingerichteter Cluster bewegt die einzelnen PVE-Nodes dazu, miteinander zu reden. Im Gegensatz zu VMware oder RHEV (ovirt) braucht ein Proxmox-VE-Cluster aber keinen zentralen Management-Node mit Datenbank. Ein solcher kostet auch bei den Mitbewerbern durchaus Ressourcen und stellt außerdem einen SPOF dar. Bei PVE kann jeder Node nach Bedarf "Alles" verwalten, solange quorum im Cluster ist. Echtes Failover hingegen oder das automatische Verschieben von Ressourcen braucht einen HA-Cluster, der bei PVE aus mindestens drei Nodes besteht. Insgesamt sind 16 Nodes pro Cluster möglich - so oder so. Ein im Proxmox-WIKI propagiertes HA-Cluster-Setup mit zwei Nodes und DRDB wird von Proxmox nicht supportet, weil DRBD nicht vom Poxmox Cluster Stack gemanagt wird. Der ist übrigens (noch) identisch mit dem auf CMAN basierenden Red-Hat-Cluster-Stack, bei dem CMAN quasi als Plug-In für Corosync fungiert.
Unterstützte Storage-Systeme
Auch in puncto Storage-Anbindung ist PVE gut ausgestattet. Neben lokal am Host-System angeschlossenen Festplatten unterstützt PVE auch lokale Verzeichnisse im Host-Dateisystem, LVM, NFS-Freigaben (zum Beispiel auf einem NAS), iSCSI-Storage-Arrays, RDB sowie den Zugriff auf die verteilten Objektspeicher GlusterFS und Ceph. Mit Version 3.4 kommt zudem ein ZFS-Plug-In hinzu (#verlinken mit Absatz ZFS-Support). Während das GlusterFS-Plugin seit der Version 3.1 implementiert ist, kamen der Ceph-Support sowie Open vSwitch-Unterstützung mit Version 3.2, ebenso wie die Integration von Spice.
PVE-Admins können seitdem das hochskalierbare, verteilte Datei- und Objekt-Speichersystem Ceph direkt auf PVE-Hosts aufsetzen. Der Ceph-Objektspeicher lässt sich dann in Form virtueller Festplatten, den Ceph RADOS Block Devices (Ceph RBD) ansprechen. Die Administration erfolgt ebenfalls über das Web-Interface. Übrigens sichert PVE Cluster-Konfigurationsdateien via Corosync im Proxmox-eigenen Shared-Filesystem (pmxcfs), das direkt über den Cluster repliziert wird. Zwar ist pmxcfs relativ langsam, aber es dient nur dem Replizieren der relativ kleinen Cluster-Konfigurationsdateien und wird zudem im RAM gecacht, was diesen Nachteil aufwiegt. Pmxcfs ist dafür aber extrem sicher und komfortabel.
ZFS-Support
Zu den wichtigsten Neuerungen der PVE-Version 3.4 gehört darüber hinaus die Unterstützung des ZFS-File-Systems, nebst zugehörigem ZFS Storage Plugin. Das Open-Source-Dateisystem ZFS kombiniert File-System und LVM. Es erschließt sehr hohe Speicherkapazitäten und lässt sich im Verlauf der Proxmox-3-4-ISO-Installation neben ext3 und ext4 als bevorzugtes Root-Dateisystem auswählen. Für OpenVZ empfiehlt der Hersteller allerdings weiterhin ext3. PVE 3.4 unterstützt alle ZFS-RAID-Level 0, 1 und 10 sowie RAIDZ-1 bis -3. Nutzer können ZFS in PVE wahlweise als lokales Verzeichnis oder als zvol-Block-Storage nutzen. Das ZFS-Storage-Plugin unterstützt Live Snapshots und Rollbacks. Auch platz- und ressourcenschonend verlinkte Templates-Vorlagen und -Klone sind möglich.
Weitere Neuerungen in PVE 3.4
Weitere Neuerungen sind neben der Aktualisierung der Basisdistribution auf Debian Wheezy 7.8 die Hotplug-Unterstützung und NUMA-Support (Non-Uniform Memory Access) auf Multiprozessorsystemen.
Darüber hinaus haben die Entwickler für die neue Version unter anderem eine Reihe von Anwenderwünschen umgesetzt und einige GUI-Verbesserungen hinzugefügt. So gibt es jetzt GUI-Funktionen für Start/Stop aller VMs, die Migration aller VMs sowie eine Trennfunktion für virtuelle NICs. Neu in PVE 3.4 ist auch die Hotplug-Unterstützung. So lassen sich virtuelle Festplatten, Netzwerkkarten oder USB-Geräte im laufenden Betrieb installieren oder tauschen. Bei virtuellen Hardwarekomponenten, die Hotplug nicht können, erscheint mit PVE 3.4 in der Weboberfläche der Hinweis "anhängige Änderungen".
Fazit
Proxmox Virtual Envrionment ist zwar unter Admins kein Geheimtipp mehr, genießt aber noch nicht die mediale Aufmerksamkeit, die der quelloffenen Virtualisierungslösung etwa im Vergleich mit Red Hat Enterprise Virtualization rein funktional zukäme: PVE erschließt viele Funktionen eines typischen KVM-Virtualisierungs-Stacks sowie des Linux-HA-Cluster-Stacks in einem ansprechenden Web-Interface. Obwohl die Leistungsdaten des KVM-Hypervisors zweifelsohne im Enterprise-Segment spielen, empfiehlt sich PVE 3.4 vor allem aus Kostengründen für KMUs oder zur Evaluierung der KVM-Virtualisierung im Allgemeinen. Trotz vieler Enterprise-Features wie der Live-Migration von VMs und einer ausgereiften Snapshots-Funktion kann PVE noch nicht ganz mit den Markführern wie VMware vSphere mithalten, unter anderem auch, weil noch nicht alles, was technisch möglich ist, ins Web-Interface integriert wurde. (hal)