Explorer: Transfer-Laufwerke auf F2; cleanup findet verwaiste Snapshot-Sperren
Zwei Luecken, die seit dem Umbau offenstanden.
1. Transfer-Laufwerke waren aus dem Explorer nicht erreichbar
F2 zeigte nur die Dateisysteme des Snapshots. Jetzt stehen die
Transfer-Laufwerke in derselben Liste - aus Sicht des Bedieners ist es
dieselbe Frage ("wo soll ich hinschauen?"), und der Weg ueber
pvesnap-recovery entfaellt.
Das gewaehlte Laufwerk landet im rechten Fenster, links bleibt der
Snapshot. Damit laesst sich direkt aus einem Snapshot auf das
Austauschmedium kopieren, das anschliessend in die wiederhergestellte
Maschine wandert - ohne Zwischenlager auf dem Host.
Ausgehaengt wird beim Verlassen, und zwar nur, was wir selbst eingehaengt
haben: ein Laufwerk, das schon vorher am Host hing, gehoert jemand
anderem. Das finally faengt auch Absturz und Strg-C ab - bliebe es
eingehaengt, gaelte es spaeter als belegt.
2. cleanup fand geschuetzte Snapshots ohne Klon nicht
Loescht jemand eine Wiederherstellung in der Proxmox-Oberflaeche, raeumt
Proxmox den Klon durchaus mit ab - aber nicht den Schutz seines
Quell-Snapshots (rbd snap protect, den setzt es beim Klonen selbst).
Zurueck bleibt ein geschuetzter Snapshot ohne Klon: die Vorhaltezeit
scheitert an ihm jede Nacht mit "snapshot is protected", und
find_orphans() findet prinzipiell nichts, weil es den Datentraeger, nach
dem es sucht, wirklich nicht mehr gibt. Dasselbe entsteht nach einem von
Hand ausgefuehrten rbd flatten.
find_stale_protections() sucht deshalb direkt nach der Ursache: jeder
geschuetzte Snapshot, an dem kein Klon haengt. Ein solcher Schutz hat
keinen Zweck - er existiert einzig dafuer, dass ein Klon seine Grundlage
behaelt. Geloest wird nur der Schutz, geloescht wird nichts. Vor jedem
Loesen wird ein zweites Mal nachgesehen, ob inzwischen doch ein Klon
daran haengt.
cleanup laeuft damit in zwei Durchgaengen und liegt neu auch in der
Oberflaeche auf Taste c - man sucht sonst lange nach einem Befehl, den
man nur im Notfall braucht.
Getestet gegen die Kulisse der Handbuch-Werkstatt: die rbd-Attrappe
kennt jetzt snap ls und children und enthaelt beide Zustaende
nebeneinander - ein geschuetzter Snapshot mit Klon (muss in Ruhe
gelassen werden) und einer ohne (muss gefunden werden).
Handbuch und README nachgezogen, zwei Bildschirmfotos dazu.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
59e7224297
commit
d9d9345d03
@@ -424,9 +424,17 @@ Links der Snapshot, rechts der lokale Rechner:
|
||||
| `F3` / `v` | Datei ansehen (Text oder Hex) |
|
||||
| `F7` / `n` | neues Verzeichnis (nur lokal) |
|
||||
| `F6` / `g` | Verzeichnis direkt eingeben |
|
||||
| `F2` / `m` | anderes Dateisystem des Snapshots wählen |
|
||||
| `F2` / `m` | Laufwerk wählen: anderes Dateisystem des Snapshots — oder ein Transfer-Laufwerk ins rechte Fenster |
|
||||
| `F10` / `q` | eine Ebene zurück (Snapshot wird ausgehängt) |
|
||||
|
||||
**`F2` holt auch Transfer-Laufwerke herein.** In derselben Liste stehen unter
|
||||
den Dateisystemen des Snapshots die
|
||||
[Transfer-Laufwerke](#daten-hinein-und-wieder-heraus--transfer-laufwerke); das
|
||||
gewählte wird am Host eingehängt und im **rechten** Fenster geöffnet. Damit
|
||||
lässt sich direkt aus einem Snapshot auf das Austauschmedium kopieren, das
|
||||
anschließend in die wiederhergestellte Maschine wandert. Beim Verlassen wird es
|
||||
wieder ausgehängt — sonst gälte es später als belegt.
|
||||
|
||||
Der Explorer hat drei Ebenen: **Gastauswahl → Snapshot-Auswahl → Dateien**. Mit
|
||||
`q` geht es jeweils eine Ebene zurück; beim Verlassen des Dateibrowsers wird der
|
||||
Snapshot wieder ausgehängt, sodass man gleich den nächsten öffnen kann. Das
|
||||
@@ -720,14 +728,31 @@ pvesnap-recovery cleanup # zeigt Gefundenes, fragt, räumt auf
|
||||
pvesnap-recovery cleanup --all # auch Datenträger ohne Elternteil
|
||||
```
|
||||
|
||||
Gesucht wird nach Datenträgern der Form `vm-<id>-disk-N`, zu deren VMID es
|
||||
**keine Konfigurationsdatei** unter `/etc/pve/nodes/*/` mehr gibt. Bewusst
|
||||
In der Oberfläche liegt das auf Taste `c`. Aufgeräumt wird in **zwei
|
||||
Durchgängen**, weil zwei verschiedene Dinge liegenbleiben können.
|
||||
|
||||
**1. Datenträger ohne Gast.** Gesucht wird nach Datenträgern der Form
|
||||
`vm-<id>-disk-N`, zu deren VMID es **keine Konfigurationsdatei** unter
|
||||
`/etc/pve/nodes/*/` mehr gibt. Bewusst
|
||||
nicht über `/cluster/resources`: Ein Gast auf einem abgemeldeten Node taucht
|
||||
dort unter Umständen nicht auf — und dann würden die Platten einer lebenden
|
||||
Maschine als verwaist gelten. Ohne Elternteil wird nichts von selbst entfernt,
|
||||
und der Schutz eines Snapshots wird nur gelöst, wenn wirklich kein Klon mehr
|
||||
daran hängt.
|
||||
|
||||
**2. Geschützte Snapshots ohne Klon.** Den Fall findet der erste Durchgang
|
||||
prinzipiell nicht: Proxmox räumt beim Löschen in der Weboberfläche den Klon
|
||||
durchaus mit ab — nur den Schutz des Quell-Snapshots nicht. Zurück bleibt ein
|
||||
geschützter Snapshot ohne Klon, an dem die Vorhaltezeit jede Nacht scheitert,
|
||||
während es keinen liegengebliebenen Datenträger gibt, nach dem man suchen
|
||||
könnte. Dasselbe entsteht nach einem von Hand ausgeführten `rbd flatten`.
|
||||
|
||||
Gesucht wird deshalb direkt nach der Ursache: jeder geschützte Snapshot, an dem
|
||||
kein Klon hängt. Ein solcher Schutz hat keinen Zweck — er existiert einzig
|
||||
dafür, dass ein Klon seine Grundlage behält. **Gelöst wird nur der Schutz,
|
||||
gelöscht wird nichts**; vor jedem Lösen wird ein zweites Mal nachgesehen, ob
|
||||
inzwischen doch ein Klon daran hängt.
|
||||
|
||||
### Und wenn die Maschine nicht auf Ceph liegt?
|
||||
|
||||
Das ganze Thema „Abhängigkeit vom Quell-Snapshot" ist eine **Ceph-Eigenheit**.
|
||||
|
||||
Reference in New Issue
Block a user