26 Kapitel in vier Teilen, in der Reihenfolge, in der man sie braucht: erst sichern, dann Dateien holen, dann ganze Maschinen wiederherstellen, dahinter der Nachschlagteil. Gebaut wird mit MkDocs + Material. Bewusst ohne Netzabhaengigkeiten: keine Schriften vom CDN (font: false), Volltextsuche mit deutschem Stemming liegt neben den Seiten. Im Notfall steht vielleicht das halbe Netz - dann nuetzt eine Doku im Internet nichts. handbuch/bauen.sh baut handbuch/site/ handbuch/bauen.sh ansehen Vorschau auf 127.0.0.1:8000 install.sh nimmt das gebaute Handbuch mit nach /usr/share/doc/pvesnap/handbuch/ - falls es vorliegt. Auf dem Host selbst wird nichts gebaut, mkdocs gehoert nicht auf einen Hypervisor. Die 28 Bildschirmfotos sind nicht abfotografiert, sondern erzeugt: Der echte Programmcode laeuft in einem Pseudo-Terminal gegen einen erfundenen Proxmox-Host (Attrappen fuer pvesh, perl und rbd), pyte baut den Bildschirm nach, heraus faellt ein SVG. Damit stimmen sie garantiert mit dem Programm ueberein, sind reproduzierbar und enthalten keine echten Daten. Die Werkstatt dafuer liegt unter handbuch/werkstatt/ samt LIESMICH.md. Nebenbei: die Schlussmeldung von install.sh warb noch mit --exchange, das mit dem eingebauten Austauschlaufwerk weggefallen ist. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5.2 KiB
Welche Gäste?
Eine Gruppe sucht sich ihre Gäste über eine oder mehrere Regeln. Dabei gilt:
Alle Einschluss-Regeln wirken als ODER — wer eine davon erfüllt, ist dabei.
Alle Ausschluss-Regeln gewinnen immer — auch gegen all = yes.
all = yes # alle VMs und Container
vmids = 100,101,105-110 # nach ID, auch Bereiche
names = web-*, db-0? # nach Name, mit Platzhaltern
tags = produktion, wichtig # nach Proxmox-Tag
pools = Kunden # nach Proxmox-Pool
types = qemu # nur VMs (lxc = nur Container; leer = beides)
exclude_vmids = 999
exclude_names = *-test
exclude_tags = nosnap
Kontrollieren lässt sich das Ergebnis an zwei Stellen: unten in der
Gruppenmaske („Trifft aktuell zu auf …") und
mit pvesnap vms.
Tags
Der empfohlene Weg. Die Auswahl steht dann bei der VM, nicht in der
Konfiguration — und eine neue Maschine ist mit einem Klick dabei, ohne dass
jemand pvesnap.conf anfassen muss.
tags = produktion
In Proxmox setzen:
qm set 101 --tags produktion,datenbank
pct set 110 --tags produktion
Oder in der Oberfläche unter VM → Optionen → Tags.
Groß- und Kleinschreibung ist egal; pvesnap vergleicht in Kleinbuchstaben.
Mehrere Tags an einer VM trennt Proxmox mit ; oder , — beides wird gelesen.
!!! tip "Ein Tag je Zeitplan"
Bewährt hat sich, die Tags nach dem Sicherungsrhythmus zu benennen und
nicht nach der Funktion:
```ini
[group:stuendlich]
tags = stuendlich
[group:taeglich]
tags = produktion
```
Dann sieht man in der Proxmox-Oberfläche an jeder VM sofort, wie oft sie
gesichert wird — ohne die Konfiguration zu öffnen.
VMIDs
vmids = 100,101,105-110,200
Einzelne IDs und Bereiche, durch Komma getrennt. Am bequemsten über die VM-Auswahl im Editor.
Präzise, aber pflegeintensiv: Jede neue Maschine muss von Hand nachgetragen werden. Für kleine, feste Zusammenstellungen in Ordnung, für alles Wachsende sind Tags besser.
Namensmuster
names = web-*, db-0?
| Zeichen | |
|---|---|
* |
beliebig viele Zeichen |
? |
genau ein Zeichen |
[abc] |
eines dieser Zeichen |
Praktisch bei sauberer Namenskonvention (web-01, web-02, db-01),
gefährlich ohne: Eine VM, die jemand web-test-alt nennt, fällt in web-*
hinein. Dagegen hilft ein exclude_names = *-test.
Pools
pools = Kunden
Nach dem Proxmox-Pool. Sinnvoll, wenn die Pools ohnehin nach Kunde oder Abteilung geschnitten sind — dann sichert eine Gruppe genau einen Mandanten.
Gasttyp
types = qemu # nur virtuelle Maschinen
types = lxc # nur Container
types = # beides (Vorgabe)
Nützlich in Verbindung mit vmstate = yes, das ohnehin nur für QEMU gilt: Eine
Gruppe mit RAM-Sicherung für die VMs, eine ohne für die Container.
Ausschlüsse
exclude_vmids = 999
exclude_names = *-test, temp-*
exclude_tags = nosnap, pvesnap-recovery
Ausschlüsse schlagen alles. Auch all = yes.
!!! success "Zwei Ausschlüsse, die in jede all-Gruppe gehören"
```ini
exclude_tags = nosnap, pvesnap-recovery
```
**`nosnap`** ist der Notausgang: Wer eine einzelne Maschine aus der
Sicherung nehmen will, setzt ihr das Tag — ohne die Konfiguration
anzufassen.
**`pvesnap-recovery`** trägt jede laufende
[Wiederherstellung](../wiederherstellen/index.md). Ohne den Ausschluss
bekämen diese kurzlebigen Maschinen eigene Snapshots — die dann wiederum
verhindern, dass sie sich sauber verwerfen lassen.
Mehrere Regeln kombiniert
[group:taeglich]
tags = produktion
vmids = 300
exclude_names = *-test
exclude_tags = nosnap
Gelesen: alles mit dem Tag produktion oder VM 300, aber nichts,
was auf -test endet oder das Tag nosnap trägt.
Gestoppte Gäste
skip_stopped = yes
Übergeht Gäste, die gerade aus sind. Vorgabe ist no — auch von einer
gestoppten Maschine wird ein Snapshot angelegt.
Beides ist vertretbar:
skip_stopped = no |
Der Stand ist gesichert, auch wenn die VM länger aus ist. Kostet bei kurzen Intervallen viele identische Snapshots. |
skip_stopped = yes |
Nur laufende Maschinen. Passt zu stündlichen Gruppen, spart Platz — aber eine über Wochen abgeschaltete VM bekommt gar nichts mehr. |
!!! note "Der Mischbetrieb"
Eine stündliche Gruppe mit `skip_stopped = yes`, eine monatliche mit
`skip_stopped = no`. Dann bekommt jede Maschine mindestens den monatlichen
Stand, und die laufenden zusätzlich die feine Auflösung.
Nachsehen, was herauskommt
pvesnap vms
VMID Name Status Gruppen
100 web01 running stuendlich, taeglich, monatlich
101 db01 running stuendlich, taeglich, monatlich
120 build-test stopped (keine Gruppe)
Dasselbe im Editor unter Taste ++v++: