Proxmox


Proxmox Virtualisierungsumgebung 4.x auf PCEngines APU2C2 / APU2C4

Bei diesem Beitrag handelt es sich um eine Aktualisierung des Artikels „Proxmox Virtualisierungsumgebung auf PCEngines APU“ aus dem Jahr 2014. Der Aufbau entspricht dabei dem bisherigen Artikel. Wo notwendig wurden Anpassungen an der eingesetzten Software vorgenommen sowie alle notwendigen Repositorys angepasst.

Was ist Proxmox?

Am besten lässt sich dies gleich mit einem Auszug von der Proxmox Webseite erklären:

Was ist Proxmox

Normalerweise wird Proxmox direkt ab der bereitgestellten ISO-Datei installiert. Da diese jedoch eine grafische Oberfläche benötigt, welche auf der APU2 nicht zur Verfügung steht muss für die Installation der Umweg über eine klassiches Debian Setup mit anschliessender Installation von Proxmox aus deren Repository genommen werden.

Benötigte Software / Hardware

  • PC Engine APU2C2 oder PC Engines APU2C4
  • mSATA SSD mit mindestens 16GB Kapazität (wenn die VMs auf einem externen Speicher liegen, ansonsten empfiehlt sich eine deutlich grössere Kapazität)
  • Angepasstes Debian 8 ISO für die Installation auf der APU2
  • USB Stick mit mindestens 4GB Kapazität
  • ImageUSB
  • Putty

Debian 8 auf der APU installieren

Der original Debian-Installer lässt leider keine Installation via Serieller Konsole zu. Daher habe ich auf Basis der Scripts von Stanislav Sinyagin ein für die Bedürfnisse von Proxmox angepasstes Installations-ISO erstellt (siehe Spezielles Debian Installations-Image). Dieses kann mit dem SUSE ImageWriter auf einen beliebigen USB Stick mit mindestens 4 GB Kapazität geladen werden. Die angepassten Profil-Dateien für alle die selbst ein entsprechendes Image nach der Anleitung von Stanlislav Sinyagin machen möchten können hier heruntergeladen werden.

USB Stick für die Installation vorbereiten

Zuerst ImageUSB und das angepasste Installations-Image herunterladen. Danach einen leeren USB Stick mit entsprechender Kapazität am System anschliessen und ImageUSB starten. In Step 1 den gewünschtne USB Stick wählen (lieber doppelt kontrollieren…), in Step 2 „Write image to USB Drive“ wählen, in Step 3 das zuvor heruntergeladene ISO auswählen und mit Klick auf Write auf den USB Stick übertragen.ImageUSB ImageUSB ImageUSBDie beiden Warnungen am Anfang können jeweils mit YES bestätigt werden. Nach Abschluss des Vorgangs sollte eine „Imaging Completed!“ Meldung erscheinen. Diese ebenfalls mit OK besättigne und ImageUSB mit einem Klick auf Exit beenden.

Installation auf der APU2 starten

Die Boot-Reihenfolge der APU sollte so eingestellt sein, dass zuerst ab mSATA SSD und als zweite Option ab USB Stick gestartet wird.Den USB Stick an die APU anschliessen, APU starten und im Boot-Prompt mittels F12 USB als Startoption auswählen. Die Installation erfolgt vollautomatisch. Die Fehlermeldung betreffend dem „Invalid Videomode“ kann ignoriert werden, die Installation startet automatisch nach wenigen Sekunden.Die Installation erfordert eine Internetverbindung weshalb ein Netzwerkkabel an der ersten Buchse (neben dem seriellen Anschluss) angeschlossen sein muss. Im Normalfall dauert die Installation ca. 10 Minuten in Abhängigkeit von der zur Verfügung stehenden Internet-Geschwindigkeit.ACHTUNG: Der Installer installiert automatisch Debian 8.5 amd64 auf die interne mSATA SSD! Alle Daten auf der SSD werden dabei automatisch gelöscht.

Wenn die Installation abgeschlossen ist wird die APU automatisch heruntergefahren.

Installation abgeschlossen

Dies erkennt man am „reboot: System halted“ welches sich in der untersten Zeile versteckt… Der USB Stick kann nun entfernt und die APU wieder gestartet werden. Dazu am besten das Stromkabel entfernen und nach ein paar Sekunden wieder anschliessen. Im Anschluss startet das frisch installierte Debian ab SSD.

Debian auf der APU

Bei der Installation handelt es sich um eine Standard Debian 8.5 amd64 Minimal-Installation mit wenigen Anpassungen / Optimierungen für den Betrieb einer SSD. Bei der Installation wird automatisch der Midnight Commander sowie SSH und htop eingerichtet. Dies sind aus meiner Sicht unverzichtbare Helfer im Alltag :)Folgende Konfiguration ist nach der Installation eingerichtet:Root-Kennwort: pcengines
IP-Adresse: Automatisch per DHCP
Hostname: apuAnpassen der SSHD Konfiguration

In Debian 8 (Jessie) ist aus Sicherheitsgründen kein SSH Login mit dem Benutzer root mehr möglich. Dies kann jedoch mit einer kleinen Anpassung der Datei /etc/ssh/sshd_config geändert werden. Die Datei mit einem Editor der freien Wahl (ich nutze dabei meist nano oder den im Midnight Commander integrierten Editor) öffnen und folgende Anpassung vornehmen:

VON:
PermitRootLogin without-password

AUF:
PermitRootLogin yes

Danach den SSH Dienst mit dem Kommando service sshd restart neu starten. Ab diesem Zeitpunkt ist es wieder möglich, sich mittels root Benutzer auf die APU zu verbinden.

Letzte Arbeiten vor der Proxmox Installation

Damit die Installation von Proxmox richtig durchläuft müssen nun noch einige Anpassungen an der frisch installierten APU vorgenommen werden:

  • Feste IP Adresse für eth0 vergeben (siehe hier)
  • Anpassen des Hostnamens (siehe hier)
  • Sicherstellen, dass der Hostname richtig aufgelöst wird (siehe hier unter „Add an /etc/hosts entry for your IP address“)
  • Kennwort des root Benutzers anpassen (mittels passwd root)

Danach die APU mittels dem Befehl reboot neu zu starten.

WICHTIG: Wenn diese Anpassungen nicht sauber erledigt werden, kann die Installation von Proxmox nicht erfolgreich abgeschlossen werden. Sollte bei der Installation von Proxmox ein Fehler auftreten dann zuerst noch einmal die zuvor genannten Schritte überprüfen. Dann die APU neu starten und mittels dem Befehl apt-get upgrade die Installation nochmals anstossen.

Installation von Proxmox

Die Installation von Proxmox entspricht grundsätzlich der offiziellen Anleitung für die Installation von Proxmox auf einem bestehenden Debian System -> http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Jessie

Vorbereiten von APT:

Die folgenden Befehle fügen das notwendige Repository zur hinzu, holen den notwendigen Repository-Schlüssel und aktualisieren im Anschluss die zur Verfügung stehenden Pakete.

echo "deb http://download.proxmox.com/debian jessie pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
apt-get update && apt-get dist-upgrade

Während dem dist-upgrade werden möglicherweise ein oder mehrere Dialoge mit Fragen zu bestehenden Konfigurationsdateien auftauchen. Dort jeweils „keep“ auswählen und mit OK bestätigen.

Proxmox installieren

Danach kann Proxmox mit folgendem Kommando installiert werden:

apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi systemd-sysv libsocket-perl

Während der Installation erscheint ein Auswahl Dialog für die Postfix Konfiguration. Dabei entweder Internet Site (Mail wird direkt versendet) oder Local only (kein Mail wird versendet) auswählen und mit OK bestätigen.

Die Installation dauert je nach zur Verfügung stehender Internet Geschwindigkeit ca. 10-20 Minuten. Wenn die Installation ohne Fehler durchgelaufen ist die APU erneut mittels dem Befehl reboot neu starten.

Enterprise Repository deaktivieren

Nach der Installation der Proxmox VE Packages empfiehlt es sich in der Datei  /etc/apt/sources.list.d/pve-enterprise.list das neue Repository für die Enterprise Updates zu deaktivieren:

#Repository ist aktiv:
deb https://enterprise.proxmox.com/debian jessie pve-enterprise
 
#Repository ist ausgeschaltet:
#deb https://enterprise.proxmox.com/debian jessie pve-enterprise

Bleibt das repository aktiv kann es bei einem Update-Versuch zu Fehler kommen da keine gültige Enterprise-Subscription verfügbar ist.

Bei Bedarf: pvetest Repository aktivieren

Um an die jeweils neusten Versionen von Proxmox zu gelangen kann das pvetest Repository aktiviert werden. Dazu einmalig folgenden Befehl ausführen:

echo "deb http://download.proxmox.com/debian jessie pvetest" > /etc/apt/sources.list.d/pve-test.list
ACHTUNG: Das pvetest Repository ist lediglich für Testzwecke und nicht für die produktive Umgebung vorgesehen. Ohne Proxmox-Subscription ist es jedoch die einzige Variante um schnell an Updates zu gelangen. Für die produktive Umgebung empfiehlt es sich unbedingt, zumindest die COMMUNITY Subscription zu kaufen. Da die APU2 nur ein CPU hat, bewegen sich die Kosten dabei im akzeptablen Bereich.

Proxmox auf der PC Engines APU2

Wenn alles reibungslos klappt steht in weniger als 30 Minuten eine voll funktionsfähige Virtualisierungslösung auf Basis des neusten Proxmox-Releases – und erst noch bestehend aus freier Software – bereit für den Einsatz.

Proxmox LoginProxmox Summary

Viel Spass!

Die unproblematische Installation von Proxmox machen die APU2 zu einer optimalen Virtualisierungslösung für kleine Projekte. Natürlich ist die APU2 kein starker Leistungsbolide – je nach Einsatzzweck aber genau das richtige – und das erst noch auf Basis von freier Software.

Rückmeldungen, konstruktive Kritik oder auch Anregungen gehören wie immer in die Kommentare. Nun wünsche ich viel Spass mit der Proxmox-APU. :)


VirtIO NIC unter Windows steht auf „No Internet Access“

Seit längerem setzte ich im Bereich der Vitrtualisierung gerne auf Proxmox, eine KVM basierte Lösung. Für Windows basierte Betriebssysteme setze ich hierbei normalerweise auf die Intel E1000 Netzwerkkarte da diese von Haus aus funktioniert. Wer mehr Performance will (zum Beispiel infolge eines 10GB Backbones) der greift besser zur weitaus performanteren VirtIO Netzwerkkarte.

Nach der Installation des Treibers wird die Netzwerkkarte auch problemlos erkannt und scheint auf den ersten Blick einwandfrei zu funktionieren.

Ein ganz unschöner Fehler hat sich jedoch scheinbar in den neueren VirtIO Treiber (jedenfalls in Kombination mit Windows Server 2012 R2) eingeschlichen. Das Netzwerk scheint grundsätzlich da zu sein, alle normalen Netzwerktests (PING, Tracert…) funktionieren und trotzdem ist kein Internet oder anderweitiger Netzwerkverkehr möglich.

Der Fehler scheint mit der TCP Offload Funktion zusammenzuhängen. Nachdem diese entsprechend deaktiviert wurden, funktioniert der Netzwerkzugriff wieder einwandfrei.

2015-08-16 18_14_06


Proxmox Virtualisierungsumgebung auf PCEngines APU

Vor kurzem habe ich einen Artikel veröffentlicht, wie man eine ESXi Virtualisierungsumgebung auf der PCEngines APU zum laufen bekommt.

Eine alternative Virtualisierungsumgebung, welche im Gegensatz zu VMWare ESXi komplett auf Open-Source basiert und keine Zusatzkosten verursacht (ausser man möchte gerne eine Subscription lösen) nennt sich Proxmox.

2014-06-15 16_08_38

Proxmox Virtual Einvironment

Proxmox ist eine auf Debian basierte Virtualisierungsumgebung welche sowohl mit Windows- wie auch mit Linux-Gastsystemen klar kommt und mit einigen Nettigkeiten im Bereich der Verwaltung aufwartet.

Benötigte Software / Hardware

  • PC Engines APU1c oder PC Engines APU1c4
  • mSATA SSD mit mindestens 16GB Kapazität (wenn die VMs auf einem externen Speicher liegen, ansonsten empfiehlt sich 32GB oder 64GB)
  • Spezielles Debian Installation-Image
  • USB Stick mit mindestens 1GB Speicherplatz
  • SUSE ImageWriter
  • Putty

Debian installieren

Der original Debian-Installer lässt leider keine Installation via Serieller Konsole zu. Daher habe ich auf Basis der Scripts von Stanislav Sinyagin ein für die Bedürfnisse von Proxmox angepasstes Installations-ISO erstellt (siehe Spezielles Debian Installations-Image). Dieses kann mit dem SUSE ImageWriter auf einen beliebigen USB Stick mit mindestens 1 GB Kapazität geladen werden. Die angepassten Profil-Dateien für alle die selbst ein entsprechendes Image nach der Anleitung von Stanlislav Sinyagin machen möchten können hier heruntergeladen werden.

USB Stick für die Installation erstellen

Dazu das ISO herunterladen und die Endung von .iso auf .raw umbenennen. Anschliessend den ImageWriter starten, gewünschtes Image sowie Ziel wählen und das Image auf den USB Stick übertragen.

SUSE Image Writer

ACHTUNG: Der USB Stick wird dabei komplett überschrieben. Es sollten sich also keine benötigten Daten auf dem USB Stick befinden.

Installation starten

Die Boot-Reihenfolge der APU sollte so eingestellt sein, dass zuerst ab mSATA SSD und als zweite Option ab USB Stick gestartet wird.

Den USB Stick an die APU anschliessen, APU starten und im Boot-Prompt mittels F12 USB als Startoption auswählen. Die Installation erfolgt vollautomatisch. Die Fehlermeldung betreffend dem „Invalid Videomode“ kann ignoriert werden, die Installation startet automatisch nach den erwähnten 30 Sekunden.  Die Installation erfordert eine Internetverbindung weshalb ein Netzwerkkabel an der ersten Buchse (neben dem seriellen Anschluss) angeschlossen sein muss. Die Installation dauert ca. 10 Minuten in Abhängigkeit von der Internet-Geschwindigkeit.

ACHTUNG: Der Installer installiert automatisch Debian 7.5 amd64 auf die interne mSATA SSD! Alle Daten auf der SSD werden zuvor gelöscht.

Nach der Installation startet die APU automatisch neu und Debian ist einsatzbereit.

Bei der Installation handelt es sich um eine Standard Debian 7.5 amd64 Minimal-Installation mit wenigen Anpassungen / Optimierungen für den Betrieb einer SSD. Bei der Installation wird automatisch der Midnight Commander sowie SSH eingerichtet.

Folgende Konfiguration ist nach der Installation gegeben:
Root-Kennwort: pcengines
IP-Adresse: DHCP
Hostname: apu

Nach dem ersten Start

Nach dem Start kann sofort via SSH auf die neue Installation zugegriffen werden. Als erstes sollte man eine feste IP Adresse vergeben und das Kennwort (mittels Befehl passwd) ändern.

Installation von Proxmox

Die Installation von Proxmox entspricht grundsätzlich der offiziellen Anleitung zur Installation von Proxmox auf einem Debian Wheezy System -> http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Wheezy

Einige Tipps…

Nachfolgend ein paar Abweichungen von der offiziellen Anleitung damit direkt die neuste Version installiert wird plus ein paar Stolpersteine im Umgang mit der APU umgangen werden können.

Direkt die neuste Version installieren:

Um direkt die neuste Proxmox-Version (3.2.x) zu erhalten kann anstelle des in der Anleitung erwähnten Repositorys  :

# PVE repository provided by proxmox.com, only for installation (this repo will stay on 3.1)
deb http://download.proxmox.com/debian wheezy pve

direkt das No-Subscription-Repository verwendet werden:

# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use
deb http://download.proxmox.com/debian wheezy pve-no-subscription

Durch das veränderte Repository muss der Befehl für die Installation des Proxmox VE Kernels angepasst werden.

# Befehl für die Installation nach offizieller Anleitung (Alte Version):
apt-get install pve-firmware pve-kernel-2.6.32-26-pve
apt-get install pve-headers-2.6.32-26-pve

# Befehl für die Installation der neusten Version aus dem No-Subscription Repo (Neue Version):
apt-get install pve-firmware pve-kernel-2.6.32-29-pve
apt-get install pve-headers-2.6.32-29-pve

Beim anschliessenden Neustart gemäss Anleitung ist zu beachten, dass via serieller Konsole die Pfeiltasten unter Umständne nicht wie gewünscht funktionieren. Um den richtigen Kernel auszuwählen (den neu installierten PVE Kernel) kann mit der Taste v und ^ der richtige Kernel ausgewählt werden.

Deaktivieren des Enterprise-Repositorys

Nach der Installation der Proxmox VE Packages empfiehlt es sich in der Datei  /etc/apt/sources.list.d/pve-enterprise.list das neue Repository für die Enterprise Updates zu deaktivieren:

Repository ist aktiv:
deb https://enterprise.proxmox.com/debian wheezy pve-enterprise

Repository ist ausgeschaltet:
#deb https://enterprise.proxmox.com/debian wheezy pve-enterprise

Bleibt das repository aktiv kann es bei einem Update-Versuch zu Fehler kommen da keine gültige Enterprise-Subscription verfügbar ist.

 

Proxmox auf der PC Engines APU

Wenn alles klappt hat man in weniger als 30 Minuten eine voll funktionsfähige Virtualisierungsumgebung auf Basis von freier Software.

Im Vergleich zu ESXi sparsamer Ressourcenverbrauch Proxmox Konsole auf der APU

Voll funktionsfähige Proxmox Installation auf der APU Proxmox 3.2 auf der APU - die Paketversionen

Im Vergleich zu VMWare ESXi läuft Proxmox gefühlt schneller und ressourcensparender auf der APU. Gerade der RAM-Verbrauch hat mich äusserst positiv überrascht. Das System reagiert schnell auf Eingaben und die Performance der Gastsysteme reicht für die meisten Anwendungen einwandfrei aus.


Proxmox self-signed SSL Zertifikat ersetzen

Nach langem hin und her habe ich mich heute entschieden, mein Proxmox doch per „gültigem“ SSL Zertifikat zu sichern. Obwohl auch das selbst signierte Zertifikat seine Aufgabe (das Sichern der Verbindung) erfüllt, wollte ich den unschönen Hinweis jeweils beim Aufrufen der Seite abschaffen.

Nach kurzem prüfen der Konfigurationsdatei des für das Webinterface verantwolichen Apache 2 (unter /etc/apache2/sites-available/pve.conf) waren die verantwortlichen Zertifikats-Dateien schnell gefunden:

Private-Key --> /etc/pve/pve-ssl.key
Zertifikat --> /etc/pve/pve-ssl.pem

Ersetzt man diese beiden Dateien und startet den Apache2 Dienst neu, ist das Webinterface mit dem neuen Zertifikat gesichert. Um den automatischen Start des Dienstes zu ermöglichen muss der Private Key entschlüsselt hinterlegt werden da so Kennwortabfrage beim Start des Apache2 Dienstes entfällt. Wird der Key unabsichtlich verschlüsselt hinterlegt wird der Dienst beim Systemstart nicht korrekt geladen und die Benutzung der Weboberfläche ist nicht möglich.

Für alle Fälle empfiehlt es sich, die beiden automatisch generierten Dateien (self-signed) nicht gleich zu löschen!


Proxmox Virtual Environment

Der Hype rund um Virtualisierung von Systemen zur besseren Ausnutzung der Hardware oder einfacheren Verwaltung mehrerer Systeme hält nach wie vor an! Neben den bekanntesten Vertreter in dieser Welt (VMWare, Citrix XenServer oder Microsoft Hyper-V) gibt es eine ganze Reihe von Anbietern welche nischenprodukte zur Teil- oder Vollvirtualisierung anbieten. Auf der Suche nach einem Leistungsfähigen System welches wenig Systemressourcen für die Eigenverwaltung benötigt und von Vorteil noch kostenlos ist bin ich auf die Lösung von Proxmox Virtual Environment gestossen.


Die Software basiert komplett auf frei verfügbaren Komponenten und bietet einige äusserst interessante Funktionen welche normalerweise nur bei kostenpflichtigen Lösungen zur Verfügung stehen.

Dazu zähle ich:

  • Sichern der virtuellen Maschine im Betrieb
  • Einfaches online verwalten mehrere Server (Cluster Betrieb)
  • Verschieben der virtuellen Maschinen im Betrieb (Cluster Betrieb)
  • Breiter Support unterstützter Guest-Systeme ohne Installation zusätzlicher Software

Verwaltung / Web-Interface

Proxmox lässt sich komplett per Browser verwalten. Das Webinterface ist einfach gehalten, beinhaltet jedoch alle für den Betrieb notwendigen Informationen.

Proxmox unterstützt sowohl OpenVZ Virtualisierung wie auch KVM Virtualisierung. Auf meinem Server verwende ich primär die KVM Virtualisierung da diese mehr Betriebssysteme unterstützt.

Die Angaben in der VM Übersicht zeigen jeweils den effektiven RAM Verbrauch der jeweiligen VM. Die angezeigte Disk-Kapazität entspricht nur bedingt (je nach Typ der VM) der Realität. Proxmox unterstützt als Disk-Format das sogenannte qcow2 welches ein „wachsendes“ Disk Medium generiert. Genau genommen verbrauchen alle VMs zusammengezählt mehr Festplattenspeicher als der physische Server zur Verfügung stellt. Dies jedoch nur wenn alle VMs den zur Verfügung gestellten Disk Speicherplatz vollumfänglich ausnutzen was unwahrscheinlich ist. Trotzdem sollte man mit der Overallocation von Speicherplatz sorfgfälltig umgehen und stehts die Auslastung des Datenvolumes im Auge behalten.

VNC als Konsole / QEMU

Für die Konsole verwendet Proxmox eine vollständig integrierte VNC Installation. Dadurch wird auf dem jeweiligen Client lediglich eine installierte Java JRE vorausgesetzt. Die Bediengeschwindigkeit ist sehr flüssig und bei angemessener Netzwerkbandbreite lassen sich problemlos mehrere VM-Konsolen gleichzeitig bearbeiten.

Verwendet man die KVM / QEMU Virtualisierung hat man direkt aus dem Webinterface heraus die Möglichkeit direkt auf den QEMU Monitor (Task) der jeweiligen VM zuzugreifen. Dies sollten jedoch nur Anwender tun, welche etwas von QEMU verstehen da sich falsche Eingaben fatal auf die jeweilige VM auswirken können.

Fazit

Nach diversen Tests verschiedener Virtualisierungslösungen auf meinem Server habe ich mich für den künftigen Einsatz von Proxmox entschieden. Dies aus den unten genannten Gründen.

  • Durchschaubare Technologie / schnelle Installation
  • Unkomplizierte Konfiguration
  • Memory sharing / Disk overallocation
  • Backup / Recovery
  • Breites Spektrum an unterstützten Storage Systeme

In meinen Test (und teilweise auch Produktiv-) Umgebungen habe ich auch Citrix Xenserver (zu kompliziert, nicht für Standalone-Virtualisierung angedacht), Microsoft Hyper-V (Nicht kostenfrei, proprietäre Technologie und mittelmässiger Support fremder Betriebssysteme) sowie VMWare ESXi (unbrauchbares Backup-Konzept, Nur mit kostenpflichtigem Zusatz sinnvoll verwaltbar) eingesetzt. Keines der genannten Systeme bot mir jedoch die Einfachheit und Leistungsfähigkeit wie Proxmox.

Ich bin gespannt was die nächste Version von Proxmox bringen wird. Glaubt man der Roadmap dürften noch einige interessante Zusatzfunktionen auf uns zukommen.

Mehr Informationen

Sind auf dem Wiki von Proxmox zu finden –> http://pve.proxmox.com