Hallo Zusammen,
ich benötige wieder einmal einen Denkanstoß bzw. eine Erklärung für ein Verhalten.
Ausgangssituation:
- PVE-Cluster mit 3 Nodes
- auf Wechselmedien (USB-HDD) sollen wöchentlich Offline - Backups erstellt werden
- auf den PVE-Hosts gibt es ein Storage (Directory) für den Mountpunkt der USB-Platte
Ziel:
- USB-HDD physisch anstöpseln -> die Platte soll automatisch gemountet werden
- auf dem jeweiligen Host, an dem die Platte steckt, das Backup über das WebIF manuell anstoßen
Dachte ich mir, kann ja nicht so schwer sein, udev Regel und fertig.
Ergebnis: Zu lange das mount Zeugs nicht mehr gebraucht um festzustellen, dass die "neueren" udevs einen eigenen Namespace verwenden und das Mounten so nicht mehr funktioniert.
Plan B: systemd automount
Einen Eintrag in der fstab erstellt und per Label mounten lassen.
systemd reload
Funktioniert soweit, Platte anstecken wird automatisch gemountet und kann als Backup-Storage verwendet werden
ABER
Ist die Platte nicht angesteckt ist das Webinterface des PVE-Host nicht mehr brauchbar. VM-Namen verschwinden, es werden keine Daten mehr angezeigt nur "Loading"
Restart des pveproxy hilft hier nicht. Den pvedaemon habe ich nicht neu gestartet - wobei ich vermute dass der hier keine Daten mehr liefert.
Lösung
Änderung des fstab Eintrags und setzen eines Timeouts
Nun zu meinen Fragen:
Warum hängt hier das PVE-System wenn kein Timeout gesetzt ist? Ist das so gewollt?
Was ist hier eigentlich ein sinniges Timeout?
ich benötige wieder einmal einen Denkanstoß bzw. eine Erklärung für ein Verhalten.
Ausgangssituation:
- PVE-Cluster mit 3 Nodes
- auf Wechselmedien (USB-HDD) sollen wöchentlich Offline - Backups erstellt werden
- auf den PVE-Hosts gibt es ein Storage (Directory) für den Mountpunkt der USB-Platte
Code:
dir: USB-BACKUP
path /mnt/usb_backup
content backup
is_mountpoint 1
mkdir 0
prune-backups keep-all=1
shared 0
Ziel:
- USB-HDD physisch anstöpseln -> die Platte soll automatisch gemountet werden
- auf dem jeweiligen Host, an dem die Platte steckt, das Backup über das WebIF manuell anstoßen
Dachte ich mir, kann ja nicht so schwer sein, udev Regel und fertig.
Ergebnis: Zu lange das mount Zeugs nicht mehr gebraucht um festzustellen, dass die "neueren" udevs einen eigenen Namespace verwenden und das Mounten so nicht mehr funktioniert.
Plan B: systemd automount
Einen Eintrag in der fstab erstellt und per Label mounten lassen.
Bash:
LABEL=usb_backup /mnt/usb_backup auto noauto,nofail,x-systemd.automount 0 0
Bash:
systemctl daemon-reload
systemctl restart local-fs.target
Funktioniert soweit, Platte anstecken wird automatisch gemountet und kann als Backup-Storage verwendet werden
ABER
Ist die Platte nicht angesteckt ist das Webinterface des PVE-Host nicht mehr brauchbar. VM-Namen verschwinden, es werden keine Daten mehr angezeigt nur "Loading"
Restart des pveproxy hilft hier nicht. Den pvedaemon habe ich nicht neu gestartet - wobei ich vermute dass der hier keine Daten mehr liefert.
Lösung
Änderung des fstab Eintrags und setzen eines Timeouts
Bash:
LABEL=usb_backup /mnt/usb_backup auto noauto,nofail,x-systemd.automount,x-systemd.device-timeout=1 0 0
Nun zu meinen Fragen:
Warum hängt hier das PVE-System wenn kein Timeout gesetzt ist? Ist das so gewollt?
Was ist hier eigentlich ein sinniges Timeout?