Proxmox Virtual Environment – PVE

,

Proxmox Virtual Environment (kurz PVE) ist eine auf Debian-Linux und KVM basierende Virtualisierungs-Plattform zum Betrieb von Gast-Betriebssystemen. Proxmox ist frei verfügbar – kommerzieller Support kann über den Hersteller (Fa. Proxmox Server Solutions GmbH in Wien) erworben werden.

Proxmox benötigt, um im Verbund (Cluster) stabil zu laufen mindestens 3 physische Server.

Homepage von Proxmox: https://www.proxmox.com/de/

Vorteile von Proxmox:

Gegenüber Hyper-V, VMWare, Openstack oder Cloudstack hat Proxmox einige Vorteile auf Lager:

  • Proxmox läuft auf fast jeder x86-Hardware
  • Die Installation ist in weniger als 5 Minuten pro Host erledigt
  • Proxmox kann ab 3 Servern Hochverfügbarkeit abbilden.
  • Es fallen keine Lizenzkosten an da Proxmox OpenSource ist und der Hypervisor auf KVM basiert

Gegenüber den bekannten Cloud-Plattformen wie VSphere, Openstack oder Cloudstack hat Proxmox noch den Vorteil, dass die Verwaltungs-GUI auf den Virtualisierungs-Hosts mit läuft. Somit sind keine zusätzlichen Hosts für Administration oder das Management des Clusters notwendig

Einschränkungen von Proxmox:

Proxmox verwendet für das Management des Clusters corosync. Corosync kann maximal 32 Knoten verwalten bzw. steuern. D.h. die maximale Anzahl an Hosts für Virtualisierung und Storage beträgt bei einem Proxmox Cluster 32 physische Server.

Installation von Proxmox

Bevor Sie Proxmox nutzen können, sollten Sie sich das aktuelle ISO-Image bzw. den ISO-Installer unter https://www.proxmox.com/de/downloads/category/iso-images-pve herunterladen.

Es empfiehlt sich das Image entweder auf eine DVD oder besser auf einen USB-Stick (min. 1 GB groß) zu ziehen. Für das Aufspielen auf einen Stick eignet sich z.B. die Software Etcher. (Download: https://etcher.io/)

Voraussetzungen / Mindest-Anforderungen

Um Proxmox stabil zu betreiben, sollten folgende Anforderungen erfüllt sein

  • 3 Hosts bzw. physikalische Server
  • Zentrale Storage (wenn VMs live verschoben werden sollen) – etwa Ceph oder NFS
  • Auf den Hosts, die Virtualisierung anbieten, müssen in der CPU zur Virtualisierung die VT Erweiterung aktiviert sein.

Wichtig: Wenn im laufenden Betrieb später virtuelle Maschinen live verschoben werden sollen, muss die Benennung der Netzwerk-Interfaces (NIC) auf den Hosts gleich sein.

Das Standard-Interface für den internen LAN-Anschluss heißt „vmbr0“. Ein externes Interface sollte „vmbr1“ benannt werden.

Sofern Disk-Images von virtuellen Maschinen zentral – z.B. über Ceph – abgespeichert werden, so sollten 10G-Switche eingesetzt werden. Die an das 10G-Netzwerk angeschlossenen Proxmox-Hosts benötigen selbstverständlich mindestens einen 10G-Netzwerkanschluss.

Vorbereitung:

Hostnamen und IP-Adressen der Proxmox-Hosts lassen sich nachträglich nur schwer ändern. Bevor Sie mit der Installation starten, sollten Sie die Hostname und die (internen) IP-Adressen der zu installierenden Hosts festlegen:

HostnameIP-AdresseNetzmaskePasswort
pvehost0110.20.30.1/24
Pvehost0210.20.30.2/24
Pvehost0310.20.30.3/24

 

Proxmox

Begrüßungsbildschirm von Proxmox

Installation des ersten Servers

Booten Sie den ersten Server von der DVD bzw. ihrem USB-Stick. Sofern das ISO-Image korrekt erkannt wurde, begrüßt Sie Proxmox mit dem folgenden Bildschirm:

Klicken Sie auf „Install Proxmox VE“. Im nächsten Screen müssen Sie lediglich die Lizenzbedingungen von Proxmox bestätigen. Klicken Sie anschließend rechts unten auf „Next“.

Auswahl der Boot-Partition

Auf der folgenden Seite wählen Sie bei „Target Harddisk“ ihre Boot-Partition aus, auf der Proxmox gleich installiert wird. Bei einer Standard-Installation auf physischer Hardware wird die erste Festplatte in der Regel „/dev/sda“ heißen.

Hinweis: Die Festplatte wird vor der Installation partitioniert, d.h. alle Daten auf der Partition werden gelöscht.

 

Länder- und Tastaturauswhl

Nachfolgend wählen Sie das Land und das Tastaturlayout für Ihren Server und klicken wieder auf „Next“.

 

In der nächsten Maske setzen Sie bei (1) das Passwort für den root-Account fest und tragen unter (2) eine E-Mail Adresse ein.

Passwort und Email-Adresse

Hinweis: Die E-Mail muss valide sein. Fake-Emails funktionieren nicht.

 

Weitere Festlegungen

In der letzten Maske legen Sie unter (1) das interne Netzwerk-Interface fest.

Hinweis: Da Server in der Regel mehrere NICs haben, prüfen Sie bitte vorher, welcher NIC zu welchem Anschluss gehört

Unter (2) tragen Sie den vollständigen Hostnamen (fqdn, inkl. Domain) ein. In (3) kommt die IP-Adresse rein und darunter die Netzmaske, der Gateway und DNS-Server.

Wenn Sie anschließend auf „Next“ klicken, startet die eigentliche Installation von Proxmox. Der Installationsvorgang von Proxmox dauert je nach Hardware zwischen 3 und 5 Minuten pro Host.

Sobald der Installationsvorgang erfolgreich beendet wurde, werden Sie aufgefordert, den neu installierten Host zu rebooten. Entfernen Sie den USB-Stick bzw. die DVD und rebooten Sie den Host.

Sie können sich für die meisten nachfolgenden Aufgaben nun über das Web mit ihrem neuen Host verbinden: https://<IP>:8006/

Erstellung der Cluster-Config auf dem ersten Host

Damit Sie später einen weiteren, bzw. mindestens zwei weitere Hosts in ihr Proxmox-Cluster aufnehmen können, müssen Sie zunächst eine Cluster-Konfiguration erstellen. Loggen Sie sich dazu auf dem gerade installierten Host ein.

Wichtig: Diese Einrichtung des Clusters können Sie nur genau einmal machen.

(Entweder über ssh oder die Web-GUI -> Server (links) -> Shell (rechts)

Screenshot des einzugebenden Kommandos

Geben Sie folgendes Kommando ein:

1
root@pvehost01:  pvecm create &lt;clustername&gt; # ersetzen Sie “clustername” durch den Namen ihres Clusters.

 

Prüfen Sie den Status des neu erstellten Clusters mit dem Befehl:

root@pvehost01:~# pvecm status

 

Die Ausgabe sollte in etwa ähnlich wie das Folgende aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Quorum information
------------------
Date:             Wed Jan 17 17:50:12 2018
Quorum provider:  corosync_votequorum
Nodes:            1
Node ID:          0x00000001
Ring ID:          1/4
Quorate:          Yes
Votequorum information
----------------------
Expected votes:   1
Highest expected: 1
Total votes:      1
Quorum:           1
Flags:            Quorate

Membership information
----------------------
Nodeid      Votes Name
0x00000001          1 10.20.30.1 (local)

Installation weiterer Server

Jeden weiteren Server installieren Sie so wie den ersten Server. (selbstverständlich mit einem anderen Hostnamen und einer unterschiedlichen IP-Adresse).

Sobald die Installation fertig ist, loggen Sie sich auf dem zweiten Server ein und melden den neuen Host am bestehenden Cluster an. Dazu verwenden Sie als Ziel-IP-Adresse im folgenden Kommando die IP eines Hosts, der bereits im Cluster Mitglied ist.

Geben folgendes Kommando ein: pvecm add <IP-des-ersten-Hosts>

Bsp.:

1
2
3
4
5
6
7
8
9
10
11
12
13
root@pvehost02:~# pvecm add 10.20.30.1
The authenticity of host '10.20.30.111 (10.20.30.1)' can't be established.
&lt;…&gt;
Are you sure you want to continue connecting (yes/no)? yes
root@10.20.30.1's password:
copy corosync auth key
stopping pve-cluster service
backup old database
waiting for quorum...OK
generating node certificates
merge known_hosts file
restart services
successfully added node 'pvehost02' to cluster.

Prüfen des Cluster-Status’

Den Status des 2-Knoten-Clusters prüfen Sie wieder mit “pvecm status”:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@pvehost02:~# pvecm status
Quorum information
------------------
Date:             Wed Jan 17 17:59:36 2018
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000002
Ring ID:          1/8
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           2
Flags:            Quorate

Membership information
----------------------
Nodeid      Votes Name
0x00000001          1 10.20.30.1
0x00000002          1 10.20.30.2 (local)

Wichtig ist hier der Eintrag Expected Votes und Total Votes. Diese beiden Werte (hier „2“) sollten identisch sein.

Übersicht über die Proxmox-Web-GUI

Sobald der erste Host im Netz aktiv ist, können Sie sich über die Web-GUI am Cluster anmelden. Grundsätzlich ist die Anmeldung an jedem Host über die folgende URL möglich:

https://<IP>:8006/ ; ersetzen Sie die IP durch die IP eines Hosts bzw. dessen Hostnamen.

GUI Übersicht

Als Benutzernamen verwenden Sie „root“ und das Passwort, das Sie während der Installation eingegeben haben.

Die Elemente der GUI

Links oben: (1) Auswahl der Ansicht für die linke Baumstruktur

Links: (2) Baumstruktur (Server, Pools)

Oben Mitte (3): Suchfunktion

Rechts: Anzeige oder Bearbeiten eines Elements (Datacenter, Host, Gast). Innerhalb des Fensters ist wiederum links eine Leiste für die Befehle (4), um das jeweilige Objekt (Cluster, Host, Gast) zu verändern. (5)

Rechts oben: (6) Kommando-Buttons zum Erstellen von VMs/Containern

Unten: (7) Status-Leiste

Die Elemente der GUI

In der Standard-Übersicht des so genannten Rechenzentrums bzw „Datacenters“ sehen Sie den Status aller Knoten, sowie die CPU, RAM (Hautpspeicher) und Storage-Auslastung des gesamten Clusters.

Um in Proxmox ein Element (Host, Gast oder das Cluster) zu verändern, klicken Sie zunächst links auf das Element (2), das Sie verändern oder ansehen möchten. Anschließend bearbeiten Sie die Einstellung in der Menüleiste des Elements (4).

Konfiguration des Proxmox – Clusters für den Betrieb

Um das Cluster für den echten Betrieb mit Hosts vorzubereiten, müssen nun noch die zentralen Ablagen für ISO-Images bzw. Templates sowie die Speicherung der virtuellen Festplatten der Gast-Betriebssysteme eingerichtet werden. Ebenso benötigen wir ein Verzeichnis, in das Datensicherungen (Backups) und Snapshots der virtuellen Maschinen gespeichert werden können.

Hinweis: Proxmox kann selbstverständlich die Templates und Maschinen-Images lokal auf dem jeweiligen Proxmox-Host speichern. Dann könnten die virtuellen Maschinen aber nicht im laufenden Betrieb verschoben werden.

Unterstützte Speicher von Proxmox

Speicherarten

Neben der lokalen Speicherung (in der Regel LVM) unterstützt Proxmox die folgenden Speicherarten

  • Verzeichnis(se)
  • LVM
  • LVM thin
  • NFS
  • GlusterFS
  • iSCSI
  • RBD (Ceph), von Proxmox gemangt
  • RBS (Ceph), externes Cluster
  • ZFS
  • ZFS über iSCSI

 

Hinweis zu Ceph: Proxmox unterstützt Ceph nicht nur sehr gut. Ceph kann auch über Proxmox selbst installiert und verwaltet werden. Im Gegensatz zur reinrassigen Ceph-Installation ist die Verwaltung von Ceph in Proxmox selbst (Option RBD(PVE)) auch für nicht Linux-Administratoren gut zu erledigen, da sie durch den Hersteller von Proxmox etwas vereinfacht wurde.

Generell können nicht alle Storage-Formen auf allen Speicher-Arten abgespeichert werden. Was genau auf welchen Storage-Arten abgespeichert werden kann, entnehmen Sie der folgenden Übersicht:

StorageDisk-ImageISO-ImageContainer TemplateVZ-BackupsContainer
Verzeichnisxxxxx
LVMXX
LVM-ThinXX
NFSxxxxx
iSCSI
GlusterFSXXXX
RBD (PVE)XX
RBD (external)XX
ZFS iSCSI
ZFSXX

 

Templates-Verzeichnis einrichten

In unserem Test-Cluster fügen wir nachfolgend ein Template-Verzeichnis für ISO-Images auf NFS-Basis hinzu. Das NFS-Verzeichnis kann dabei auf einem auf einem Proxmox-Host, einem anderen Linux-Server oder auch auf einer NAS liegen.

Sie benötigen:

  • Die IP-Adresse bzw. den Hostnamen des NFS-Servers
  • Den Namen der NFS-Freigabe

Templates-Verzeichnis Schritt für Schritt einrichten 1

Um das zentrale Verzeichnis für die Templates einzurichten, klicken Sie oben auf Datacenter (1) und anschließend im rechten Menü auf Storage (2) und danach auf hinzufügen (3) und wählen „NFS“ aus.

Templates-Verzeichnis Schritt für Schritt einrichten 2

In der darauffolgenden Maske tragen Sie unter (1, ID) einen möglichst sprechenden Namen für ihr Verzeichnis ein.

In (2) kommt die IP-Adresse (alternativ. Der Hostname) und unter (3) der Pfad des NFS-Exports. Bei Inhalt (4) wählen Sie „Container Template“. Achten Sie darauf, daß keine weiteren Inhalte ausgewählt sind. Sofern Sie die Templates nur bestimmten Servern zur Verfügung stellen wollen, können Sie das unter (5) einstellen. Klicken Sie zum Erstellen auf „Hinzufügen.“

Templates-Verzeichnis Schritt für Schritt einrichten 3

Um den Inhalt des Speicher-Orts anzuschauen, klicken Sie links in der Struktur-Leiste auf einen der Proxmox-Hosts und dort auf ihr neu angelegtes Verzeichnis (hier: ISO-Images (1)). Anschließend auf Inhalt (2). Über den Button Hochladen (3) können Sie jedes ISO-Image (bspw. eine DVD oder CD mit einem Windows oder Linux-Betriebssystem) hochladen. Die Images können Sie später den virtuellen Maschinen als DVD-Laufwerksinhalt bereitstellen.

ToDo Laden Sie nun ein ISO-Image in den Speicherbereich für Templates hoch. Zum Testen können Sie etwa ein Image von CentOS oder anderen Linux-Distributionen nutzen. Diese sind kostenfrei. Selbstverständlich geht auch jedes Image einer Windows-Installations-CD/DVD.

Speicher für Disk-Images einrichten

Auf die gleiche Weise wie für die Templates richten Sie nun einen Speicherort für die Disk-Images der virtuellen Maschinen ein. Hier werden die virtuellen Festplatten der Gast-Betriebssysteme abgelegt.

Speicher für Disk-Images einrichten

Hinweis: Auf die Disk-Images (also die virtuellen Festplatten) greifen die Gäste permanent zu. Im Gegensatz zu den Templates, sollte der dieser Speicherort sowohl über schnelle Festplatten und eine sehr gute Netzwerk-Anbindung verfügen.

Wir fügen nun (als Beispiel) einen Speicherpool für Ceph als Ort für Disk-Images hinzu. Klicken Sie zunächst ganz oben links wieder auf Datacenter, anschließend auf Storage und danach auf „Hinzufügen“.

Vergeben Sie wieder einen sprechenden Namen für Ihren Speicherort (1) und wählen hier im Fall von Ceph (2) den passenden Pool aus. Über die Auswahl bei Inhalt (3) legen Sie fest, was hier gespeichert werden darf. In unserem Fall ist das „Disk-Image“.

Speicher für Datensicherungen einrichten

Speicher für Datensicherung einrichten

Der Speicherort für Datensicherungen muss nicht extrem schnell sein. Hier benötigen Sie in der Regel jedoch ein hohes Volumen, je nachdem wie viele Snapshots und Datensicherungen sie von den virtuellen Gästen erstellen möchten.

Die Vorgehensweise ist identisch mit der Einrichtung des Template- bzw. Disk-Image-Speicher. Sie können unter „Verzeichnis“, NFS und GlusterFS wählen. Achten Sie lediglich darauf, daß Sie als Speicherinhalt „VZDump Backup file“ auswählen.

Einrichten eines zweiten Netzwerk-Interfaces für die Hosts

Damit die virtuellen Maschinen später auch ins Internet kommunizieren können, benötigt jeder Proxmox-Host eine entsprechende Netzwerk-Schnittstelle.

Während der Installation wurde automatisch das logische Interface „vmbr0“ angelegt (vmbr steht für virtual maschine bridge). Das Interface vmbr0 zeigt in aller Regel in ein geschütztes, internes Netzwerk. Sofern Sie für VMs direkten Kontakt zum Internet herstellen möchten, müssen Sie zuerst jedem Proxmox-Host ein entsprechendes Interface hinzufügen, über das später die VMs ins Internet können.

Um gleich das logische Interface „vmbr1“ zu erstellen, müssen Sie zunächst den Namen des physischen Netzwerk-Interfaces auf ihrem Proxmox-Server ermitteln. Dazu klicken Sie wieder zuerst auf den Host (1), anschließend auf Shell (2) und geben dort folgendes ein:

Einrichten eines zweiten Netzwerk-Interfaces 1

Proxmox# ip link show

In der nachfolgenden Auflistung beginnen die physischen Schnittstellen bei Debian-Linux mit „en“. In unserem Beispiel heißen die beiden NICs „ens1f0“ und „ens1f1“.

Weiter unten in der Auflistung können Sie erkennen, daß das logische Interface vmbr0 bereits angelegt ist.

Dazu klicken Sie zuerst auf den Host (1), anschließend auf (2) Netzwerk und danach auf „Erstellen“. Wählen Sie anschließend „Linux Bridge“.

Einrichten eines zweiten Netzwerk-Interfaces 2

Einrichten eines zweiten Netzwerk-Interfaces 3

In der folgende Maske benennen Sie das Interface (hier: vmbr1) (1) und vergeben bei (2) eine IP-Adresse sowie die dazu passende Subnetzmaske (2). Den Gateway (3) lassen Sie frei. Unter (4) tragen Sie das physische Netzwerk-Interface ein, das Sie gerade in der Shell identifiziert haben.

Wiederholen Sie die Schritte zur Erstellung des Interfaces „vmbr1“ auf allen Proxmox-Hosts, die direkt ins Internet (oder ein anderes Netz) Zugriff haben sollen.

Hinweis: Nach dem Erstellen des Netzwerk-Interfaces „vmbr1“ müssen sie den Proxmox-Host noch rebooten, damit Proxmox die (bis jetzt) inaktive Netzwerk-Konfiguration zu aktiven Konfiguration macht.

 

Linux-Profis können folgendermaßen vorgehen:

1
2
3
4
Pve# cd /etc/network
Pve# cp interfaces intefaces.save
Pve# cp interfaces.new interfaces
Pve# ifup vmbr1

Proxmox Admin Einführung

Die überwiegende Mehrzahl aller administrativen Aufgaben kann über die Web-Oberfläche erledigt werden. Hier sind die wichtigsten davon:

Virtuelle Maschinen erstellen 1

Virtuelle Maschine(n) erstellen

Um eine neue virtuelle Maschine zu erstellen, klicken Sie oben rechts auf „Create VM“ oder links im Struktur-Baum auf den Host und dann im Kontext-Menü auf „Create VM“. Auf Deutsch heißt der Befehl „Erstelle VM“. Es öffnet sich ein Assistent, der Sie durch die Einrichtung führt.

Unter Knoten wählen Sie den Proxmox-Host, auf dem die VM gestartet werden soll. Die VM ID (2)ist eine von Proxmox vergebene eindeutige ID für den Gast. Unter (3) geben Sie der neuen virtuellen Maschinen einen Namen. Klicken Sie anschließend unten rechts auf „vorwärts“ bzw. „next“

Virtuelle Maschinen erstellen 2

VM erstellen 3

Im Reiter „OS“ legen Sie fest, ob die VM ein DVD-Laufwerks-Inhalt bekommt und wählen diesen unter (1) aus. Bei (2) legen Sie fest, welcher VM-Typ als Gast laufen wird. Zur Auswahl stehen „Linux“, Windows und Solaris.

Sofern Sie ein Windows-Betriebssystem installieren möchten, so wählen Sie im Dropdown „Version“ die passende Version aus.

 

Laufwerk definieren

Laufwerk definieren

Im nächsten Schritt legen Sie den Speicherort und die Größe der ersten Festplatte für die neue VM fest:

Mit (2) definieren sie welcher Treiber bzw. welches Bussystem für den Gast emuliert werden soll. Unter (3) wählen Sie den Storage-Bereich aus. Bei (4) definieren Sie die Anfangsgröße der Festplatte in GB.

Hinweis: Festplatten in Proxmox können Sie später noch vergrößern – nicht jedoch verkleinern.

CPU festlegen

CPU festlegen

Im Reiter CPU legen Sie die Anzahl der Sockets und Cores für die VM fest. Die Anzahl der nutzbaren Kerne ist hinterher das Produkt aus Sockets x Cores. (Mathematisch: Sockets mal Cores)

RAM / Hauptspeicher festlegen

RAM festlegen

Im Reiter „Speicher“ legen Sie den Hauptspeicher der VM fest. Sie können dabei eine fixe Speichergröße (1) in MB festlegen (Im Bild sind es 4 GB). Alternativ legen Sie mit einem Klick auf (2) einen dynamischen Bereich fest.

Wie die Zuweisung im Detail in KVM bzw. Proxmox erfolgt ist hier sehr gut beschrieben: https://pve.proxmox.com/wiki/Dynamic_Memory_Management

Netzwerk-Interfaces zuweisen

Netzwerk-Interfaces zuweisen

Im letzten Schritt legen Sie fest, über welches Interface die VM nach außen hin verbunden wird.

Wählen Sie bei (1) den Bridged Mode. Hier können Sie die vorher definierten logischen Interfaces vmbr0 oder vmbr1 auswählen.

Ebenso ist es möglich NAT (Network Adress Translation) auszuwählen oder gar keine Netzwerkkarte zur Verfügung zu stellen.

Bei Modell (2) wählen Sie die NIC-Modellart, die Proxmox emulieren soll. Unter (3) können Sie außerdem eine MAC-Adresse vergeben, sofern Sie das z.B. für einen PXE-Boot oder dhcp benötigen.

Einstellungen bestätigen

Einstellungen bestätigen und VM erstellen

Im letzten Schritt sehen Sie eine Übersichts-Maske, in der Sie nun noch einmal alle Einstellungen kontrollieren können, bevor die virtuelle Maschine wirklich erstellt wird.

Sofern Sie noch Änderungen vornehmen möchten, so klicken Sie auf den entsprechenden Reiter und passen Ihre Einstellungen an.

Sobald Sie auf „Abschließen“ klicken, wird die neue VM erstellt. Das kann je nach Hardware und Größe einen Moment dauern.

Weitere Hardware hinzufügen.

Sie können jeder virtuellen Maschine später noch weitere Ressourcen hinzufügen. Etwa weitere Festplatten oder ein weiteres Netzwerk-Interface.

Virtuelle Maschine starten

Um die neu erstellte VM zu starten, klicken Sie zuerst (1) auf die neue VM. Anschließend können Sie die virtuelle Maschine entweder im Kontext-Menü der VM (2) starten oder oben rechts (3).

Virtuelle Maschine starten

Auf die virtuelle Konsole des Gastes wechseln

Um in die Konsole der frisch erstellen Maschine zu wechseln, klicken Sie auf „Konsole“ im Menü der VM.

Im Bildschirmbereich (3) neben dem Menü (2) können Sie nun mit Tastatur und Maus die virtuelle Maschine so steuern, als würden Sie vor einer physischen Hardware stehen.

Auf die virtuelle Konsole des Gastes wechseln

VM bedienen

VM anhalten / herunter fahren / stoppen

Eine virtuelle Maschine sollten Sie nach Möglichkeit über das installierte Betriebssystem herunterfahren. Sofern das nicht möglich ist, können Sie die VM auch „hart“ ausschalten.

Außerdem haben Sie die Möglichkeit die VM im laufenden Betrieb anzuhalten.

VM löschen

Sie können eine virtuelle Maschine nur löschen, wenn Sie ausgeschaltet bzw. herunter gefahren ist. Wählen Sie dazu links die VM aus und klicken anschließend oben rechts (2) auf „Mehr“ und dann auf löschen. (3)

Virtuelle Maschine löschen

Das Löschen bestätigen

Bevor Sie in Proxmox eine VM löschen können, müssen Sie das Löschen durch die manuelle Eingabe der 3-stelligen Maschinen-ID bestätigen. Erst danach wird die VM gelöscht.

Wichtig: Mit der VM werden auch automatisch alle verbundenen Festplatten physisch entfernt.

Verwaltung von Proxmox

Pools anlegen und verwenden

Pools anlegen und verwenden

Pools dienen in Proxmox dazu, virtuelle Maschinen zu gruppieren. In der linken „Struktur“-Spalte können neben der Ansicht für Hosts und Storage noch Pools angezeigt werden.

Um eine VM einem Pool zuzuweisen haben Sie zwei Möglichkeiten:

Bei der Anlage des Gastes in Proxmox können Sie im Reiter „General“ (Allgemein) den Pool direkt auswählen. Wenn Sie den Pool erst später erstellt haben oder die VM in einen Pool verschieben möchten, gehen Sie so vor:

Wählen Sie in der linken Spalte den Pool (1) , aus und klicken dann (2) auf Mitglieder. Klicken Sie auf (3) Hinzufügen und wählen Sie „Virtuelle Maschine“.

Sofern Sie später einzelnen Virtuellen Maschinen spezielle Storage-Bereiche zur Verfügung stellen wollen, so können Sie einzelnen Pools auch dedizierte Storage-Bereiche zur Verfügung stellen.

Hinweis: Eine VM kann keinem oder nur einem Pool zugewiesen werden. Eine Mehrfach-Mitgliedschaft einer VM zu Pools geht nicht.

Migration eines Gast-Systems von einem Host zum anderen.

Mit Proxmox können Sie laufende Gast-Systeme (virtuelle Maschinen) von einem Proxmox-Host zu einem anderen verschieben.

Die Voraussetzungen dafür sind:

  • Der Gast hat nur Cluster-weite Resourcen (Festplatte muss von beiden Proxmox-Hosts aus erreichbar sein).
  • Keine lokalen CD-Templates
  • Die Proxmox-Hosts haben gleich lautende Netzwerk-Interfaces (bspw. vmbr0 oder vmbr1)

Sofern diese Voraussetzungen gegeben sind, ist die Migration im laufenden Betrieb mit einem Klick möglich:

Migration eines Gast-Systems 1

Klicken Sie links (1) auf die VM, die Sie zu einem anderen Host migrieren möchten. Im Kontext-Menü (2) klicken Sie auf „Migration“. Alternativ können Sie oben rechts (3) die Migration starten.

Migration eines Gast-Systems 2

Wählen Sie im folgenden Menü den Ziel-Host und bestätigen Sie den Start der Migration.

Im Anschluss daran öffnet sich ein Log-Fenster, in dem Sie direkt den Verlauf der Migration beobachten können.

Bei einer Migration wird zunächst auf dem Ziel-Host ein identischer KVM Prozess angelegt. Diesem werden alle wesentlichen Werte der VM (CPU, RAM, HDD) übergeben. Anschließend wird der Inhalt des Hauptspeichers transferiert.

Migration eines Gast-Systems 3

Im konkreten Beispiel hat das Verschieben einer VM weniger als 10 Sekunden gedauert.

Massen-Migration

Massen-Migration

Über den Menü-Punkt „Bulk Migrate“ können mit einem Klick alle virtuellen Maschinen eines Proxmox-Hosts auf einen anderen verschoben werden. Das ist vor allem dann praktisch, wenn ein Proxmox-Hosts nach Updates neu gestartet werden soll.

Je nach Menge der virtuellen Maschinen und der Größe der VMs kann dieser Vorgang einige Minuten bis hin zu einer halben Stunde dauern.

Wichtig: Es wird bei der Massenmigration immer nur eine VM auf einmal migriert. Das Verschieben der VMs passiert also nacheinander.

Auf die Shell eines Proxmox-Hosts aufschalten

Neben den üblichen Wegen sich per ssh auf einen Proxmox-Host aufzuschalten, können Sie sich über die Web-GUI auf jeden Host direkt in die Shell aufschalten.

Container auf Basis von Templates erstellen

Proxmox ist von Hause aus in der Lage Container statt virtueller Maschinen zu betreiben. Für die Container-Technologie gibt es eine Vielzahl von fertigen Templates, mit deren Hilfe in wenigen Klicks eine fertige Anwendung installiert werden kann. Die vorhandenen Templates in Proxmox basieren auf Turnkey Linux. https://www.turnkeylinux.org/

Beispiele hierfür sind neben den klassischen Linux-Betriebssystemen Anwendungen wie WordPress, Apache, Magento und viele weitere.

Um einen Container zu erstellen, müssen sie zunächst das Template aus dem Internet herunter laden. Die Dateien für Container werden zusammen mit den ISO-Images gespeichert. Sie benötigen also keinen zusätzlichen Speicherort für Container-Templates.

Container-Template herunterladen

Container-Template herunter laden

Template auswählen

Klicken Sie in der linken Spalte auf das Speicherverzeichnis für ISO-Images (1), anschließend auf Content (2) und danach auf Templates.

Wählen Sie aus der Liste das gewünschte Template aus und klicken Sie auf „Download“.

Der Download benötigt je nach Größe und Internetanbindung einige Augenblicke bis er zur Verfügung steht.

Container installieren

Die Erstellung eines Containers ist ähnlich wie die Erstellung einer virtuellen Maschine. Klicken Sie oben rechts auf „Create CT“. Es öffnet sich wie bei den VMs ein Dialog, den Sie nun schrittweise durcharbeiten.

Container installieren 1

Unter (1) wählen Sie den Host, auf dem der Container gleich gestartet wird. Geben Sie ihrem neuen Container (3) einen Namen und weisen ihn ggf. einem Pool zu (4).

Container installieren 2

Im Gegensatz zu einer VM benötigt der Container ein Passwort von Ihnen, das Sie (5) zweimal identisch eingeben. Im nächsten Schritt wählen Sie das zu installierende Container-Template aus.

 

Container installieren 3

Die Einstellungen zu „Root Disk“, CPU und Memory sind fast identisch wie bei der Erstellung einer virtuellen Maschine.

Container installieren 4

Im Reiter Netzwerk müssen Sie die vollständige IP-Adresse in der Form „x.x.x.x/y“ eingeben – wobei x.x.x.x für die IP und y für die Netzwerk-Maske steht.

 

Container installieren 5

Im Reiter DNS geben Sie den Namen ihrer Domain an (z.B. test.local) und mindestens einen DNS-Server. Bestätigen Sie danach die Einstellungen. Im Anschluss wir die VM erstellt.

Starten Sie nun den Container mit einem Klick auf „Start“.

Danach wird das Filesystem des Containers erstellt und das Container-Image darauf kopiert.

Der eigentliche Container-Inhalt wird nun vom Turnkey-Template aus erstellt. Dieser Vorgang ist von Anwendung zu Anwendung unterschiedlich. Der Installations- und Konfigurationsaufwand wird nur beim ersten Boot durchgeführt. Nach der Installation bzw. Konfiguration kann der Container wie eine virtuelle Maschine benutzt werden.

Am Ende der Turnkey-Installation werden Sie in der Regel gefragt ob Sie Security-Updates der Software durchführen möchten. Sofern Sie eine bestehende Internet-Verbindung haben, sollten Sie dies tun, um die frisch installierte Software direkt zu aktualisieren.

Vorteil: Die manuelle Installation größerer Webanwendungen wie Magento dauert von Hand schon gerne einmal 1-2 Stunden. Mit Turnkey können Sie die Installation von Magento in 5-10 Minuten (je nach Hardware) fertig stellen.

Container löschen

Damit Sie einen Container löschen können, fahren Sie ihn zunächst herunter. Anschließend löschen Sie ihn über Mehr(More) -> Remove und geben zur Sicherheit noch die VM-ID ein.

Anbindung von Proxmox an LDAP / Active Directory

Proxmox kann über ein LDAP-Server oder ein bestehendes Active Directory die Authentifizierung vornehmen. Das bedeutet, daß in einer AD angelegte Benutzer mit Ihrem Passwort verifiziert werden.

Eine Automatische Prüfung (wie etwa bei der pfsense Firewall) auf eine Gruppenmitgliedschaft gibt es bei Proxmox nicht. Die Benutzernamen müssen also einmal lokal im Proxmox Cluster angelegt werden und einer Administrations-Gruppe zugewiesen werden.

Anbindung von Proxmox an LDAP

Wie Sie eine AD mit Proxmox verbinden, beschreiben wir nachfolgend:

Klicken Sie auf Datacenter -> Permissions -> Authentifizierung -> Add:

Tragen Sie bei (1) den Kurznamen Ihrer AD ein. Bei Domain (2) fügen Sie den „langen“ Namen Ihre Domain ein. Bei Server (3) tragen Sie die IP-Adresse des ersten Domain-Controllers des Active Directory ein. Bei Fallback-Server kommt die IP des zweiten Domain-Controllers rein.

Name vergeben

Als nächstes erstellen Sie eine Gruppe und geben ihr einen sprechenden Namen:

Klicken Sie auf Datacenter -> Permissions -> Groups -> Add

Rechte zuweisen

Nun weisen wir der neu erstellten Gruppe Rechte zu.

Klicken Sie auf Datacenter (1) -> Permissions (2) -> Add (4); wählen Sie anschließend Group Permission (4)

 

Administrative Rechte zuweisen

Im letzten Schritt weisen wir der Gruppe der „AD-Administratoren“ administrative Rechte zu. Dazu geben Sie bei (1) den Pfad „/“ ein. Damit erhält die Gruppe „AD-Administratoren“ Zugriff auf das gesamte Cluster.

Durch die Auswahl der Rolle „Administrator“ erhält anschließend die Gruppe AD-Administratoren administrative Reche im gesamten Cluster von Proxmox.

Benutzername anlegen

Damit sich nun ein echter Anwender, der in der Active Directory Domain bereits existiert, in Proxmox anmelden kann, muss der Benutzername noch in Proxmox angelegt werden.

Dazu klicken Sie auf Datacenter -> Permissions -> User -> Add

Geben Sie dem Benutzer den exakt gleichen Namen wie im AD.

Als Realm wählen Sie die das AD-Realm aus (2) und unter (3) die vorher angelegte Gruppe (3).

Bei der nächsten Anmeldung wählen Sie dann als Realm nicht mehr „Linux PAM standard authentication“ sondern ihr Active Directory aus.

Betrieb von Promox

Cluster-Übersicht / Cluster Status

Die Übersicht und Auslastung des Clusters sieht man als IT-Administrator auf einen Blick, wie die Auslastung und Belastung des Clusters ist.

..-> Datacenter -> Summary

Cluster Status

Unter (1) sehen Sie auf einen Blick, (grüner Haken) ob alles in Ordnung ist. Sofern einer der Hosts (engl. Nodes) offline sein sollte, so sehen Sie das unter (2) rechts oben. In der Zeile Guests sehen Sie wie viele virtuelle Maschinen angelegt und aktiv sind. Das gleiche auf der rechten Seite (4) für Container.

Um unteren Bereich „Resources“ sehen Sie über alle Hosts hinweg, wieviel CPU, RAM und Speicher-Kapazität sie insgesamt zur Verfügung haben und wieviel davon benutzt werden.

Wenn Sie etwas weiter runter scrollen, sehen Sie außerdem in der Zeile „Nodes“ die Auslastung aller einzelnen Cluster-Mitglieder.

Auslastungen der einzelnen Cluster Mitglieder

Neben der CPU- und RAM-Auslastung wird Ihnen hier auf einen Blick die Betriebszeit (Uptime) eines jeden Proxmox-Hosts angegeben.

Monitoring von Proxmox-Servern

Proxmox-Hosts lassen sich als Linux-Hosts mit Debian wie jeder andere Host mit Linux (etwa Centos) per icinga2 überwachen. Die folgenden Prozesse sind auf einem frisch installierten Cluster-Mitglied aktiv und sollten überwacht werden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@b65k-pve03:/dev/pve# ps axu | grep -i pve
root      1779  0.0  0.4 317788 74260 ?        Ss   Jan02  13:44 pve-firewall
root      1790  0.2  0.4 308956 78840 ?        Ss   Jan02  54:13 pvestatd
root      1811  0.0  0.6 527352 110292 ?       Ss   Jan02   0:14 pvedaemon
www-data  1863  0.0  0.6 535024 112060 ?       Ss   Jan02   0:14 pveproxy
root     22263  0.0  0.4 325644 81796 ?        Ss   Jan13   0:55 pve-ha-lrm
root     22326  0.0  0.5 326096 82524 ?        Ss   Jan13   0:27 pve-ha-crm
root     22886  0.0  0.6 537652 104360 ?       S    Jan13   0:04 pvedaemon worker
root     22887  0.0  0.6 537652 104392 ?       S    Jan13   0:04 pvedaemon worker
root     22888  0.0  0.6 537452 104104 ?       S    Jan13   0:04 pvedaemon worker
www-data 22898  0.0  0.6 545416 107000 ?       S    Jan13   0:04 pveproxy worker
www-data 22899  0.0  0.6 545188 106292 ?       S    Jan13   0:04 pveproxy worker
www-data 22900  0.0  0.6 545172 106288 ?       S    Jan13   0:04 pveproxy worker
root     27863  0.0  0.0  89900   160 ?        Ssl  06:25   0:01 /usr/sbin/pvefw-logger

 

Die Linux-Prozesse einer lauenden virtuellen Maschine beginnen mit “ /usr/bin/kvm”. Den aktuellen Bestand an kvm-Prozessen ermittelt man mit „qm list“:

1
2
3
4
root@b65k-pve02:/dev/pve# qm list
VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID
100 Test01               running    4096              32.00 11772
101 Test03               running    2048              32.00 11874

Sofern einzelne KVM-Prozesse statisch an einen Host gebunden sind, kann man diese natürlich wieder mit icinga2 überwachen.

Datensicherung von Proxmox

Datensicherung der virtuellen Maschinen

Damit Sie eine regelmäßige Datensicherung der virtuellen Maschinen im laufenden Betrieb erstellen können, müssen Sie auf Snapshots zurückgreifen. Bei der Erstellung eines Snapshots schreibt Proxmox die aktuellen Daten der VM in eine zusätzliche Datei weiter. Dadurch wird die bestehende Disk-Datei „statisch“ und kann gesichert werden.

Als Sicherungsverzeichnis kommt das weiter oben eingerichtete zentrale Backup-Verzeichnis in Frage. Mit dem Befehl “vzdump” kann auf jedem Host ein Dump der auf diesem Host laufenden VMs erstellt werden.

Pve# vzdump –all –dumpdir /mnt/backup –mode snapshot

Wichtig dabei: Damit alle virtuellen Maschinen des Proxmox-Clusters gesichert werden, muss der oben genannte Job auf allen (!) Proxmox-Hosts regelmässig laufen.

Am besten fügen Sie die obige Befehlszeile in die crontab jedes Proxmox-Hosts ein und starten die Datensicherung automatisch nachts um 2.00 Uhr.

0 2 * * * /usr/bin/vzdump –all –dumpdir /mnt/pve/proxmox-backup –mode snapshot

Datensicherung der Proxmox-Konfiguration

Die eigentliche Konfiguration des Proxmox-Clusters sowie die Cluster-Konfiguration von corosync liegt unter /etc/pve . Die Summe der Dateien ist nur wenige KiloByte groß.

Updates von Proxmox-Servern

Proxmox-Server werden (als Debian-Linux) über den Paketmanager “apt” aktualisiert.

Wichtig: Bei Updates von Proxmox sollten Sie immer alle (!) Hosts eines Clusters auf einen einheitlichen Software.-Stand bringen.

Vorgehen bei Updates:

apt-get update # damit wird die Paket-Liste bzw. das Repository aktualisiert

apt-get upgrade # führt den eigentlichen Updates von Paketen durch.

Hinweis: Das Update von apt können Sie zentral mit ansible machen.

 

Anschließend rebooten Sie den betroffenen PVE-Hosts nachdem Sie vorher die virtuellen Maschinen auf einen anderen PVE-Host verschoben haben. Zur Sicherheit schauen Sie bitte vorher auf dem PVE-Host nach, ob alle VMs verschoben wurden.

Bsp.: Mit ‚qm list‘ erhalten Sie die Liste aller vorhandenen virtuellen Gäste auf einem Proxmox Host:

1
2
3
4
5
6
7
8
root@agppve01:~# qm list
VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID
107 Biteno-piwik01       running    4096              65.00 9165
108 Biteno-piwik02       running    4096              65.00 35251
109 Win2008R201          stopped    2048              32.00 0
110 Win2008R202          stopped    2048              42.00 0
112 bareos.itsc.local    running    4096             130.00 35893
113 ob02.biteno.com      running    4096              64.00 21796

 

Wichtig: Starten Sie immer nur einen Proxmox-Host auf einmal neu. Nach dem Reboot kontrollieren Sie, die Linux-Version und ob das Cluster wieder vollzählig ist.

Nach dem Reboot:

Kontrollieren Sie die Linux-Kernel-Version mit „uname –a“

root@agppve01:~# uname -a

Linux agppve01 4.13.13-1-pve #1 SMP PVE 4.13.13-31 (Mon, 11 Dec 2017 10:00:13 +0100) x86_64 GNU/Linux

Gelb markiert ist die Kernel-Version von Linux.

 

Kontrollieren Sie den Status des Clusters mit dem Befehl „pvecm status“.

Die nachfolgende Übersicht zeigt das Cluster im Zustand, daß 4 Knoten im Cluster angemeldet sind und ihren Dienst tun.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@agppve09:~# pvecm status
Quorum information
------------------
Date:             Wed Jan 17 10:05:57 2018
Quorum provider:  corosync_votequorum
Nodes:            4
Node ID:          0x00000003
Ring ID:          4/416
Quorate:          Yes
Votequorum information
----------------------
Expected votes:   4
Highest expected: 4
Total votes:      4
Quorum:           3
Flags:            Quorate
(…)

In der Zeile „Nodes“ erkennen Sie, wieviele Hosts gerade online sind. Die Zeile „Quorum“ zeigt, die Mindest-Anzahl der Hosts, die online sein müssen.

Im nachfolgenden Beispiel erkennen Sie, daß nur 3 Hosts online sind. Die Anzahl bei „Total Votes“ ist 3 (statt vorher 4). Das entspricht der Mindest-Menge an „Stimmen“ im Cluster, die nicht unterschritten werden sollte.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
root@agppve09:~# pvecm status
Quorum information
------------------
Date:             Wed Jan 17 10:09:23 2018
Quorum provider:  corosync_votequorum
Nodes:            3
Node ID:          0x00000003
Ring ID:          5/420
Quorate:          Yes
Votequorum information
----------------------
Expected votes:   4
Highest expected: 4
Total votes:      3
Quorum:           3
Flags:            Quorate
Membership information
----------------------
Nodeid      Votes Name
0x00000005          1 10.20.30.62
0x00000003          1 10.20.30.69 (local)
0x00000001          1 10.20.30.224

Migration von virtuellen Maschinen zu Proxmox

Nachfolgend beschreibe ich die funktionierenden Wege, einen virtuellen Gast von einem anderen Hypervisor zu Proxmox zu migrieren. Das kann Hyper-V, VMware oder ein anderes KVM-basiertes System wie Openstack oder Cloudstack sein.

Die Grundlage einer (erfolgreichen) Migration ist in der Regel ein lesbares Image der virtuellen Festplatte. Die Migrationswege beschreiben daher in der Regel wie ein Disk-Image von einer Plattform und der dort bevorzugten Speicherform zu Proxmox kopiert und konvertiert werden kann.

Proxmox verwendet zum Speichern von Disk-Images entweder das Format „qcow2“ oder ein so genannte „Raw“-Device.

Migration von VMWare zu Proxmox

  • Virtuelle Maschine auf VMWare runter fahren und beenden
  • Identifizieren Sie die Disk-Dateien auf dem VMWare-Server sowie den Pfad dazu
  • Kopieren Sie die Dateien auf den Proxmox-Host

Vom Proxmox-Host aus:

Pve# cd /<ihr-pfad-in-dem-sie-platz-haben/

Pve# scp root@<VMWare-IP>://vmfs/volumes/<PFAD/*flat* .

Legen Sie eine neue virtuelle Maschine auf dem Proxmox-Host an, auf den Sie das Maschinen-Image kopiert haben. Achten Sie dabei darauf, daß Sie die Festplatte als „lokale“ Festplatte auf dem Proxmox-Host anlegen. Notieren Sie sich außerdem bitte die 3-stellige VM-ID.

Wichtig – Achten Sie auf folgende Punkte:

  • Die neue virtuelle Festplatte muss zur Bus-Architektur passen (bspw. „IDE“ )
  • Die neue virtuelle Festplatte muss mindestens so groß oder größer als die zu importierende Festplatte sein.
  • Erstellen Sie die Festplatte als lokale Festplatte

Kopieren Sie die Festplatte mit dem Linux-Befehl „dd“. Wechseln Sie in das Verzeichnis, in der das VMWare-Flatfile der Platte liegt.

Ersetzen Sie den Dateinamen des VMWare-Images (Endung: vmdk) durch den echten Dateinamen. Prüfen Sie außerdem bitte vorher ob unter /dev/pve/* auch ihre neu angelegten Proxmox-Images für ihre virtuelle Maschine liegen.

dd if=<alter-hostname>flat.vmdk of=/dev/pve/vm-<disk-id>disk-1

Migration von Hyper-V zu Proxmox

Fahren Sie die virtuelle Maschine unter Hyper-V herunter. Kopieren Sie anschließend das Disk-Image (*.vhd) von Hyper-V auf den Proxmox-Host.

Die notwendige Konvertierung (Umwandlung) des Hyper-V Diskimages machen sie wie folgt:

1
Pve# qemu-img convert win2008r2-1.vhd -O qcow2 win2008r2-1.qcow2

https://forum.proxmox.com/threads/migrate-hyper-v-machine-to-proxmox-kvm.13969/

Eine Übersicht der von Anwendern erfolgreich getesteten Migrationswege gibt es auf der Proxmox-Homepage.
https://pve.proxmox.com/wiki/Migration_of_servers_to_Proxmox_VE

Fazit zu Proxmox:

Für mittelständische Unternehmen und Rechenzentrumsbetreiber ist Proxmox eine gute Alternative zu den Platzhirschen OpenStack, VMWare oder Hyper-V. Mit der intuitiven Oberfläche nimmt Proxmox auch eingefleischten Windows-Admins die Angst vor Linux.

Für erfahrene Linux-Administratoren bietet Proxmox mit der Integration von Ceph und anderen Speichertechnologien alle Möglichkeiten moderene Konzepte wie „Software defined Storage“ im eigenen Unternehmen sicher und stabil einzusetzen.