Was ist eine geeignete Backup-Strategie für LXD mit BTRFS-Speicher-Backends

Was ist eine geeignete Backup-Strategie für LXD mit BTRFS-Speicher-Backends

Ich bin dabei, meinen Heimserver von Grund auf neu zu konfigurieren und frage mich, was die beste Strategie zum Sichern meiner LXD-Container wäre. Mittlerweile verwende ich Ubuntu 20.04 LTS und habe einige Dienste so konfiguriert, dass sie als LXD/LXC-Container ausgeführt werden. Beispiel:

  • Container „Cloudserv“ mit Seafile
  • Container „Webservice“ mit Nginx und MariaDB

Diese beiden Container befinden sich auf meiner SSD mit BTRFS-Dateisystem. Zur Datenspeicherung verwende ich ein Festplatten-Array (ebenfalls mit BTRFS), in dem ich einen weiteren LXC-Speicherpool mit einem Speichervolumen erstellt habe, das an den Seafile-Container angeschlossen ist, um alle Daten aufzunehmen. Das Layout sieht ungefähr so ​​aus:

SSD

  • BTRFS-Dateisystem
    • Speicherpool „Standard“
      • Container "Cloudserv"
      • Container "Webdienst"
      • Bilder

Festplattenlaufwerke

  • BTRFS-Dateisystem
    • Speicherpool „DataPool1“
      • benutzerdefiniertes Speichervolumen „seafile-data“ --> an Container „cloudserv“ angehängt

Durch die Verwendung von BTRFS hoffte ich, BTRFS-Snapshots und Sende- und Empfangstools nutzen zu können, um Container und Speichervolumes einfach als Subvolumes zu übertragen, z. B. auf einen RasPi mit angeschlossenem BTRFS-Volume. Aber das Lesen von z. B.LXD-HandbuchoderSo sichern und stellen Sie LXD-Container wieder herIch habe den Eindruck, dass ich immer ein Tarball erstellen muss, um eine Instanz zu sichern, die dann übertragen werden kann. Dies würde bedeuten, dass ich tatsächlich einige der attraktiven Funktionen von BTRFS verliere, wie z. B. die Möglichkeit, Subvolumes/Snapshots zu senden/empfangen und inkrementelle Backups meiner LXC-Instanzen und -Daten durchzuführen.

Habe ich etwas vergessen? Kann mir jemand Tipps für einen geeigneten Backup-Workflow für LXD/LXC mit BTRFS geben?

Antwort1

Wenn Sie LXD auf Ihrem Remote-Server installieren und beide Server Btrfs verwenden, können Sie denOptimierter Instanztransferso was:

lxc remote add mybtrfsremotebackupserver XXX
lxc snapshot mycontainer snap1
lxc copy mycontainer mybtrfsremotebackupserver: --verbose

btrf-sendUnd es wird für die erste Übertragung des Containers und aller seiner Snapshots verwendet .

Dann haben Sie eine sehr bequeme Möglichkeit, den Container und seine Snapshots zu verwalten und nur inkrementelle Änderungen mit der Option zu senden--refresh(LXD 3,7)

lxc copy --refresh mycontainer mybtrfsremotebackupserver: --verbose

Aber leider verwendet es rsync, zumindest in LXD 4.0, sodass Sie die btrfs-sendOptimierung verlieren.

Weitere Informationen finden Sie in diesem Problem:Funktionsanforderung: --snapshots-only-Flag zum Kopieren

Außerdem gibt es„Aktualisieren Sie die Unterstützung für benutzerdefinierte Volume-Kopien“aber ich bin nicht sicher, ob es den optimierten Pfad verwendet oder ob es für Ihr Ziel nützlich sein könnte. Sie können auch --optimized-storage im lxc-Export überprüfen

Grüße

verwandte Informationen