Sicherung von openhab4 in Docker Container

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Snatsch
Beiträge: 369
Registriert: 9. Jan 2021 22:55
Answers: 0

Re: Sicherung von openhab4 in Docker Container

Beitrag von Snatsch »

jetzt läuft es, zumindest das Backup :) Hast du einen Tipp für mich wie ich das Backup im Fall eines Falles wieder einspielen kann. :?:
openhab4.1.2 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung

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

Re: Sicherung von openhab4 in Docker Container

Beitrag von udo1toni »

Das Backup spielst Du auf umgekehrtem Weg ein, d.h. Du stoppst den Container und kopierst anschließend die Daten z.B. per scp vom Backup in die betreffenden Volumes.

Genauer: Du ermittelst auf dem Backup Rechner den Pfad, in dem die Daten liegen (also z.B. /var/rsnapshots/gamma.3/<dockerhostname>/), wechselst in das Verzeichnis und setzt anschließend die passenden Befehle ab:

Code: Alles auswählen

scp -R ./volume1 user@dockerhost:/pfad/zu/den/volumes/volume1
scp -R ./volume2 user@dockerhost:/pfad/zu/den/volumes/volume2
scp -R ./volume3 user@dockerhost:/pfad/zu/den/volumes/volume3
wobei user ein User sein muss, der Schreibrechte auf die Volumes im Dockerhost hat. Der User muss sich per ssh anmelden können. Wenn Du es bequem haben willst, erzeugst Du einen extra User dafür und verpasst diesem User ebenfalls ein Schlüsselpaar, welches Du aber mit Passwort absicherst. Zum Restore kannst Du dann den Private Key entsperren (das geht mit ssh-agent) und musst das Passwort nicht ständig neu eingeben.

volume1-3 sind die einzelnen Verzeichnisse jeweils auf beiden Seiten, also openHAB-conf, openHAB-userdata und openHAB-addons.

-R sorgt dafür, dass der Befehl rekursiv ausgeführt wird.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 369
Registriert: 9. Jan 2021 22:55
Answers: 0

Re: Sicherung von openhab4 in Docker Container

Beitrag von Snatsch »

also wenn mein Pi jetzt mal komplett abrauchen sollte neue SD Karte nehmen Docker darauf installieren und die gesicherten Daten per winSCP wieder in das Verzeichnis /var/lib/docker/volumes kopieren ?
openhab4.1.2 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung

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

Re: Sicherung von openhab4 in Docker Container

Beitrag von udo1toni »

Ja, WinSCP geht natürlich auch. Wichtig ist nur, dass der User passende Rechte hat und die Daten anschließend dem richtigen User gehören. Und der Container muss auch installiert sein :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 369
Registriert: 9. Jan 2021 22:55
Answers: 0

Re: Sicherung von openhab4 in Docker Container

Beitrag von Snatsch »

Hallo, habe heute versucht ein Backup auf eine neue SSD aufzuspielen. Ich habe leider festgestellt das zwar wenn ich die Volumes sichere die Stacks gespeichert werden aber leider meine daten von openhab nicht. Das sind meine Stacks z.B. für obenhab

Code: Alles auswählen

services:
  openhab:
    image: "openhab/openhab:latest"
    restart: always
    network_mode: host
    ports: 
      - 8080:8080
      - 8443:8443
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/etc/timezone:/etc/timezone:ro"
      - "/portainer/Files/AppData/Config/openHAB/openhab_addons:/openhab/addons"
      - "/portainer/Files/AppData/Config/openHAB/openhab_conf:/openhab/conf"
      - "/portainer/Files/AppData/Config/openHAB/openhab_userdata:/openhab/userdata"
    environment:
      CRYPTO_POLICY: "unlimited"
      EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Berlin"
      OPENHAB_HTTP_PORT: "8080"
      OPENHAB_HTTPS_PORT: "8443"
      USER_ID: "998"
      GROUP_ID: "997"
da die Volumes auf

Code: Alles auswählen

      - "/portainer/Files/AppData/Config/openHAB/openhab_addons:/openhab/addons"
      - "/portainer/Files/AppData/Config/openHAB/openhab_conf:/openhab/conf"
      - "/portainer/Files/AppData/Config/openHAB/openhab_userdata:/openhab/userdata"
sind werden sie natürlich nicht mit gesichert. Muss ich die Volumes für openhab ändern in z.B. /var/lib/docker/ volumes/openhab......
openhab4.1.2 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung

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

Re: Sicherung von openhab4 in Docker Container

Beitrag von udo1toni »

Ich verstehe nicht, was Du meinst. Du musst auf dem Host System die Volumes sichern, in diesem Fall also

Code: Alles auswählen

/portainer/Files/AppData/Config/openHAB/openhab_addons
/portainer/Files/AppData/Config/openHAB/openhab_conf
/portainer/Files/AppData/Config/openHAB/openhab_userdata
Wenn Du den Container (und den Rest drum herum) identisch aufsetzt (insbesondere den Speicherort für die Volumes) und die Daten aus den Volumes nach dem Aufsetzen des Containers zurückspielst, erhältst Du ein System mit der kompletten Konfiguration und auch den persistierten Daten, soweit es sich um rrd4j und mapdb handelt (Teil von userdata).
Wenn du andere ("externe") Persistence Services zusätzlich in anderen Containern laufen lässt, musst Du auch dort lediglich die betreffenden Volumes sichern, um den kompletten Datenbestand als Backup zu erhalten.

Weil Du von "Backup auf SSD" schreibst: Wenn Du Docker verwendest, lass bitte den Unfug mit Komplettsicherungen (Imaging) der Partitionen, das mag bei Windows notwendig sein, für GNU/Linux Systeme ist es aus der Zeit gefallen.
Aufsetzen eines GNU/Linux Systems "from Scratch" dauert ca. 5 Minuten (per Pi Imager)
Installieren von Docker anschließend etwa zwei Minuten.
Einrichten von Portainer (wenn man es ein, zwei Mal gemacht hat) weitere fünf Minuten.
Anschließend einen Stack aus einer yaml Datei aufsetzen lassen (abhängig vom Umfang des Stacks) noch mal fünf Minuten. Danach Einspielen der Daten nochmal fünf Minuten, alles in Allem keine halbe Stunde (immer vorausgesetzt, dass die Internetverbindung halbwegs flott ist).
Die Backupdaten der Volumes enthalten ausschließlich die Konfiguration und "Nutzdaten", aber keinerlei Bestandteile der Software, das ist der Witz bei Docker Containern, Daten und Anwendung sind zu 100 % getrennt, ein Container ohne Volumes wird beim Neustart immer "jungfräulich" sein.

Per Imaging dauert das Ganze locker doppelt so lange, und danach stellst Du fest, dass das Backup leider fehlerhaft ist, obwohl (oder gerade weil) das Image locker 20 mal größer ist.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 369
Registriert: 9. Jan 2021 22:55
Answers: 0

Re: Sicherung von openhab4 in Docker Container

Beitrag von Snatsch »

Guten Morgen Udo. Vielen Dank für deine Antwort. Ich denke da hatte ich etwas verkehrt verstanden :( Ich habe 3 Pi auf einem läuft openhab, Frontail, deconz und Portainer. Auf dem 2. läuft Portainer, Crafana, influxdb und MQTT. Auf dem 3. nur Portainer und da werden die Sicherungen drauf gespielt. Bis jetzt habe ich immer nur die Volumes vom 1.Pi gesichert. Mit dem Pfad /var/lib/docker/volumes/ und hatte mich gewundert das die 3 Ordner von openhab nicht darin waren. Portainer hatte zwar die Stacks gespeichert aber keine Daten. Habe ich das jetzt richtig verstanden das ich die Volumes /portainer/Files/AppData/Config/openHAB sichern muss. :?:
openhab4.1.2 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung

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

Re: Sicherung von openhab4 in Docker Container

Beitrag von udo1toni »

Snatsch hat geschrieben: Gestern 11:14 Habe ich das jetzt richtig verstanden das ich die Volumes /portainer/Files/AppData/Config/openHAB sichern muss. :?:
Wenn dies die Pfade auf dem Host sind, ja. Du kannst die Volumes, welche Docker in die Container hineinreicht auf unterschiedliche Weise konfigurieren, das ist zu Anfang eventuell etwas verwirrend. Da in der yaml Konfigurationsdatei absolute Pfade für die Volumes angegeben sind, musst Du auch diese Pfade sichern.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Antworten