NEWS
REDIS und IOBroker läuft nicht mehr
-
Ich wollte nun auch mal auf REDIS wechseln und habe nun das Problem, dass mein IOBroker nicht mehr läuft. Also das ganze wieder auf File umstellen wollen und eght nicht. Was mach ich denn da falsch
root@Beelink:/opt/iobroker# iobroker status No connection to 127.0.0.1:6379[redis] No connection to states 127.0.0.1:6379[redis] root@Beelink:/opt/iobroker# iobroker setup custom Current configuration: - Objects database: - Type: redis - Host/Unix Socket: 127.0.0.1 - Port: 6379 - States database: - Type: redis - Host/Unix Socket: 127.0.0.1 - Port: 6379 Type of objects DB [(f)ile, (r)edis], default [redis]: f Host / Unix Socket of objects DB(file), default[127.0.0.1]: Port of objects DB(file), default[9001]: Type of states DB [(f)file, (r)edis], default [redis]: f Host / Unix Socket of states DB (file), default[127.0.0.1]: Port of states DB (file), default[9000]: Data directory (file), default[../../iobroker-data/]: f Host name of this machine [Beelink]: It appears that you want to convert this slave host into a Master or Single host system. Is this correct? [Y/n]: y Do you want to migrate objects and states from "redis/redis" to "file/file" [y/N]: y Migrating the objects database will overwrite all objects! Are you sure that this is not a slave host and you want to migrate the data? [y/N]: y Connecting to previous DB "redis"... No connection to 127.0.0.1:6379[redis] No connection to states 127.0.0.1:6379[redis] root@Beelink:/opt/iobroker# iobroker setup custom Current configuration: - Objects database: - Type: redis - Host/Unix Socket: 127.0.0.1 - Port: 6379 - States database: - Type: redis - Host/Unix Socket: 127.0.0.1 - Port: 6379 Type of objects DB [(f)ile, (r)edis], default [redis]:
es fehlen die Ports:
root@Beelink:~# netstat -n -a -p TCP Aktive Internetverbindungen (Server und stehende Verbindungen) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 652/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 524/cupsd tcp 0 0 0.0.0.0:538 0.0.0.0:* LISTEN 598/gdomap tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 861/smbd tcp 0 0 192.168.100.10:50205 0.0.0.0:* LISTEN 811/zerotier-one tcp 0 0 192.168.100.10:50206 0.0.0.0:* LISTEN 811/zerotier-one tcp 0 0 192.168.100.10:9993 0.0.0.0:* LISTEN 811/zerotier-one tcp 0 0 127.0.0.1:9993 0.0.0.0:* LISTEN 811/zerotier-one tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 861/smbd tcp 0 0 192.168.100.10:57532 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57810 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57536 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57506 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57534 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34590 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57466 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34440 192.168.100.20:49000 TIME_WAIT - tcp 0 64 192.168.100.10:22 192.168.100.16:51076 VERBUNDEN 870/sshd: root@pts/ tcp 0 0 192.168.100.10:57482 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:41486 192.168.100.3:80 TIME_WAIT - tcp 0 0 192.168.100.10:34602 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57574 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57488 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34608 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34598 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57526 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57500 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34580 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57518 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57540 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57548 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57544 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57486 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57460 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57484 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34434 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34588 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57508 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34604 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57504 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34458 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57726 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57864 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34584 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34582 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57990 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34610 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57510 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34414 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34596 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57528 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57522 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57502 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57530 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34614 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57538 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34592 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57820 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34594 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34578 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57498 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57558 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57524 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57454 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57554 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34586 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34406 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57512 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57468 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57480 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57580 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34612 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34576 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57470 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:34456 192.168.100.20:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57572 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57546 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57492 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57556 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57490 192.168.100.1:49000 TIME_WAIT - tcp 0 0 192.168.100.10:57542 192.168.100.1:49000 TIME_WAIT -
-
@Jan1 Naja es ist einfach: iobroker setup custom, aber bei der Frage nach Migration NEIN sagen!!
Dann solltest Du auf den letzten File-Stand zurückkehren. Falls da dann was kaputt ist einfach Backup aus dem Backup Verzeichnis mit "migration" im Namen raussuchen und restoren -
@apollon77
Gibts hier eigentlich ne Anleitung? Hab im Forum viel gefunden, aber wirklich schlau bin ich nicht daraus geworden.
Du schreibst man soll nicht migriten, ist das denn nicht Sinn der Sache?
Was wird denn eigentlich empfohlen redis/ redis oder eher file/redis? -
@Jan1 sagte in REDIS und IOBroker läuft nicht mehr:
Du schreibst man soll nicht migriten
Ich habe den Eindruck dass Du das missverstanden hast.
Wenn man von REDIS zurück auf FILE gehen will, dann muss man bei ändern voniobroker setup custom
bei der Frage nach MIGRATION mit Nein antworten damit der ursprüngliche Stand von FILE nicht überschrieben wird -
@BBTown
Jou, war dann ein Missverständnis.
Wie geschrieben, ich habe viel zum Thema REDIS gefunden, nun habe ich ein Puzzel mit vielen Teilen und kein Plan dafür. Ich habs am WE ja schon einmal versaut und bräuchte jetzt eben bisschen Hilfe.
Nach dem man den IOBroker custom Befehl eingegeben hat, sind ja ein paar Fragen zu beantworten, könntest Du bitte (oder ein anderer) hier mal die empfohlenen Antworten, evt. mit kurzer Erklärung posten? -
@Jan1 es gibt da quasi keine empfohlenen Antworten man muss überlegen und fieberhaften für seine eigene Situation und Struktur beantworten. Fünftagewoche versuchen herauszufinden ob eine Migration gemacht werden sollte oder nicht. Alles damit sich möglichst wenige User bei so einer Umstellung das system zerschiessen.
Migration ist an sich nur nötig wenn man den ersten Host umstellt (den Master) und danach sollte es nicht nochmal gemacht werden.
Bei einem Single Host System gibts quasi nur den Master.
Wege zurück kann man denke ich weniger generisch sagen und sind situations speziell.
-
@apollon77 hab da auch mal noch Fragen dazu.
Mein System hat von Anfang an redis installiert ...aus früheren Zeiten, aber nicht genutzt, als ich vom pi3 auf proxmox vm wechselte, so übernommen.
Also die Datenbank mit auf dem Host.
Sollte, wenn man redis nutzt, das Auslagern auf nen separaten Ct oder kann die Datenbank auf dem Iobroker Host verbleiben. (Hintergrundfrage...backup/snapshot der VM)
Habe zwar die Tage mal bisschen herumgespielt mit file/redis, redis/redis um zu sehen, wie das System so läuft.
Aktuell bin ich aber wieder zurück auf file/file.
Hab zwar bisschen was gelesen, zwecks der beiden Varianten, AOF und RDB aber keinen Plan wie was Sinnvoll ist, im Zusammenspiel mit ...siehe Hintergrundfrage -
@apollon77
Heißt also den REDIS Server installiere. Läuft der eigentlich automatisch, oder muss der noch manuell gestartet werden?
Ich habe nur ein Single System, also migration wählen.
Dann gibts ja die Aufteilung redis/redis, file/redis und redis/file. Was bedeutet das im allgemeinen und wird hier etwas empfohlen, oder anders gefragt, was macht auf einem Single System am meisten Sinn.
Die Fragen beim custom Befehl beziehen sich ja genau dadrauf und wenn ich alles so lasse wie default vorgeschlagen, müsste danach eigentlich ein migriertes Single Systen im redis/redis laufen.
So hatte ich das gemacht, nur kam ich danach nicht mehr auf meinen IOBroker und die Ports sahen anders aus als erwartet (siehe Log im ersten Post).Was ich nicht gemacht hatte, war vor dem Wechsel geschsut ob der REDIS Server läuft.
-
@crunchip Auch hier sind wir wieder bei "Flavor"
Meine persönliche Meinung:
Wenn es kein vollständiges redis/redis System ist, also ein teil noch auf file verbleibt, sollte man Redis mit auf den ioBroker Host machen. Wenn Redis weg ist,ist eh das ganze System ggf gestört. Damit bestehen hier die kleinsten Abhängkeiten.Sobald das System redis/redis ist hängt das ganze System nicht mehr von ioBroker ab sondern effektiv vom Redis. Dann muss das nicht auf einem der gleichen Hosts oder Container sein, sondern kann getrennt sein.
Und nochmal: Redis MUSS niemand nutzen! States in Redis hat gewisse Vorteile ab 10.000 States/Objekten im System. Und allgemein sollte die Performance besser sein ... aber halt auch Abhängigkeiten.
Zur Persistanz ist es in meinen Augen einfach:
- RDB sind Snapshot,die nach definierten Regeln erstellt werden. Alle Änderungen nach dem Dump sind nicht persistiert und damit verloren falls Redis abstürzt. Wieviel I/O anfällt hängt von der Größe der DB ab und wie oft Sie geschrieben wird.
- AOF als Ansatz generiert etwas mehr I/O, kann aber beim Neustart exakt den Stand von vor dem Crash wiederherstellen. Es fehlt also nahezu nichts.
Backuppen muss man beides und effektiv muss man überlegen wie man das Backup macht um im Falle von Dateisystem-Fehlern wiederherstellen zu können. Hier bietet sich ein Redis-Slave an, da dann alle Daten nochmals auf einer zweiten Maschine liegen.
-
@Jan1 Im Normalfall (!!) installiert man redis und er wird auf Port 6379 gestartet. prüfen per "redis-cli" Kommando.
Zu den Kombinationen ist die Frage WAS man genau wie Speichern will. Für mich gilt:
- Wenn man <10.000 Objekte/States hat reicht file/file vollkommen
- Falls mehr oder sehr hohe Update-Frequenzen von States und man hat höhere Last auf dem js-controller dann mag es sich lohnen States in Redis zu legen
- Objekte in Redis, meiner Meinung nach, macht Sinn wenn man später in Richtung Hochverfügbarkeit denkt
So oder so: Ja Redis kann mehr Performance bringen.
-
@apollon77 sagte in REDIS und IOBroker läuft nicht mehr:
Falls mehr oder sehr hohe Update-Frequenzen von States und man hat höhere Last auf dem js-controller dann mag es sich lohnen States in Redis zu legen
Gilt das auch für Windows Installationen?
-
@sigi234 Denke ja. Nodejs ist single-Threaded. Das betrifft in dem Zuge speziell den js-controller. Bei "file" werden alle DB Anfragen auch über den js-controller Prozess abgearbeitet.
-
@apollon77
Danke für die Erklärung.
Was ich dabei zwischen den Zeilen lese, ist eigentlich recht deutlich. Man braucht REDIS nicht wirklich wenn die Performance eh schon gut ist und man keine Hochvervügbarkeit braucht. Dann wäre es eh besser REDIS auf einem separaten Host laufen zu lassen und das kommt bei mir eh nicht in Frage.
Somit weiß ich nun wie es bei mir weiter geht -
@Jan1 und ich mit meinen rund 15000 dann auch