NEWS
[Frage]Redis Konfiguration auf Slave
-
Habe mal eine Verständnis-Frage:
Lt. Anleitung "Multihost mit Redis" wird folgendes beschrieben:
http://www.iobroker.net/docu/?page_id=3 … _mit_redis
Die Datei redis.conf auf dem Host, auf dem die States gespeichert werden muss wie folgt geändert werden.
wenn ich das korrekt verstehe wäre das in meinem Fall:
bind 127.0.0.1 192.168.2.30 (wobei 192.168.2.30 die IP vom Slave ist)
nun steht kurz drunter:
Diese Anpassung ist auch nur am Master nötig.
Hä, ja wie jetzt?
Ich wollte das nun wie Folgt einstellen. IST DAS SO KORREKT?
SLAVE:
nano /etc/redis/redis.conf bind 127.0.0.1 192.168.2.30
./iobroker setup custom Type of objects DB [file, couch, redis], default [file]: ENTER Host of objects DB(file), default[127.0.0.1]: 192.168.2.42 vom Hauptsystem Port of objects DB(file), default[9001]: ENTER Type of states DB [file, redis], default [file]: ENTER Host of states DB (file), default[cubie]:127.0.0.1 vom Hauptsystem Port of states DB (file), default[9000]: ENTER Host name of this machine [hostname]: ENTER
Host of states DB (file), default[cubie]:127.0.0.1 vom Hauptsystem
–> mit der Zeile habe ich auch so meine Probleme. Hier soll ja die IP vom MASTER rein. Redis ist doch aber auf SLAVE!
MASTER:
./iobroker setup custom Type of objects DB [file, couch, redis], default [file]: ENTER Host of objects DB(file), default[127.0.0.1]: <0.0.0.0> Port of objects DB(file), default[9001]: ENTER Type of states DB [file, redis], default [file]: ENTER Host of states DB (file), default[0.0.0.0]: 192.168.2.30 ENTER Port of states DB (file), default[9000]: ENTER Host name of this machine [hostname]: ENTER
Host of states DB (file), default[cubie]:192.168.2.30 vom Hauptsystem
Hier sollte ja die IP vom Host (SLAVE) rein auf dem Redis läuft, oder?
Kann hier mal jemand Licht ins Dunkle bringen?
-
Hä, ja wie jetzt?
…
Kann hier mal jemand Licht ins Dunkle bringen? `
:oops: :oops: da muss ich wohl noch mal dran :oops: :oops:Zu meiner Entlastung bringe ich vor, dass diese Anleitung für die alte Version geschrieben wurde und für die neue (nur teilweise) angepasst wurde, als diese noch nicht rund lief.
Unter Vorbehalt!
@Lenny.CB:Hier soll ja die IP vom MASTER rein. Redis ist doch aber auf SLAVE! `
Redis soll auf dem Master laufen und muss deshalb auch für alle IPs zu erreichen sein, deswegen auf dem Master die IP 0.0.0.0Auf den Slaves dann entsprechend die IP des Masters eingeben.
auf beiden auf redis umstellen -> dann werden die Objects und die States auf dem Master in einer RedisDB verwaltet.
Und hier bin ich mir wegen der Objects nicht sicher. Bisher hatte ich immer nur die States in Redis verwaltet, die Objects per file.
IST DAS SO KORREKT? `
nach meinem Verständnis nicht, aber da soll sich bitte jemand zu äußern, der ein aktuelles Multihost eingerichtet hat.Sorry für die Konfusion, aber da bin ich mir selber nicht sicher.
Gruß
Rainer
-
Wie Rainer schrieb. Auf dem Master musst Du Redis für die Slaves erreichbar machen.
Dort werden die States der Slaves gespeichert.
Siehe dazu:
http://forum.iobroker.net/viewtopic.php … =20#p31549
` > If you plan to use mulithost installation you must allow connections to redis from any address (default only 127.0.0.1).
To do that edit file /etc/redis/redis.conf (sudo nano /etc/redis/redis.conf) and replace bind 127.0.0.1 with bind 0.0.0.0 .
Don't forget to restart redis after that. (sudo /etc/init.d/redis-server restart) `
Auf dem Slave stellst Du dann mit ./iobroker setup custom ein, dass der Slave die States in redis speichern soll und stellst als Ziel IP die des Masters ein.
-
die von dir zitierte Stelle lässt aber offen, ob es sich nur um die states (Zeile 4 bei iobroker setup custom) oder auch um die objects (Zeile1) geht.
Das hat mich nämlich damals irritiert.
Gruß
Rainer
-
So wie Du geschrieben hattest. Die Objects bleiben im Filesystem.
Redis wird für die States verwendet.
-
Die Objects bleiben im Filesystem. `
aber wo?jeweils getrennt auf den Slaves und dem Master, oder alles auf dem Master.
Dann muss dort auch die IP 0.0.0.0 stehen, und auf den Slaves die IP des Masters.
Wenn jeder Host, egal ob Master oder Slave seine eigenen Objects verwaltet, kann/muss überall 127.0.0.1 stehen.
Gruß
Rainer
-
OK. Das ist eine gute Frage.
Ich bin mir ziemlich sicher, dass ich die Objekte bei meiner nicht mehr aktiven Multihost Installation lokal auf den Slaves gelassen habe (default).
OB man die Objekte auch an den Master geben kann, wäre ein Versuch wert.
-
Also MUSS quasi redis auf den MASTER?
Ich wollt redis auf den SLAVE da der mit ner SSD läuft.
-
Also MUSS quasi redis auf den MASTER?
Ich wollt redis auf den SLAVE da der mit ner SSD läuft. `
Wo die redis Datenbank läuft ist egal das geht local und Remote.
Dein iObroker Master muss aber natürlich mir den redis Server reden.
–-----------------------
Send from mobile device
-
so, wollte mal zu meiner Spielerei eine Rückmeldung geben.
Testumgebung:
Master mit meinen Prozessen
Slave mit Redis und History-instanz
Habe jetzt redis wieder auf das Hauptsystem genommen. Zum einen denke ich, dass sehr viele Daten im Netzwerk unterwegs sind wenn der Master seine Historydaten an den Slave schickt und zum anderen hatte ich immer wieder "Startprobleme"
Solang der Slave (redis-Server) nicht hoch gefahren war, kam ich beim Neustart vom Master nicht auf die Admin-Seite.
iobroker list instances ergab dann immer "kann nicht mit 192.168.2.30 redis connecten"
Warum, wieso, weshalb, dafür reicht leider mein Halbwissen nicht.
Fazit: redis und history-Instanz nun auf dem Master, Slave hat nur eine RFLink-Instanz (abgesetzter Aufstellungsort wegen Besserem Empfangs- und Sendeverhalten)
-
Das ist doch alles logisch.
Mit Redis werden alle "States" nicht mehr in einem lokalen .json-File gespeichert sondern im Redis. Das bedeutet das der Redis da sein muss weil sonst keine "State-Werte" zur Verfügung stehen und das ist aber eine grundbedingung.
Von daher ist es am einfachsten wenn der Redis auf dem ioBroker Master Server läuft. Sonst hast Du eine Abhängigkeit zwischen den Servern.
Ein ioBroker-Slave verbindet ebenfalls auf diesen Redis-Server.
Das "History" generiert keine besonderen zusätzlichen Netzwerklasten.
-
Von daher ist es am einfachsten wenn der Redis auf dem ioBroker Master Server läuft. Sonst hast Du eine Abhängigkeit zwischen den Servern.
Ein ioBroker-Slave verbindet ebenfalls auf diesen Redis-Server. `
Außer man lagert seine db (auch redis) auf einem NAS aus
Netzwerk muss dazu natürlich vernünftig performen
–-----------------------
Send from mobile device
-
Naja, Die Frage ist was es für ein Netzwerk ist und wie gross die ioBroker-Installation