Ein paar irrelevante Tutorials

Proxmox Backup Server (PBS)

Snapshotsicherungen von Proxmox-Gästen werden unter Datacenter (oder Rechenzentrum) auf der Web-GUI des PVE unter "Backup" eingerichtet.  Dabei kann man den Storage, also das Sicherungsziel eingeben. Standardmäßig steht zumindest "local", also der lokale Speicher des PVE zur Verfügung und außerdem jeder andere Speicher, den man unter Datacenter/Storage für den Content "VZDump backup file" eingerichtet hat. Eine Datensicherung auf den lokalen Speicher des PVE ist in etwa so sinnvoll wie eine wieder verschließbare Chipstüte. Sinnvoller ist da natürlich die Nutzung eines Proxmox Backup Servers.

PBS als VM oder sogar LXC?

Wer einen PBS als virtuelles System auf dem selben PVE hostet, den er auch damit sichern möchte, kann das auch gleich lassen. Wenn der PVE abraucht, sind auch die Sicherungen futsch. Denkbar wäre, wenn man mindestens zwei PVE betreibt, auf denen voneinander unabhängig Gäste laufen können (also eher kein HA-Cluster), dass man auf dem einen eine PBS für die Gäste des anderen PVE betreibt und umgekehrt. Ich präferiere, nur einen PBS im Homelab zu haben und den bare metal zu betreiben.

Installation des PBS

Einen PBS kann man, wie auch einen PVE auf einem Debian Server manuell installieren. Eine komfortablere Methode ist die Verwendung eines Bootmediums. Dazu benötigt man das ISO-File, das von der Proxmox-Homepage herunter geladen werden kann. Das primpt man auf ein Bootmedium, wie einen Stick oder eine DVD. Die eigentliche Installation ist dann zunächst mit der eines PVE identisch. Aus Ausfallsicherheitsgründen installiere ich den PBS auch mit zwei Netzwerkkarten, die ich an zwei verschiedene Switches anschließe und bündelt (s. beim PVE).

Die Web-GUI des PBS wird über Port 8007 angesprochen. Die Einstellungen für die Repositories findet man beim PBS unter "Administration/Repositories".

Datastore hinzufügen

Unter "Storage/Disks" werden die an die Hardware angeschlossenen Laufwerke angeschlossen. Man kann sie als Directories oder ZFS einbinden. Für Backups präferiere ich ZFS mit einem RAID oder Mirror. Ich verbinde mindestens zwei Disks zu einem Mirror. ZFS ist je nach Größe der Volumes sehr RAM-hungrig. Mein PBS verfügt über 16 GB RAM und bewältigt (2 *) 2 TB damit spielend.

Man wählt also unter "Storage / Disks" den Reiter "ZFS" aus und dort "create ZFS". Dann vergibt man dem Speicher einen Namen. Dann wählt man den gewünschten RAID Level. Bei nur einer Disk kann man nur "Single Disk" auswählen. Bei zwei Disks kann man Mirror wählen. Höhere Raid Level erfordern mehr Laufwerke. Der Parameter "ashift" ist auf 12 voreingestellt, was für halbwegs aktuelle Laufwerke in Ordnung ist. Bei "Compression" ist "on" voreingestellt. Dann wird LZ4 standardmäßig verwendet, was zwar keine hohe Kompressionsrate, dafür aber gute Performance bietet. Das kann so bleiben.

Retention-Regel einstellen

Über die Web-GUI kann man noch viele Einstellungen und Optimierungen vornehmen. Nicht alle werde ich hier erklären. Wichtig ist aber, die Retention-Regel einzustellen, also vorzugeben, wieviele Sicherungen aufbewahrt werden sollen. Dazu wählt man in der Web-GUI unter "Datastore" den soeben eingerichteten Speicher aus und geht auf den Reiter Prune Jobs. Hier erstellt man einen neuen Prune Job. Da muss man nur den Parameter "Keep Last" auf 7 stellen, um die letzten 7 Sicherungen zu behalten und unter "Prune Schedule" "daily" auswählen, damit einmal am Tag ältere Sicherungen gelöscht werden.  

Verify Job einrichten

Es kann nicht schaden, die ordnungsgemäße Übertragung der Sicherungsdaten zu überprüfen. Jedenfalls hat der PBS ja ohnehin tagsüber nichts zu tun. Also richtet man unter dem Reiter "Verify Jobs" einen Job ein, bei dem man die Uhrzeit der Überprüfung unter "Schedule" eingibt. Die restlichen Parameter kann man so lassen.

Datastore-Konfiguration sichern

Die wichtigsten Konfigurationsparameter des Datastores werden in der Datei /etc/proxmox-backup/datastore.cfg gespeichert. Es kann  nicht schaden, sich diese Datei irgendwo hin zu sichern, um Fehlkonfigurationen leichter wieder zurücknehmen zu können. Außerdem kann es hilfreich sein, den Inhalt dieser Datei für einen eventuell notwendigen Umzug des PBS auf einen neuen Server zur Verfügung zu haben (s.u.). Dazu öffnet man die Shell des PBS mit Root-Rechten. Dann lässt man sich den Inhalt der Datei mit dem Befehl

cat /etc/proxmox-backup/datastore.cfg

ausgeben. Das Ergebnis kann man dann über die Zwischenablage herausziehen und irgendwo gut ablegen.

PVE verbinden

Den PBS kann man einem PVE oder Cluster über die Web-GUI dieses PVE oder Clusters als Storage zuweisen. Dazu klickt man auf der GUI unter Datacenter/Storage den Button "Add" an und wählt in dem Auswahlmenü "Proxmox Backup Server aus". In dem sich öffnenden Dialogfeld gibt man eine beliebige ID vor. Unter Server trägt man die IP-Adresse oder Domain des Servers ein. Username ist normalerweise "root". Unter "Password" trägt man natürlich das Passwort des PBS ein.  Unter "Nodes" ist voreingestellt "All (no restrictions)", was man so lassen kann. Wenn man kein Cluster hat, dann kann man auch gar nichts anderes auswählen.

Das Häkchen "enable" ist gesetzt und es herauszunehmen ist ziemlich sinnfrei. Unter Datastore muss der Name, den man vorher vergeben hat (s.o. "Datastore hinzufügen") eingetragen werden. Das muss händisch und korrekt gemacht werden. Den Namespace "Root" lässt man auch unverändert. Nun wird es aber interessant: Es ist ein Fingerprint des PBS einzugeben. Den findet man auf der Weboberfläche des PBS. Dort ist auf dem Dashboard ein Button "Show Fingerprint" prominent platziert.  Den packt man sich in die Zwischenablage und trägt ihn in das entsprechende Feld ein. Wenn man nun "Add" anklickt und keinen Fehler gemacht hat, dann ist der PBS mit der hier vergebenen ID unter Storage des PVE oder Clusters verfügbar.

Backups einrichten

Die Einrichtung von Backups und das Recovern aus Sicherungen beschreibe ich unter PVE.

Datensicherungen umziehen

Wenn der Proxmox Backup Server fritte ist, die Sicherungsmedien aber noch in Ordnung, dann kann man einen neuen PBS aufbauen und die Sicherungsmedien umziehen. Voraussetzung für die hier beschriebene Methode ist, dass der Datastore in einem ZFS angelegt wurde. Wir schließen zunächst die Laufwerke an den neuen PBS an. Wenn es sich um mehr als eine Festplatte handelt, die in einem ZFS-Pool verbunden sind, dann müssen natürlich für den Umzug alle Platten an den neuen Server angeschlossen werden. Nach der physikalischen Verbindung sind die neuen Platten in der Web-GUI des neuen PBS unter Storage / Disks sichtbar, der Datastore ist aber noch nicht eingebunden. Dazu müssen wir die Shell des neuen PBS aufrufen und uns dort als root anmelden. Mit dem Kommando

zpool import

lassen wir uns zunächst die nicht verbundenen und damit importierbaren ZFS-Pools anzeigen. Hier sollten wir nun den gesuchten Datastore sehen.  Davon ausgehend, dass wir hier nicht mehrere verwaiste ZFS-Pools vorfinden, können wir einfach den Befehl

zpool import -fa 

eingeben, um alle verfügbaren ZFS-Pools einzubinden. Ich verwende als Bootloader üblicherweise GRUB und muss diesen daher mit 

update-grub

aktualisieren. Danach können wir, wenn bisher keine Fehler aufgetreten sind, auf der Web-GUI des PBS unter Storage / Disks das ZFS schon sehen. Es ist aber noch nicht als Datastore verfügbar. Wenn wir, wie oben beschrieben, die Datei /etc/proxmox-backup/datastore.cfg irgendwo hin gesichert haben, dann können wir sie nun zurücksichern, um den Datastore einzubinden. Haben wir das nicht getan, dann erstellen wir flux eine neue mit folgendem Inhalt:

datastore: zfsbup # (oder wie auch immer der Datastore heißt)
gc-schedule daily
path /mnt/datastore/zfsbup
verify-new true

Nun muss noch einmal der Bootloader aktualisiert werden mit

update-grub

Der neue PBS muss den PVEs neu hinzugefügt werden. Das heißt, die bestehenden Storage-Einträge in den PVEs müssen gelöscht und neue für den neuen Server wie oben beschrieben, hinzugefügt werden.