Forum: Haus & Smart Home Raspberry - Backup- und Migrationsstrategie


von Mr X. (Firma: keine) (fargotof)


Lesenswert?

Hallo zusammen,

nachdem ich mein Rasberry in den letzten Jahren immer nur mal für 
"Spielereien" und Tests verwendet habe (also mal hier was installiert, 
mal damit rumprobiert, dann wieder neu aufgesetzt), möchte ich ein 
zusätzliches demnächst mal in den "Produktiv"-Betrieb überführen ;) 
Sprich, ein paar Dienste einrichten (ioBroker, NodeRed, ggf. paperless 
ngx, ggf. Cloud). Zwangsläufig wird damit das Thema Backup interessant, 
wobei das bei mir weniger Daten, als vielmehr den Konfigurationsaufwand 
betrifft.

Nun gibt es zum Thema Backup natürlich unzählige Artikel, und für sich 
gesehen ist für eine schnelle Wiederherstellbarkeit vermutlich die 
einfachste Lösung, mir regelmäßig Images der SD-Karte zu ziehen. Auf 
welche der unzähligen Varianten auch immer.

Gleichzeitig stelle ich mir aber die Frage nach einer guten 
"Migrierbarkeit": Was kann ich beim Einrichten bestenfalls von Anfang an 
richtig machen, um später z.B. einzelne Funktionen unkompliziert auf 
andere Systeme (zweites Raspberry, ...) umziehen zu können? Möglichst 
viel via Docker o.ä. erschlagen? Oder baue ich mir da nur neue 
Komplexität ein für einen Anwendungsfall, der vllt. eh nie eintritt?

Habt ihr da "Best Practices"?

Viele Grüße
FargoTof

von Ein T. (ein_typ)


Lesenswert?

Mr X. schrieb:
> Zwangsläufig wird damit das Thema Backup interessant,
> wobei das bei mir weniger Daten, als vielmehr den Konfigurationsaufwand
> betrifft.
> Möglichst viel via Docker o.ä. erschlagen?

Meine Empfehlung (für die ich bestimmt gleich von besonders klugen 
Menschen gebasht werde) ist, Docker Swarm zu nutzen und alle 
Konfigurationsdateien in Unterverzeichnisse eines Verzeichnisses zu 
legen. Dadurch entkoppelst Du die Systemkonfiguration von den 
Konfigurationen der Applikationen und kannst die Konfigurations- und 
Bewegungsdaten Deiner Applikationen einfach vom Cluster ins Backup 
pullen. Dazu würde ich etckeeper mit einem Remote-Repository für /etc 
nutzen, um auch hier sowohl automatische, als auch versionierte Backups 
Deiner Systemkonfiguration zu erhalten.

Damit hälst Dir nicht nur einen Upgrade-, sondern auch einen 
Skalierungspfad offen: wenn die Rechenleistung eines RasPi nicht mehr 
ausreicht, kannst Du relativ einfach das Verzeichnis mit den 
Applikationskonfigurationen in ein repliziertes GlusterFS umziehen und 
dann einen oder mehrere weitere RasPis (oder andere Maschinen) in Deinen 
Cluster konfigurieren. Danach nur noch die Services neu verteilen 
(lassen), fertig ist die Skalierung.

Bei solch einem Setup empfehle ich Traefik als Reverse Proxy. Der 
überwacht den Swarm, die Services geben mit Labels bekannt, wo und wie 
sie erreichbar sein sollen, und um den Rest kümmert sich Traefik. Für 
Dich im Heimnetz ist vermutlich irrelevant, daß Traefik sich auch um 
TLS-Zertifikate von einem ACME-Provider wie Letsenctypt kümmern kann. 
Für das meiste andere eignet sich zumindest in einem Heimnetzwerk 
womöglich das Swarm Mesh, aber das würde ich in nichtvertrauenswürdigen 
Netzwerken nicht benutzen.

Ich persönlich nutze solche Setups (allerdings auf x86) gerne kombiniert 
mit Ansible und Git-Repositories. Das ist anfangs ein bisschen mehr 
Arbeit, aber bei Bedarf kannst Du in Minuten einen Ersatz hochziehen.

von Le X. (lex_91)


Lesenswert?

Mr X. schrieb:
> vermutlich die einfachste Lösung, mir regelmäßig Images der SD-Karte zu
> ziehen.

Hab ich zu Beginn auch so gemacht.
Hat halt den Nachteil dass, Tricksereien außen vor gelassen, die Images 
sehr groß werden.

Ich ziehe mir mittlerweile von allen Geräten Images der Systempartition 
auf Dateiebene mittels rsnapshot.
Das benutzt intern rsync.
Dass die Wiederherstellung im Fehlerfall klappt habe ich zuerst mehrmals 
ausprobiert.
Hat auch den Charme dass du die Backups direkt durchsuchen kannst, ohne 
erst ein Image auf nem loopback zu mounten.

Mr X. schrieb:
> Was kann ich beim Einrichten bestenfalls von Anfang an richtig machen,
> um später z.B. einzelne Funktionen unkompliziert auf andere Systeme
> (zweites Raspberry, ...) umziehen zu können?

Den Raspberry rauswerfen, einen kleinen Intel NUC für 120€ anschaffen, 
Proxmox installieren und jedem Dienst seine eigene VM oder Container 
zuweisen und dich freuen dass die Weboberflächen von ioBroker, Nextcloud 
und Co. sogar richtig flott sein können wenn sie auf richtiger Hardware 
laufen dürfen ;-)

: Bearbeitet durch User
von Sheeva P. (sheevaplug)


Lesenswert?

Le X. schrieb:
> Ich ziehe mir mittlerweile von allen Geräten Images der Systempartition
> auf Dateiebene mittels rsnapshot.
> Das benutzt intern rsync.

UND es benutzt dessen Feature, unveränderte Dateien nur als Hardlinks zu 
speichern, was die Inhalte wirksam dedupliziert.

> Dass die Wiederherstellung im Fehlerfall klappt habe ich zuerst mehrmals
> ausprobiert.

Die Wiederherstellung von Backups regelmäßig zu überprüfen, halte ich 
für absolut essentiell für einen ruhigen Schlaf.

> Den Raspberry rauswerfen, einen kleinen Intel NUC für 120€ anschaffen,
> Proxmox installieren und jedem Dienst seine eigene VM oder Container
> zuweisen und dich freuen dass die Weboberflächen von ioBroker, Nextcloud
> und Co. sogar richtig flott sein können wenn sie auf richtiger Hardware
> laufen dürfen ;-)

Wenn alles in VMs gepackt wird, bedeutet das leider, daß die Backups 
entweder pro VM eingerichtet werden müssen oder ziemlich groß werden. An 
dieser Stelle hat Docker, wie der Typ das vorschlägt, eindeutige 
Vorzüge.

Zudem haben wir in der Company leider die Erfahrung machen müssen, daß 
die Proxmox-Backups leider bisweilen dazu führen, daß die VM einfriert 
und nur mittels eines harten Reset wiederbelebt werden können.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Sheeva P. schrieb:
> Backups leider bisweilen dazu führen, daß die VM einfriert
> und nur mittels eines harten Reset wiederbelebt werden können.

Das kann daran liegen, dass die Zeitstempel der Backups nicht zur 
Istzeit passen. Die internen virtuellen Netzwerke können sich dadurch 
blockieren und alles lahmlegen.

von Oliver S. (phetty)


Lesenswert?

Ich schreibe Backups auf einen USB-Stick und auf ein NAS mittels
https://github.com/framps/raspiBackup

Das Image kann man direkt wieder auf eine SD-Karte schreiben und es geht 
weiter.

von Schwierig (ruelps)


Lesenswert?

Also ich betreibe meinen Pi 2B seit Jahren mit einer SSD. Diese 
SD-Karten sind nix für Dauerbetrieb. Ich boote nur davon. Und das 
Betriebssystem wird per LVM gemanaged. Perfomanceänderungen konnte ich 
dadurch nicht feststellen. Einfach im laufenden Betrieb per cron einen 
Snapshot machen und den dann gemütlich mit fsarchiver wegsichern. 
Restore auch (erfolgreich) damit. Diese ganzen Backupscripte mit Dienste 
in dieser und jener Reihenfolge stoppen und starten kann früher oder 
später nur in die Hose gehen. Damit hatte ich mich anfangs auch 
beschäftigt.

von Uwe D. (monkye)


Lesenswert?

Inzwischen bin ich mit Docker und ein paar Grundregeln, wie o.g. separat 
abgelegter YAML- und Config-Files sehr zufrieden.
Der Umzug eines kompletten RasPi 4 (von 2GB Auf die 8GB RAM Variante) 
mit 6 laufenden Containern zur Hausautomation hatte ich innerhalb von 1h 
wieder produktiv. Wobei ich nicht mit SD-Karten hantiere, sondern die 
Daten immer auf SSD‘s liegen habe.
Die Daten hatte ich mit rsync geschoben, hab‘ mir dazu ein paar Skripte 
gebaut. Weil die Konfiguration nicht am Benutzer klebte, war der Umzug 
unkompliziert.
Die Sicherung von ganzen Images hat mir zu lange gedauert und zu viel 
Platz verschlungen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.