Zum Inhalt

Backups und Restore

Weave bietet aktuell keine integrierte Backup- oder Restore-Funktion. Dieses Dokument beschreibt ein manuelles Backup auf Basis der relevanten Systempfade.

Voraussetzungen

Der Master Key wird nach dem ersten Start von weaved erzeugt und für den Restore von Backups benötigt.
Speichere ihn unmittelbar nach der Installation an einem sicheren Ort (z. B. Secret Vault oder Passwort-Manager).

Der Standardpfad ist in der bootstrap.yml unter encryptionkey: hinterlegt.

Master Key sicher aufbewahren

Ein Verlust führt dazu, dass alle Backups unbrauchbar sind. Der Key kann nicht wiederhergestellt werden.

Was gesichert werden muss

Pfad Zweck Pflicht
/var/lib/weave/weave.db Hauptdatenbank (Tokens, Credentials, Konfiguration) Ja
/var/lib/weave/weave.db-wal Write-Ahead-Log (Daten im Write Cache) Ja
/var/lib/weave/weave.db-shm Shared-Memory-Datei für WAL Ja
/etc/weave/encryption.key Master Key zur Entschlüsselung der Daten Ja

SQLite WAL Dateien müssen zusammen gesichert werden

Die Dateien weave.db, weave.db-wal und weave.db-shm müssen immer zusammen gesichert werden.
Fehlt die WAL-Datei, können die letzten Änderungen verloren gehen.

Optional

Pfad Zweck
/etc/weave/bootstrap.yml Konfiguration
/var/lib/weave/license/ Lizenzdateien (können neu angefordert werden)

Backup erstellen

Es gibt zwei Wege, ein Backup zu erstellen:

  • Der Hot Backup nutzt den SQLite Online-Backup-Mechanismus und läuft ohne Unterbrechung des Services, benötigt aber das Paket sqlite3.
  • Der Cold Backup stoppt den Daemon und kopiert die Dateien direkt — einfach, aber mit kurzer Downtime.

Voraussetzung: das Paket sqlite3 ist installiert.

$ sudo apt install sqlite3    # Debian, Ubuntu
$ sudo dnf install sqlite     # RHEL, Alma, Rocky

Lege ein Staging-Verzeichnis mit der Zielstruktur an, erzeuge einen konsistenten Snapshot der Datenbank und kopiere den Master Key dazu:

$ sudo mkdir -p /tmp/weave-backup/var/lib/weave \
                /tmp/weave-backup/etc/weave
$ sudo -u weave sqlite3 /var/lib/weave/weave.db \
    ".backup /tmp/weave-backup/var/lib/weave/weave.db"
$ sudo cp /etc/weave/encryption.key \
          /tmp/weave-backup/etc/weave/encryption.key

Packe das Staging-Verzeichnis in ein Archiv und räume auf:

$ sudo tar czf weave-backup.tar.gz \
    -C /tmp/weave-backup var etc
$ sudo rm -rf /tmp/weave-backup

Der Daemon bleibt während des gesamten Vorgangs aktiv.

Kein WAL und SHM nötig

sqlite3 .backup erzeugt eine einzelne, in sich konsistente .db-Datei — die Dateien weave.db-wal und weave.db-shm werden beim Hot Backup nicht benötigt. SQLite legt beide beim nächsten Daemon-Start automatisch wieder an.

Stoppe den Service, um ein konsistentes Backup zu erstellen:

$ sudo systemctl stop weaved

Sichere anschließend alle erforderlichen Dateien:

$ sudo tar czf weave-backup.tar.gz \
  /var/lib/weave/weave.db \
  /var/lib/weave/weave.db-wal \
  /var/lib/weave/weave.db-shm \
  /etc/weave/encryption.key

Starte den Service danach wieder:

$ sudo systemctl start weaved

Restore durchführen

1. Service stoppen

$ sudo systemctl stop weaved

2. Backup wiederherstellen

$ sudo tar xzf weave-backup.tar.gz -C /

Warum -C /?

Das Backup enthält absolute Pfade (/var/lib/weave/...). tar entfernt beim Entpacken standardmäßig das führende / und legt die Dateien relativ zum aktuellen Verzeichnis an. -C / wechselt vor dem Entpacken ins Root-Verzeichnis, sodass die Dateien wieder an ihrem ursprünglichen Ort landen.

3. Dateiberechtigungen setzen

$ sudo chown -R weave:weave /var/lib/weave
$ sudo chown weave:weave /etc/weave/encryption.key
$ sudo chmod 600 /etc/weave/encryption.key

4. Service starten

$ sudo systemctl start weaved

5. Funktion überprüfen

Überprüfe, ob der Daemon aktiv ist und ob deine Datenbank wiederhergestellt wurde:

$ systemctl is-active weaved
$ weave setting show

Wenn beide Prüfungen erfolgreich sind, ist der Restore abgeschlossen.