Benutzung von btrfs snapshots

  • Moin zusammen und frohes neues Jahr! :)


    Ich hab mal eine Frage, die sich vor allem an framp richtet... ist es möglich oder sogar angedacht, btrfs-Snapshots in raspiBackup zu integrieren?

    Inzwischen kann man ja das Root-Filesystem relativ unkompliziert mit btrfs-convert auf btrfs umstellen...


    Der große Vorteil ist die Downtime der gestoppten Services: aus "Services stoppen - Backup - Services starten" würde dann "Services stoppen - snapshot - Services starten - Backup" werden, so dass die Services dann nur kurz offline wären. Ich denke dabei an mein Home Assistant, aber natürlich auch Docker, Datenbanken usw. würden profitieren...

  • btrfs-Snapshots in raspiBackup zu integrieren?

    Snapshots als Backups auf demselben Device von dem das System läuft zu erstellen macht meiner Meinung nach wenig Sinn. Wenn das Device stirbt sind die Backups auch weg :nosmile:

    Dann macht es wohl eher Sinn btrfs Snapshots auf der externen Backuppartition zu erstellen. In wieweit das funktioniert muss ich mir ansehen. Ich kenne btrfs nur dem Namen nach und habe es noch nie genutzt.

    Ich habe mal einen Issue im github erstellt dass ich vielleicht mal btrfs Usage evaluiere.

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Mein Raspberry Garten

    3 * RPi1B, 2 * RPi3B, 2 * RPi4B, 1 * CM4, 1 * RPi5

  • btrfs-Snapshots in raspiBackup zu integrieren?

    Snapshots als Backups auf demselben Device von dem das System läuft zu erstellen macht meiner Meinung nach wenig Sinn. Wenn das Device stirbt sind die Backups auch weg :nosmile:

    Du hast zwar recht, aber das meinte ich nicht.


    Betrachten wir mal den Ablauf bei einer normalen Sicherung:

    - alles vorbereiten

    - Services runterfahren

    - Sicherung

    - Services hochfahren

    - Nacharbeiten

    Die Services bleiben solange unten bis die Sicherung durchgelaufen ist, das kann je nach Netzwerk und Größe der Sicherung auch schonmal lange dauern, durchaus im Bereich von Stunden, wenn das Netz nicht so schnell oder die Partition so voll ist.


    Mit Snapshot:

    - alles vorbereiten

    - Services runterfahren

    - Snapshot erstellen

    - Services hochfahren

    - Sicherung

    - Nacharbeiten, inkl. Löschung der nicht benötigten Snapshots (hier würde sich ja auch anbieten, die Snapshots eine Weile aufzuheben, als Absicherung gegen unbeabsichtigtes Löschen)


    Bei dieser Variante müssen die Services nur kurz runtergefahren werden, und die eigentliche Sicherung findet danach statt, nämlich vom Snapshot (der sich ja nicht mehr verändert, tadaaaaaa!), während die Services wieder laufen. Dann macht eine längere Laufzeit auch nicht so viel aus (sollte natürlich beendet sein bevor die nächste Sicherung ansteht).

    Der Vorteil ist halt, dass was auch immer auf dem Raspi läuft dann auch während des ggf. laaangen Sicherungslaufs verfügbar ist - Docker, Datenbanken, Smart Home, Webserver, was man halt auch immer auf dem Gerät hat.

  • Der Zeitgewinn ist bei einem Snapshot natürlich sehr gross. Die Idee erst den Snapshot zu erstellen und dann diesen extern zu sichern ist eine gute Idee.

    Ich habe gesehen dass Du Deine Idee noch in den Issue reingeschrieben hast. Sehr gut :thumbsup1:und Danke.

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Mein Raspberry Garten

    3 * RPi1B, 2 * RPi3B, 2 * RPi4B, 1 * CM4, 1 * RPi5

  • Hallo,

    IMHO lesenswert zu dem Thema: https://fedoramagazine.org/working-with-btrfs-snapshots/ Da gibt es auch einen Abschnitt, wo erklärt wird, warum ein btrfs snapshot nicht automatisch mit einem Backup gleichzusetzen ist.

    Gruß, noisefloor

    Es geht hier (nur) darum, eine schnelle temporäre Kopie zu erzeugen und das System wieder freizugeben.

    Dass das Snapshot hinüber ist wenn z.B. die Karte den Geist aufgibt, ist klar :)

    Edited once, last by DBa (January 3, 2025 at 5:49 PM).

  • Diese ganzen Extensionpoints sind nach und nach reingekommen weil es immer wieder Requests gab irgendwas an der Processinglogic von raspiBackup verändern zu können - so wie Du. Und mit den Extensionpoints können erfahrene Nutzer diese Dinge einbauen ohne dass raspiBackup geändert werden muss. Das ist besonders sinnvoll wenn es sehr spezielle Anforderungen sind die sich nocht lohnen als Feature in raspiBackup eingebaut zu werden.

    Bin mal gespannt auf Deinen PR. Ich könnte mir vorstellen einen weiteren Extensionpoint einzubauen mit dem man die Quelle des Backups beeinflussen kann :wink1:

    Der Restore der btrfs Rootpartition sollte auch funktionieren denn raspiBackup unterstützt auch schon länger btrfs als Filesystem.

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Mein Raspberry Garten

    3 * RPi1B, 2 * RPi3B, 2 * RPi4B, 1 * CM4, 1 * RPi5

  • Bau mal nicht viel drum rum sondern erstelle Code so dass ich sehen kann wie Du es machen willst. Dann sehen wir mal ob ich eine Möglichkeit sehe alles per Extensions zu erschlagen bzw noch eine neue Extension einzubauen, denn das ist in meinen Augen die beste Lösung.

    Ausserdem solltest Du daran denken dass Dein PR definitiv nicht in die aktuelle 0.6.9.1 reinkommen wird. Erstelle am besten bei Dir einen separaten Branch vom master.

    zum Anderen weil ich zu doof bin um einen PR zu erzeugen

    Ich kannn Dir dabei helfen wenn Du willst. Es gibt schon zwei Mitglieder hier im Forum die PRs erstellt haben und denen ich dabei geholfen habe :wink1:

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Mein Raspberry Garten

    3 * RPi1B, 2 * RPi3B, 2 * RPi4B, 1 * CM4, 1 * RPi5

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!