Files
proxmox-snapshot-service/handbuch/docs/sichern/editor.md
T
duffyduckandClaude Opus 5.5 74be5aee59 Platz vor jedem Snapshot pruefen, bei Mangel alte loeschen, per Mail warnen
Volle Ceph-Pools legen alle VMs darauf lahm. Vor jedem Snapshot gilt jetzt
je Storage des Gastes: frei >= sofortiger Verbrauch + space_min_free
(Vorgabe 20 %). Die Reserve bleibt also auch nach dem Snapshot frei.

Reicht es nicht, wird der aelteste pvesnap-Snapshot des Gastes geloescht und
neu geprueft, bis es reicht. Sind nur noch die neuesten space_keep (Vorgabe
7) uebrig, entfaellt der Snapshot und der naechste Gast kommt dran.

Gezaehlt wird je Gast ueber alle Gruppen, anders als bei der Vorhaltezeit.
Auf dem Testhost haette eine Grenze je Gruppe nie gegriffen: keep_count = 5
liegt unter 7, und 13 GiB steckten in einer Gruppe, die es nicht mehr gibt.

Sofortiger Verbrauch: Dicke ZFS-Zvols muessen ihre Reservierung auch nach
dem Snapshot garantieren, das kostet alles seit dem letzten Snapshot
Geschriebene. Exakt ist das refreservation - usedbyrefreservation; die Werte
kommen per zfs get, bei anderen Nodes per ssh ueber die IP aus dem
Clusterstatus, weil Node-Namen nicht ueberall aufloesen. Dazu kommt der RAM
bei vmstate. --dry-run zeigt die Rechnung je Storage.

Ceph und ZFS geben Platz erst im Hintergrund frei. Deshalb wird nach jedem
Loeschen gewartet, solange der Platz waechst, und erst nach space_settle
(Vorgabe 30s) ohne Zuwachs weitergemacht. Ohne das wurde auf Ceph ein Snapshot
zu viel geloescht. Laesst sich der Platz nicht feststellen, wird nichts
geloescht und der Snapshot trotzdem versucht.

Neu ist [mail]: eine Alarm-Mail je Gruppe und Lauf, wenn ein Snapshot wegen
Platzmangels ausfaellt. STARTTLS oder SSL/TLS mit Zertifikatspruefung, ohne
Rueckfall auf Klartext. Einzurichten im Editor (Taste m) oder von Hand, Test
mit pvesnap mail-test. Liegt ein Passwort in der Datei, setzt der Editor die
Rechte auf 600, auch fuer die .bak.

Das Handbuch beschreibt, wie man Ceph (Ratios) und ZFS (Notreserve) frueher
"voll" sagen laesst und was im Notfall zu tun ist. Ausserdem war
"pvesnap run --dry-run" ueberall falsch: Die Option ist global und muss vor
dem Unterbefehl stehen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:27:21 +01:00

6.3 KiB

Der Konfigurationseditor

pvesnap config

Braucht root — der Editor schreibt nach /etc/pvesnap/ und fragt Proxmox nach dem Inventar.

Alles, was hier geht, geht auch von Hand in der INI-Datei. Der Editor hat aber zwei Vorteile, die man beim Tippen nicht hat: Er zeigt live, auf wie viele Gäste eine Auswahl gerade zutrifft, und er rechnet den nächsten Termin aus, bevor man speichert.


Die Gruppenliste

Die Gruppenliste

Der Einstiegsbildschirm. Oben steht die Datei, an der gearbeitet wird, und rechts daneben, ob der Dienst gerade läuft. Ein * vor dem Dateinamen bedeutet: ungespeicherte Änderungen.

Taste
++enter++ Gruppe bearbeiten
++space++ Gruppe ein- oder ausschalten
++n++ neue Gruppe
++c++ Gruppe kopieren — der schnellste Weg zu einer Variante
++d++ Gruppe löschen
++g++ globale Einstellungen
++v++ Übersicht: welche VM in welcher Gruppe?
++s++ speichern
++r++ Dienst neu laden
++q++ Ende

Die Spalte Auswahl fasst zusammen, wie die Gruppe ihre Gäste findet — Tags: produktion, alle VMs, VMIDs: 100-110. Wer viele Gruppen hat, sieht hier auf einen Blick, wo eine Maschine hineinfallen könnte.


Eine Gruppe bearbeiten

Eine Gruppe bearbeiten

Eine lange Maske in vier Abschnitten: Allgemein, Zeitplan, Vorhaltezeit, Welche VMs?, Snapshot-Optionen. Pfeiltasten bewegen sich, ++enter++ ändert ein Feld, ++space++ schaltet Ja/Nein um.

Zwei Zeilen darin sind keine Einstellungen, sondern Antworten:

!!! tip "Nächster Termin (Vorschau)"

```
Naechster Termin (Vorschau)     Mo 10.08.2026 02:30   (taeglich um 02:30)
```

Rechnet sofort nach, was der eingestellte Zeitplan bedeutet. Damit fällt
ein Denkfehler auf, bevor er drei Wochen lang unbemerkt bleibt — etwa
`day_of_month = 31` in einem 30-Tage-Monat.

!!! tip "Trifft aktuell zu auf"

```
Trifft aktuell zu auf           6 Gast/Gaeste (100, 101, 102, 105, 110, 130)
```

Die Auswahlregeln, angewendet auf das echte Inventar — mitsamt VMIDs. Steht
dort `0 Gast/Gaeste`, ist meist ein Tag falsch geschrieben.

Oben in der Kopfzeile steht außerdem, wie die Snapshots dieser Gruppe heißen werden:

Kurzname im Snapshot: auto-taeglich-JJJJMMTT-HHMMSS

VMs aus einer Liste wählen

Auf dem Feld VMs aus Liste wählen … öffnet ++enter++ das Inventar; aus der Gruppenmaske heraus geht auch direkt ++v++:

Die VM-Auswahl

Taste
++space++ Gast an- oder abwählen
++a++ alle
++n++ keine
++i++ Auswahl umkehren
++slash++ filtern (Name, VMID oder Tag)
++enter++ übernehmen

Die Spalte Tags ist der eigentliche Grund, hier hereinzuschauen: Sie zeigt, womit die Gäste in Proxmox markiert sind — und damit, ob eine Auswahl über tags = … besser wäre als eine feste Liste von VMIDs.

!!! note "Feste Listen altern schlecht"

Eine Auswahl über VMIDs muss bei jeder neuen VM angefasst werden. Eine
Auswahl über Tags nicht. Für alles, was länger als ein paar Wochen leben
soll, sind [Tags](auswahl.md#tags) die bessere Wahl.

Globale Einstellungen

Taste ++g++ in der Gruppenliste:

Globale Einstellungen

Das gilt für alle Gruppen — Präfix, Prüfintervall, Wiederholungen bei belegter Sperre, Standard-Beschreibung. Was welcher Wert genau bedeutet, steht unter Alle Einstellungen.

Der wichtigste ist Testlauf (nichts wirklich tun) — das dry_run = yes der INI-Datei. Damit protokolliert der Dienst nur, was er täte. Zum Ausprobieren einer neuen Konfiguration ohne Risiko.


Mail-Alarm

Taste ++m++ in der Gruppenliste: SMTP-Server, Verschlüsselung (STARTTLS oder SSL/TLS), Anmeldung, Absender und Empfänger. ++t++ sendet sofort eine Test-Mail mit den angezeigten Werten, auch wenn sie noch nicht gespeichert sind. Alles Weitere steht unter [mail].


Die Übersicht

Taste ++v++ in der Gruppenliste:

Übersicht: welche VM in welcher Gruppe

Die Gegenprobe von der anderen Seite: nicht „welche Gäste hat diese Gruppe", sondern „in welchen Gruppen steckt dieser Gast". Wer hier steht, wird gesichert. Wer (keine Gruppe) daneben stehen hat, nicht.

Das ist der Bildschirm, den man nach jeder Änderung einmal ansehen sollte. Er deckt beide typischen Fehler auf: eine vergessene Maschine — und eine, die versehentlich in vier Gruppen gleichzeitig liegt.

!!! example "Was hier auffällt"

Im Bild trägt `build-test` das Tag `nosnap` und fällt damit überall heraus —
gewollt. Die beiden Maschinen `db01-live` und `warenwirtschaft-w` sind
laufende [Wiederherstellungen](../wiederherstellen/index.md); sie stehen
ebenfalls in keiner Gruppe, weil die monatliche Gruppe
`exclude_tags = nosnap, pvesnap-recovery` gesetzt hat.

**Das ist ein Griff, der sich lohnt.** Ohne ihn bekämen kurzlebige
Wiederherstellungsmaschinen eigene Snapshots — die dann wiederum verhindern,
dass ihre Klone sauber verworfen werden können.

Dienst neu laden

Taste ++r++ — entspricht systemctl reload pvesnap, ohne den Editor zu verlassen. Der Editor nimmt einem dabei das Mitdenken ab:

Ungespeicherte Änderungen? → bietet vorher das Speichern an

Dienst gestoppt? → bietet das Starten an

Neuladen scheitert? → bietet einen Neustart an

Nach ++s++ fragt er ohnehin gleich, ob neu geladen werden soll. In der Kopfzeile steht jederzeit, ob der Dienst läuft.


Beim Speichern

!!! warning "Die INI-Datei wird neu geschrieben"

Eigene Kommentare gehen dabei verloren. Ein `[defaults]`-Abschnitt
ebenfalls — inhaltlich bleiben die Werte erhalten, sie stehen danach nur in
jeder Gruppe einzeln.

Eine Sicherung der alten Fassung wird als **`pvesnap.conf.bak`** abgelegt.

Wer eine handgepflegte Konfiguration mit vielen Kommentaren hat, bearbeitet sie besser weiter im Texteditor. Der ncurses-Editor ist für alle anderen da — und für die beiden Vorschauzeilen, die es im Texteditor nicht gibt.