NEWS
[Gelöst] Im Docker von jsonl auf Redis umstellen
-
@mcbirne
Auch wenn ich redis als hoast installiere klappt es nicht. Muss ich auf redis erst etwas einstellen? Aktuell installiere ich es nur und starte es.
dort steht dann:
-
ich habe mal im folgenden meine compose/stacks/projekt konfiguration gepostet.
im originalen habe ich ein macvlan laufen. dadurch hat der iobroker eine eigene ip.
das wäre evtl auch noch eine lösung, da macvlan die gleichen vorteile wie host hat, allerdings den verkehr vom host wegkapselt. broadcast/etc. läuft und man bekommt keine überlappende portsversion: '3' services: iobrokerprod5: container_name: iobrokerprod5 image: buanet/iobroker hostname: iobrokerprod5 restart: always ports: - "8081:8081" volumes: - /home/iobroker/docker/volume/iobroker/prod5/iobroker:/opt/iobroker networks: dockerMACVLAN: ipv4_address: 192.168.1.85 iobrokerprod5: redis5: image: "redis:alpine" volumes: - /home/iobroker/docker/volume/iobroker/prod5/redis:/data networks: iobrokerprod5: networks: dockerMACVLAN: external: true iobrokerprod5:
ich habe mal für deine konstellation versucht das blind anzupassen. also getestet habe ich es nicht
interessant für dich ist der abschnitt networks in beiden containerdefinitionen.
das erzeugt in beiden containern ein weiteres netzwerk. das ist so, wie wenn die eine weitere netzwerkkarte eingesteckt haben. iobroker ist über den hostmode über die host ip adresse erreichbar. iobroker und redis ist über das 2.netzwerk erreichbar, das aber genau diese beiden container verbindet. daher ist redis dann auch über den servicenamen als host erreichbar (hier redis5)
beim iobroker kannst du dann noch die environment variablen ergänzen, so das der iobroker richtig auf redis konfiguriert wird.
ich mach das immer direkt auf der containerconsole, aber besser wäre das natürlich hier .version: '3' services: iobrokerprod5: container_name: iobrokerprod5 image: buanet/iobroker hostname: iobrokerprod5 network_mode: "host" restart: always ports: - "8081:8081" volumes: - /home/iobroker/docker/volume/iobroker/prod5/iobroker:/opt/iobroker networks: iobrokerprod5: redis5: image: "redis:alpine" volumes: - /home/iobroker/docker/volume/iobroker/prod5/redis:/data networks: iobrokerprod5: networks: iobrokerprod5:
-
@oliverio
sorry, das ist mir etwas zu viel. Ich weiß nicht, wie ich ein MACVLAN erstellen soll. Ich habe zwar eine Anleitung gefunden, aber da fehlen mir einige Details. Das übersteigt meine Fähigkeiten zu stark. -
dann lies mal den Post nochmal ganz genau. Insbesondere den 2.Teil und nicht schon nach dem ersten Satz aufhören.
-
@mcbirne sagte in Redis Umstellung:
Muss ich auf redis erst etwas einstellen?
Ja ...
denn du hast eine vorhandene ioBroker Installation ,die als Datenbank jsonl schon enthält und das muß erst als redis migriert werden.
also Dockerimage mit dem Redis starten , dann
iobroker starten , dann in der Konsole ( Putty )
pkill -u iobroker iobroker setup custom
dann auf redis alles umstellen .
dann erfolgt ein Backup und dann wird auf dem Server Redis migriert .
( im Mount Ordner / Image Redis liegt dann eine dump.rdb Datei )Dann den ioBroker Container neu starten.
mehr brauchst du nicht machen .. auch kein ENV Eintrag wie z.b IOB_OBJECTSDB_TYPE im ioBroker Docker.
wie du oben angegeben hast !
-
@glasfaser
OK,also mache ich folgenden:
- Nutzen der aktuellen ioBroker Instalation (als Host installiert)
- redis als host installieren
- dann in der ioBroker Console folgendes eingeben
pkill -u iobroker iobroker setup custom
-
@mcbirne
Ich habe alles durchgeführt, die Migration ist auch erfolgreich gewesen, allerdings steht im Info Bereich immer noch diese Meldung:
Woher weiß ich, dass nun redis genutzt wird? -
@mcbirne sagte in Redis Umstellung:
Woher weiß ich, dass nun redis genutzt wird?
iob status
angucken.
-
@marc-berg
super, ist redis. Vielen Dank für die Unterstützung auch an alle anderen!
Ich merke es sogar. Variablenwerte bei der Erstellung von Blocklys werden im Auswahlfenster wieder angezeigt. Vorher war dort immer null und der Java Adapter startete bei Speichern nach der Auswahl von Variablen meistens neu.Eine Frage habe ich noch zu dem Thema. Ich habe jetzt das Backup umgestellt und auch redis ausgewählt. (oder ist das nicht nötig?) Jetzt ist das Backupfenster seit ca. 30 min unverändert...
Dauert das Backup so ewig? normalerweise waren es immer nur wenige Sekunden (ohne redis)
-
@mcbirne
das Backup von redis funktioniert nicht.
Muss ich es separat sichern? Wenn ja, wie? (mit Backitup?) -
entweder du sicherst für dich das redis volume
oder du liest die dokumentation von backitup
https://github.com/simatec/ioBroker.backitup/blob/master/docs/de/backitup.md#:~:text=Für ein Remote-Backup wird auf dem lokalen ioBroker System redis-cli benötigt. -
@oliverio
Danke für den Tipp. Also ist alles was man braucht in der Datei dump.rdb. Die sichere ich dann einfach manuell. -
@mcbirne sagte in Redis Umstellung:
Also ist alles was man braucht in der Datei dump.rdb.
Richtig !
Da es jetzt bei dir funktioniert , setze den Thread auf [Gelöst]
Und noch eine Bitte , ändere den Titel auf
" Im Docker von jsonl auf Redis umstellen "