Proxmox VE Installation und Grundkonfiguration

Im folgenden Beitrag gehe ich auf die Konfigurationsmöglichkeiten einer Proxmox VE Basisinstallation ein. Für den Beitrag habe ich noch PVE 6.4 installiert, da kurz darauf PVE 7.0 released wurde, habe ich Änderungen in dieser Version noch in den Beitrag einfließen lassen.

Installation

Die eigentliche Grundinstallation von PVE ist im Wiki vom Proxmox hier (https://pve.proxmox.com/wiki/Installation) ganz gut dokumentiert, daher gehe ich auf die Installation nicht mehr groß ein.

Grundkonfiguration

Im Anschluss an die Installation nehme ich über die Web UI und SSH einige Grundeinstellungen vor.

No-Subscription Warning

Ohne Subscription erscheint in der Web-GUI von Proxmox bei jedem Login eine Warnmeldung, dass das System ohne Subscription betrieben wird. Dies ist trotzdem ganz legal, allerdings ist die Meldung sehr störend, kann aber glücklicherweise deaktiviert werden.

Dazu verbindet man sich im ersten Schritt per SSH mit dem PVE Host. Danach sichert man die Datei, die für die Deaktivierung angepasst werden muss und öffnet die Datei mit nano:

cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak
nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

In der proxmoxlib.js Datei sucht man in nano mit Ctrl+W nach dem Suchbegriff No valid subscription. Die Ergebniszeile sieht wie folgt aus:

...
Ext.Msg.show({
  title: gettext('No valid subscription'),
...

Der Eintrag Ext.Msg.show wird gegen den Eintrag void getauscht und die Datei mit Ctrl+X gespeichert:

...
void({
  title: gettext('No valid subscription'),
...

Danach muss nur noch der PVE Web Service neu gestartet werden, um die Änderung zu aktivieren:

systemctl restart pveproxy.service

Nach einem Versionsupdate kann es vorkommen, dass die obige Konfiguration erneut durchgeführt werden muss!

No-Subscription Repository

Da ich keine Subscription habe, deaktiviere das Enterprise Repository und lege eine Sources-Datei an für das No-Subscription Repository.

mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
nano /etc/apt/sources.list.d/pve-no-subscription.list

In der neu erstellte Sources-Datei ist folgender Eintrag hinzuzufügen:

deb http://download.proxmox.com/debian/pve buster pve-no-subscription

Update/Änderung in PVE 7.0

Mit PVE 7.0 wurde die Möglichkeit geschaffen, die Repositories über die Web GUI auszuwählen. Zu finden ist die Option unter dem Server-Node im Menü Updates -> Repositories.

Open vSwitch

Optional kann man auch noch Open vSwitch (OVS) nachinstallieren, falls man das Feature nutzen möchte:

apt update
apt install openvswitch-switch

Mir reichen in meinen Installationen die normalen Linux Netzwerk-Bridges und benötige daher OVS nicht.

ifupdown2

Um Änderungen an der Netzwerkkonfiguration in der PVE GUI auch im laufenden Betrieb ohne Neustart zu ermöglichen, installiere ich noch das dazu benötigte ifupdown2 Tool.

apt install ifupdown2

Update/Änderung in PVE 7.0

In PVE 7.0 wurde ifupdown2 in die Basisinstallation integriert und muss nicht mehr nachinstalliert werden.

ZFS File System Konfiguration / ZFS ARC Tuning

Wie in einem anderen Beitrag beschrieben, habe ich 2 Server, ein Produktivsystem und ein Testsystem; in beiden Systemen sind 2 Data Disks, die ich per ZFS mit RAID 1 zu einem logischen Volume zusammenschließe. Für die Nutzung von ZFS ist jedoch einiges zu beachten.

ARC (Adaptive Replacement Cache) ist eine Funktion von ZFS, die Daten, auf die am häufigsten zugegriffen wird, im RAM speichert und so extrem schnelle Lesevorgänge für diese Ressourcen ermöglicht. Das ist an sich eine sinnvolle Funktion, aber die standardmäßige maximale Größe für ARC beträgt 50% des gesamten System-RAMs. Auf einem File Server macht eine Einstellung von 50% oder sogar noch mehr durchaus Sinn, aber Proxmox VE ist ja nun mal kein File Server sondern ein Hypervisor. Da RAM einerseits teuer ist und andererseits der RAM für ein System begrenzt ist, drehe ich die Einstellung in meiner Installation daher herunter.

Es gibt viele Empfehlungen, wie viel RAM für ARC verwendet werden soll. Häufig trifft man dabei auf den Wert 1 GB pro TB ZFS Speicher, mindestens jedoch 8 GB. Meine Server haben jeweils eine 500 GB ZFS RAID 1 Disk, d.h. rein nach diesem TB Wert würde 1 GB für ARC reichen. Zudem verfügen meine Server über 32 GB, bzw. 64 GB RAM. Daher bleibe ich erst mal unter der Empfehlung und limitiere ARC erstmal auf 2 GB, bzw. 4 GB. Sollte das zu Performance Problemen führen, kann auf 8 GB erhöht werden. 1 GB RAM bzw. 2 GB RAM konfiguriere ich als Minimalwert.

Diese Werte müssen in Bytes angegeben werden und können wie folgt berechnet werden:
GB * 1024 = MB -> MB * 1024 = KB -> KB * 1024 = Bytes
Daraus ergeben sich folgende Werte:
8GB = 8589934592 Bytes
4GB = 4294967296 Bytes
2GB = 2147483648 Bytes
1GB = 1073741824 Bytes

Um ARC zu konfigurieren, ist mit dem folgenden Befehl die zfs.conf Datei zu editieren (wird neu angelegt, falls sie noch nicht existiert):

nano /etc/modprobe.d/zfs.conf

Dort trage ich folgende Werte ein:

Produktivserver

options zfs zfs_arc_min=2147483648
options zfs zfs_arc_max=4294967296

Testserver

options zfs zfs_arc_min=1073741824
options zfs zfs_arc_max=2147483648

Da ich UEFI Systeme verwende, muss die Kernel Liste aktualisiert werden, damit das aktualisierte RAM File System verwendet wird (bei BIOS nicht notwendig):

pve-efiboot-tool refresh

Für das eigentliche PVS System verwende ich eine separate EXT4 formatierte LVM Disk. Dadurch ist die Konfiguration von ZFS für meine System fertig. Wer jedoch auch das System auf einer ZFS Disk installiert, muss auch das initiale RAM Dateisystem anpassen, damit die Änderung wirksam wird vor dem Mounten des ZFS Volumes.

update-initramfs -u

Damit obige Änderungen wirksam werden, muss das System abschließend nun noch gebootet werden.

Replication Runner Syslog Messages

Wer den Replication Runner unverändert lässt, dem werden im Syslog von PVE minütliche Einträge wie diese auffallen:

systemd[1]: Starting Proxmox VE replication runner...

Um diese Meldung zu unterbinden, lässt sich der entsprechende Dienst einfach deaktivieren:

systemctl disable pvesr.timer

Wer den Dienst nicht komplett abschalten möchte, kann alternativ das Intervall ändern, in denen der Replication Runner ausgeführt wird:

nano /lib/systemd/system/pvesr.timer

Hier ändere ich den Eintrag …

[Timer]
OnCalendar=minutely

… in …

[Timer]
OnCalendar=monthly

Danach läuft der Replication Runner nur noch einmal monatlich.

Netzwerk Konfiguration

In meinen Systemen befinden sich je 4 NICs. Diese teile ich wie folgt auf:
NIC 1  > LAN Bond 1/2
NIC 2  > LAN Bond 2/2
NIC 3  > DMZ
NIC 4  > SAN

Besonders bei der Konfiguration des Bonds hatte ich massive Probleme. Das Löschen der vmbr0, Anlegen von bond0 mit Member eno0 eno1 (oder wie die IFs im System halt heißen), Anlegen von vmbr0 mit Member bond0 und IP Konfiguration, Anwenden der Konfiguration hat bei mir dazu geführt, dass das System nicht mehr erreichbar ist.

Die Lösung war bei mir:
Löschen der vmbr0, anlegen von bond0 mit Member eno0, anlegen von vmbr0 mit Member bond0 und IP Konfiguration, anwenden der Konfiguration; danach hinzufügen von eno1 zu bond0, anwenden der Konfiguration

Warum das so ist, konnte ich noch nicht nachvollziehen, Hinweise dazu sind natürlich willkommen.


Quellen:
https://pve.proxmox.com/wiki/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.