Grundlagen und Neuerungen

Open-Source-Virtualisierung mit Proxmox Virtual Envrionment 3.4

04.06.2015 von Thomas Drilling
Die quelloffene Virtualisierungsmanagement-Plattform Proxmox Virtual Envrionment ist in einer neuen Version 3.4 erschienen. Mit Features wie der Live-Migration von VMs und einer ausgereiften Snapshots-Funktion hat die Enterprise-Virtualisierungslösung deutlich an Reife gewonnen.

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.

Proxmox - Funktionen
Proxmox Virtual Envrionment - Auslastung
Der Reiter „Übersicht“ des jeweiligen Nodes liefert Informationen zum Hypervisor und eine grafische Visualisierung der CPU-Auslastung.
Proxmox Virtual Envrionment - Authentifizierung
PVE unterstützt verschiedene Authentifizierungs-Backends. Neben einer lokalen Authentifizierung gegen den jeweilige PVE-Node optional auch eine zentrale verzeichnisdienstbasierte Authentifizierung via AD oder LDAP.
Proxmox Virtual Envrionment - Rollen
Das implementierte Rollen-Modell erlaubt ein komfortables Steuern von Berechtigungen und Zuweisen von Ressourcen.
Proxmox Virtual Envrionment - Storage
Wurde zuvor ein zentraler Speicher auf Basis der unterstützten Storage-Backends angelegt, lassen sich Inhalte wie etwa ISO-Dateien komfortabel über das Webinterface hochladen.
Proxmox Virtual Envrionment - Storage hochladen
PVE unterstützt als Storages neben lokalen Festplatten oder einem Verzeichnis im Host-Dateisystem auch NFS-Freigaben, iSCI-Speicher-Arrays und verteilte Objektspeicher wie GlusterFS oder Ceph und mit Version 3.4 auch ZFS.

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.

Proxmox - Setup
Proxmox Virtual Envrionment
Zum Erstellen virtueller Maschinen steht ein Assistent zur Verfügung, der im ersten Schritt das Auswählen des Gastsystems verlangt.
Proxmox Virtual Envrionment
Wurde zuvor ein zentraler ISO-Store angelegt, kann die Gast-OS-Installation bequem per ISO-Image erfolgen und nicht über ein virtuelles CD-Laufwerk und einen physischen Datenträger.
Proxmox Virtual Envrionment
Beim virtuellen Festplattenlaufwerk empfiehlt sich meist der paravirtualisierte Bus-Typ virto, statt IDE (Default).
Proxmox Virtual Envrionment
Per Default übernimmt der Assistent die CPU-Einstellungen der Host-CPU, es sind aber auch individuelle Setups möglich.
Proxmox Virtual Envrionment
An virtuellen NICs stehen neben dem in der Regel zu bevorzugenden paravirtualisierten virtion-Device auch zwei synthetische Klassiker, Intel E1000 und Realtec RTL8139 zur Verfügung.
Proxmox Virtual Envrionment
Proxmox Virtual Envrionment
Zum Abschluss der Konfiguration der virtuellen Maschinen zeigt der Assistent alle gewählten Einstellungen zur Kontrolle (oder Korrektur mit „Zurück“) noch einmal an.
Proxmox Virtual Envrionment

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)