Sicherung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Innocent
Beiträge: 238
Registriert: 29. Jul 2020 12:40
Answers: 0

Sicherung

Beitrag von Innocent »

Guten Morgen und einen guten Start in die neue Woche.

Ich brauche erneut eure Hilfe, da ich ja ein absoluter Noob bin... 🤣

Ich habe Openhab auf einem Raspberry Pi 4 laufen. Das System ist auf einer SSD 128 GB.
SD Karte ist keine im Pi.
System läuft einwandfrei ohne Auffälligkeiten.

Nun wollte ich seit einiger Zeit mal wieder sichern.
Dazu nehme ich normalerweise den PI nach Shutdown vom Strom. Entferne die SSD und stecke sie an den Windows Rechner. Dort mache ich in der Regel ein Backup, indem ich von der Festplatte ein Image erstelle und dieses dann auf einen anderen Datenträger kopiere. Funktionierte seither eigentlich immer. Bis gestern. Da meckerte Win32 Disk Imager nach ein paar Minuten, Fehler bei CRC Prüfung und brach den Vorgang ab.

Wie komme ich hier weiter?

Vielen Dank im voraus für eure Antworten und die Geduld mit mir 😃
Openhab 2 auf RaspberryPi 4

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Sicherung

Beitrag von udo1toni »

Platt gesagt ist eine Image Sicherung eines so großen Datenträgers Schwachsinn.
Ja, man kann Datenträger so sichern. Ja, es hat auch schon Fälle gegeben, wo man erfolgreich von einer solchen Sicherung ein System wiederherstellen konnte. Aber danach hört es auch schon auf...
Es ist nicht praktikabel, bei 128 GByte nach dem Erstellen des Image (wie lange dauert das eigentlich?) noch einmal einen kompletten Vergleich laufen zu lassen. Der Vergleich wäre auch nur bedingt hilfreich, denn wenn auf der Platte an einer bestimmten Stelle ein unbemerkter Fehler auftritt, so kann derselbe Fehler auch beim zweiten Lesevorgang auftreten.
Die Sicherung braucht wahnsinnig viel Platz. Man kann das Image natürlich packen, dennoch ist so ein Image größer als nötig.
Du kannst das Image auch nicht probehalber starten, allenfalls in einem virtualisierten Raspberry (dazu muss aber der ARM emuliert werden, das geht nicht mit jedem x-beliebigen Hypervisor) - oder Du sicherst auf einer zweiten SSD und schließt diese dann an... teuer und ebenfalls nicht wirklich praktikabel.
Unterm Strich ist eine solche Sicherung also nahezu wertlos.

Wenn Du openHABian als Grundlage verwendet hast (das offizielle openHAB Image für den Pi), könntest Du Amanda nutzen. Das ist allerdings auch nicht wirklich besser :) weil es ebenfalls Vollbackups als Image erstellt, mit ähnlichen Problemen. Einziger Vorteil hier: der Pi muss nicht runtergefahren werden, Amanda erstellt das Backup im laufenden Betrieb. Es sichert ganz normal im Linux Dateisystem, notfalls könnte man also auf dem Windows Rechner eine Freigabe einrichten und diese im Raspberry mounten.

Besser wäre es, die Sicherung über rsync laufen zu lassen. Dabei werden die Dateien gesichert. Mit dem passenden Script passiert das sogar extrem komfortabel und sehr zeitsparend. Allerdings brauchst Du dazu ein weiteres System, auf welchem rsync laufen kann, am besten 24/7. Hast Du einen zweiten Pi, wäre das ein heißer Kandidat. Ein Script (z.B. rsnapshot) startet in regelmäßigen Abständen - z.B. alle zehn Minuten - und zieht alle Änderungen seit dem letzten Durchlauf. Dein Backup ist also zu keinem Zeitpunkt älter als (im Beispiel) zehn Minuten. Dabei nutzt rsync Hardlinks. Virtuell hast Du alle zehn Minuten ein Vollbackup, auf das Du auf Dateiebene zugreifen kannst. Dateien, die sich nicht geändert haben, benötigen aber nur einmal Platz auf der Festplatte, sie werden sozusagen vom letzten Backup "vererbt". rsync erkennt, ob eine Datei verändert wurde und überträgt nur die Änderungen, nicht die gesamte Datei. Ein Backup nach dem initialen Backup dauert im Schnitt weniger als eine Minute im laufenden Betrieb.
rsnapshot kennt verschiedene Aufhebezyklen, die parallel laufen, also z.B. alle zehn Minuten (6 Sätze), alle Stunde (8 Sätze), täglich (7 Sätze), wöchentlich (5 Sätze), monatlich (12 Sätze) - Macht insgesamt 31 Sicherungen, die im unmittelbaren Zeitraum in 10-Minuten-Schritten, dann in Stundenschritten für einen Arbeitstag, dann täglich, dann wöchentlich, dann monatlich bis ein Jahr zurückreichen. Man kann also im Zweifel noch Änderungen nachvollziehen, die sehr lange zurückliegen. Die verschiedenen Zyklen sind frei konfigurierbar. Natürlich sollte man es auch nicht übertreiben, denn ein Linux Dateisystem kann auch an seine Nutzbarkeits-Grenzen stoßen

Eine weitere Alternative wäre, die zweite Partition auf der SSD zu verkleinern. gewöhnlich spielt man das initiale Image auf dem Datenträger auf, Raspberry Pi OS vergrößert das Image dann beim ersten Start auf die restliche Größe des Datenträgers. Für das root Dateisystem reichen aber 16 GByte vollkommen aus, selbst wenn man zusätzlich noch MariaDB und InfluxDB laufen lässt (welche naturgemäß echt viel Platz für Daten auf dem Datenträger benötigen). Erfahrene Unix User (Linux ist unixoid) legen eher viele kleine Partitionen an, als eine große. Leider ist es einigermaßen schwierig, das nachträglich einzurichten, das ist eher was für ein komplett neues System. Aber zumindest das Verkleinern sollte funktionieren, allerdings (da es die root Partition betrifft) nicht aus dem laufenden System heraus. Du brauchst also ein zweites System (das kann auch eine SD Karte für den Raspberry sein, am besten mit dem original Raspberry Pi OS Desktop), an welches Du die SSD anschließt, dann gparted startest (auf einem Desktop System mit grafischer Oberfläche und sehr komfortabel) und dort die root Partition (das ist die zweite) auf 16 GByte verkleinerst. Den Rest der Platte kannst Du z.B. verwenden, um eine oder auch mehrere andere Partitionen zu erstellen. Diese Partitionen kannst Du dann z.B. einbinden, um dort eine Datensicherung anzulegen (nur als Zwischenspeicher natürlich) oder auch andere Daten zu speichern. Du kannst sogar den Konfigurationszweig von openHAB auf diese Weise auslagern und nur die Partition mit den Daten von openHAB sichern. Bei einem Ausfall kannst Du dann das System bequem wieder herstellen, indem Du es einfach neu aufsetzt und anschließend die Daten von der anderen Partition wieder einbindest.

Für dein konkretes Problem hilft Dir das natürlich nicht, aber wenn Du vom Imager weg kommst, spielt das dann ja keine Rolle mehr :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Innocent
Beiträge: 238
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Sicherung

Beitrag von Innocent »

Gerne würde ich einen kleineren Datenträger nutzen, um wie du schon sagtest auch Zeit zu sparen.

Ich habe damals beim einrichten Angst bekommen, das mir die SD Karte hops geht und deshalb auf SSD gewechselt.

Grundsätzlich hat mein System nicht wirklich viel zu tun. Datenbank ist für mich ein Fremdwort. Lediglich ein paar Shellys liefern Daten über Verbrauch.

Das wird aber nicht aufgezeichnet wenn ich es recht weiß.

Einen Laptop mit Windows habe ich. Der Pi ist im Netzwerk, ich kann ja aber die Linux Partition nicht lesen bzw sehen.

Auch kann ich mit einem Live Linux den Datenträger von openhab, die SSD einsehen. Gparted ist mir dabei ein Begriff.
Sichern möchte ich nur ab und an wenn etwas durch mich hinzu gekommen ist. Beispiel neue Shelly oder eine Rule. Also sporadisch.

Gerne würde ich die Sicherung auf mein NAS machen wollen.
Da ich aber dabei an die Hand genommen werden muß, brauche ich dich / euch.
Ich wäre bereit eine SD mit minimalem Speicher zu verwenden und eine gleiche vorzuhalten, um bei Ausfall agieren zu können.

Ich hoffe, du nimmst mich an die Hand.

Danke schonmal
Openhab 2 auf RaspberryPi 4

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Sicherung

Beitrag von udo1toni »

Ah, wenn Du ein NAS hast, welches ist es denn? Vielleicht bietet es schon von Haus aus rsync an, das ist gar nicht mal so selten.

Die Partition kannst Du einfach über gparted verkleinern, wie gesagt, 16 GByte sind da mehr als ausreichend. Da es sich um eine SSD handelt, sollte das auch schnell erledigt sein.
Wenn Du allerdings Win32Image verwendest, soweit ich das im Kopf habe erstellt der das Image immer vom gesamten Datenträger. Das Image müsste von den einzelnen Partitionen erstellt werden, damit die verkleinerte Partition tatsächlich einen Vorteil bringt.

Das openHABian Image bringt eine Menge Tools mit (bzw. müsste man korrekt sagen, es bringt Skripte mit, die die Tools runterladen und installieren...), unter anderem auch ZRAM. Damit werden alle Schreibzugriffe auf die SD-Karte in eine RAM-Disk umgeleitet. Das beugt dem Wearout recht zuverlässig vor, allerdings um den Preis, dass es vereinzelt seltsames Verhalten zu beobachten gibt. Insbesondere muss man beim Runterfahren oder Neustart darauf achten, das ordentlich zu tun, weil sonst evtl. Daten verloren gehen, die nur ins RAM geschrieben wurden. ZRAM schreibt die Daten beim Neustart automatisch in einem Rutsch auf die SD-Karte, so dass es auch hier nicht zu Wearout kommt.

An die Hand nehmen ist sicher möglich, wichtig ist aber, dass Du selbst mit dem Prozess des Backups klar kommst, und vor allem, dass Du weißt, wie Du im Zweifel ein kaputtes System wieder zum Laufen bringst.

openHAB bringt selbst eine Backup Routine mit, welche alle User-Daten in ein Zip schreibt, welches anschließend einfach "irgendwohin" gesichert werden kann, z.B. auch über Netzwerk auf das NAS. Mit einem solchen Backup kannst Du jederzeit eine neue SD-Karte mit dem dann aktuellen openHABian Image bespielen, das System aufbauen lassen ("erster Boot") und anschließend das Backup zurückspielen. Zu beachten ist dabei lediglich, dass man bei Versionssprüngen mal kurz schaut, ob man von breaking Changes betroffen ist. Meist tritt das auf, wenn die Major Version sich ändert, aber es kommt auf Binding-Ebene durchaus auch beim Wechsel der Minor Versionsnummer vor. Wenn das der Fall ist, muss man halt etwas Hand anlegen oder schauen, ob man die ältere Version noch installieren kann.

Hinweis an dieser Stelle: Online ist immer nur die aktuelle stable Version, testing und unstable zu haben (testing ist der aktuelle Milestone, unstable ist der aktuelle Nightly Build). Alles andere muss man händisch einrichten, so man überhaupt an die Installationsdateien kommt. Ich hatte mit OH1 ein Script, welches mir jeweils die Installationsarchive runter lud, und ich habe Zuhause auch noch an die hundert Ordner mit den jeweils alten Versionen :) könnte ich auch mal entsorgen... Für bestimmte Versionen von openHAB, die per apt installiert wurden müsste man gezielt die Versionen aus dem apt Cache abfischen, um sie später nochmals offline installieren zu können, gewöhnlich lohnt der Aufwand dafür nicht.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Innocent
Beiträge: 238
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Sicherung

Beitrag von Innocent »

Ok. Die hauseigene Routine habe ich gestern ausgeführt und mir den Pfad aufgeschrieben. Muss nur noch openHAB runter fahren ssd an Laptop. Live Linux starten und die zip Datei aufs Laptop bzw nas schieben.

Dann würde ich mir eine bzw zwei identische sd Karten besorgen ( wie groß? 🤔) und das Image aufspielen. Dann mit meiner Sicherung quasi das Backup zurück spielen ...
Wenn das klappt, habe ich es einmal richtig gemacht. Wenn nicht, ssd wieder ran und von neuem versuchen...
Gute Idee?
Habe ich danach mein vorheriges System wie es war?


Schönen Abend
Openhab 2 auf RaspberryPi 4

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Sicherung

Beitrag von udo1toni »

Na, Du musst doch nicht openHAB runter fahren, um die Datei zu kopieren!

Möglichkeit 1: Du nutzt WinSCP. Du trägst dort die Zugangsdaten für ssh ein, anschließend hast Du eine Ansicht ähnlich dem Midnight Commander (oder auch der Dateimanager von Windows 3.11...) eben ein linker Dateibaum (lokal) und eine rechter Dateibaum (remote), zwischen denen Du gezielt Dateien per Drag&Drop kopieren oder verschieben kannst.
Wichtig für den Hinterkopf: das Backup liegt gewöhnlich in einem Ordner, in dem der User openhabian keinen Schreibzugriff hat. Du kannst in dem Fall die Datei zuvor "lokal" auf dem Pi in das home-Verzeichnis vom User verschieben und die Zugriffsrechte anpassen. Aus dem Kopf:

Code: Alles auswählen

sudo mv $OPENHAB_USERDATA/backups/openhab-backup-22_09_05-08_15_36.zip /home/openhabian/
sudo chown openhabian: /home/openhabian/openhab-backup-22_09_05-08_15_36.zip
wobei Datum und Uhrzeit natürlich bei Deiner Datei anders sind. Es ist übrigens besser, die Datei aus dem Verzeichnis zu entfernen, es gab schon Versionen von openhab-cli, welche das backups-Verzeichnis mitgesichert haben. :)
$OPENHAB_USERDATA zeigt im Fall von einem per apt eingerichteten openHAB auf /var/lib/openhab/
Anschließend kannst Du die Datei auf dem oben beschriebenen Weg direkt aus dem home-Verzeichnis des Pi auf den Windows PC kopieren.

Möglichkeit 2: Du steckst einen USB-Stick an den Pi. Nun bin ich nicht sicher, ob der automatisch gemountet wird, aber der Mount-Vorgang dürfte ziemlich sicher so funktionieren:

Code: Alles auswählen

sudo mount /dev/sdb1 /mnt
Anschließend ist der USB-Stick schreibbar über den Pfad /mnt erreichbar, entsprechend sollte ein

Code: Alles auswählen

sudo mv $OPENHAB_USERDATA/backups/openhab-backup-22_09_05-08_15_36.zip /mnt/
reichen, um die Datei auf den Stick zu schieben.
Danach den Unmount nicht vergessen:

Code: Alles auswählen

sudo umount /mnt
Oder Du bindest eben eine Freigabe vom NAS direkt auf dem Pi ein. Der Pi mag am liebsten NFS Freigaben, kommt aber genauso gut auch mit CIFS/SMB zurecht ("Windows Freigabe"/"Samba Freigabe")
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Innocent
Beiträge: 238
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Sicherung

Beitrag von Innocent »

Das habe ich kapiert.
Werde das mit dem Stick im Pi mal noch umsetzen. Das scheint mir für mich das einfachste zu sein.

Wenn ich diesen Vorgang dann gemacht habe, werde ich mit der Sicherung versuchen ein originales System mit der Sicherung wiederherzustellen um meinen Zustand zu erreichen.

Dieses würde ich auf SD Karte packen um im Falle, das mir die Festplatte verreckt, schnell agieren zu können..

Gute Idee?
Openhab 2 auf RaspberryPi 4

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Sicherung

Beitrag von udo1toni »

Ja, sinnvoll.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Innocent
Beiträge: 238
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Sicherung

Beitrag von Innocent »

Ok. Dann besorge ich eine neue SD Karte. Wie groß?
Openhab 2 auf RaspberryPi 4

Innocent
Beiträge: 238
Registriert: 29. Jul 2020 12:40
Answers: 0

Re: Sicherung

Beitrag von Innocent »

Manchmal ist es wie verhext, jetzt habe ich den Stick eingesteckt und wollte per Putty auf den Pi, geht das nicht...

Nach Neustart Pi geht es wieder.
Habe es nun mit WinSCP gemacht, funktioniert für mich am einfachsten.
Openhab 2 auf RaspberryPi 4

Antworten