USB-Festplatten automatisch einbinden, formatieren und per PBS-Pull-Sync befüllen – wie mit beliebigen Platten umsetzen?

plurgi95

Member
Aug 22, 2023
32
7
13
Hallo zusammen,

ich stehe vor folgendem Szenario und würde mich über eure Erfahrungen und Tipps freuen:

Ich betreibe einen Proxmox Backup Server und möchte externe USB-Festplatten für eine rotierende Offsite-Backup-Strategie nutzen.
Die Idee: Immer wenn ich eine (neue oder bereits verwendete) USB-Platte an den PBS anschließe, soll vollautomatisch Folgendes passieren:

  1. Die Platte erkennen und einbinden
  2. Sie bei Bedarf partitionieren und formatieren (z. B. mit einem einzigen ext4-Dateisystem)
  3. Sie an einem festen Mountpunkt (z. B. /mnt/backup-disk) einhängen
  4. Anschließend die Backup-Daten vom PBS auf die Platte synchronisieren am liebsten über einen Pull-Sync-Job, der aus einem bestehenden Datastore die Daten auf die Platte zieht
Das Ganze soll ohne manuelles Eingreifen funktionieren, und zwar unabhängig davon, welche USB-Platte ich anstecke (verschiedene Hersteller, Größen, ggf. schon mit Daten belegt). Nach Abschluss des Syncs würde ich die Platte dann sicher entfernen und durch die nächste ersetzen.


Meine bisherigen Gedanken und Fragen:

  • udev-Regeln scheinen der richtige Ansatz zu sein, um auf das add-Event eines USB-Blockdevices zu reagieren und ein Skript zu starten. Gibt es da bewährte Muster oder fertige Beispiele, die mit wechselnden Platten-ID/Seriennummern klarkommen?
  • Das Skript müsste dann die Platte sicher identifizieren, eventuell eine neue Partitionstabelle + Partition anlegen und formatieren (z. B. mkfs.ext4 -L BACKUP). Wie vermeidet man hier, versehentlich interne Systemplatten zu zerstören – reichen Filter auf ID_BUS=usb und die Prüfung, ob es sich um eine rotierende Platte handelt?
  • Proxmox Backup Server und Sync-Jobs: Ein Pull-Sync-Job im PBS bezieht sich auf konfigurierte Datastores. Die USB-Platte müsste also dynamisch als Datastore in /etc/proxmox-backup/datastore.cfg eingetragen werden, damit ein Sync-Job sie ansteuern kann. Ist das überhaupt im laufenden Betrieb möglich (z. B. per proxmox-backup-manager datastore create …), und welche Stolperfallen gibt es dabei (Locks, Dienste, Berechtigungen)?
    Oder wäre es praktikabler, das Ziel der USB-Platte als lokal gemountetes Verzeichnis zu nutzen und die Synchronisation mit einem einfachen rsync der Chunks/ des Datastore-Verzeichnisses oder mit proxmox-backup-client umzusetzen?
  • Wechselnde Platten: Die Platten sollen ja rotieren – die nächste angeschlossene Platte soll genauso behandelt werden. Reicht es, sie vorher zu labeln (z. B. BACKUP), damit das Skript sie erkennt und nur dann formatiert, wenn das Label nicht schon existiert?
  • Was sind eure Empfehlungen für Robustheit (Fehlerbehandlung, Logging, Benachrichtigung), damit nicht z. B. ein Sync mitten im Job abbricht und die Platte im unbrauchbaren Zustand steckenbleibt?

Zielumgebung:

  • Aktuelles Proxmox Backup Server (Debian-basiert)
  • USB-3-Festplatten unterschiedlicher Größe (2 TB – 8 TB)
  • Es gibt bereits einen Haupt-Datastore, dessen Inhalt auf die USB-Platten gespiegelt werden soll (Pull)
Ich bin für jeden Hinweis dankbar sei es eine fertige udev-Regel, ein Skriptgerüst oder einfach eine Einschätzung, ob der PBS-Sync-Weg überhaupt sinnvoll machbar ist oder ob ich lieber auf rsync/rclone setzen sollte.

Vielen Dank im Voraus und viele Grüße