NEWS
[Frage] Installtion auf mehreren Systemen (Multihost Modus)
-
Da ich zur Zeit installationen auf einem Pi2, Linux Debian und einem Win7x64 System habe möchte ich das Thema Multihost Modus testen
Dank Rainer gibt es bereits eine Install-Beschreibung:
` > <u>Der Multihost Modus</u>ioBroker ist in der Lage die Aufgaben auf mehrere Server zu verteilen. Dadurch kann man die Rechenlast auf mehrere hosts verteilen, man kann aber auch systemspezifische Erweiterungen eines Einplatinencomputers nutzen (GPIO von einem RaspberryPi, obwohl der „Hauptrechner“ ein leistungsfähigerer BananaPi ist. Dazu installiert man zuerst auf allen verwendeten hosts ganz normal ioBroker. Auf den untergeordneten hosts führt man nach der Installation in dem entsprechenden Installationsverzeichnis den folgenden Befehl aus:
./iobroker setup custom in dem nun folgenden Dialog wird wie folgt eingegeben: Type of objects DB [file, couch, redis], default [file]: ENTER Host of objects DB(file), default[127.0.0.1]: < IP ADRESSE> 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]: ENTER Port of states DB (file), default[9000]: ENTER
Nun das untergeordnete System neu starten.
Auf dem Hauptsystem erscheint danach unter Hosts auch der neu angelegte Host. `
So weit so gut.
<u>Nun erst einmal die Fragen zu "iobroker setup custom"</u>
Hier wird festgelegt wo die beiden Datenbanken in welcher Form abgelegt werden und wie sie erreichbar sind:
1.) objects DB in Form von : [~~[b]~~file, couch, redis] auf Host (127.0.0.1) mit Port 9001
2.) states DB in Form von : [~~[b]~~file, redis] auf Host (127.0.0.1) mit Port 9000
Was wird benötigt wenn die Datenbanken couch oder redis sind? Wann sollte man es einsetzen?
Was / wo wird in "objects DB" gespeichert?
Was / wo wird in "states DB" gespeichert?
Die objects DB liegt auf dem Hauptsystem. Kann die states DB auf einem anderen System liegen?
-
` > <u>Nun gibt es zwei Möglichkeiten die Aufgaben zu verteilen.</u>
1.) Ist es eine Neuinstallation wählt man bei dem Reiter Adapter in dem pulldown-Menü über der Adapterliste den Host aus, auf dem die Instanz des Adapters installiert werden soll:
anschließend fügt man dort die Instanz hinzu, indem man auf das (+) in der rechten Spalte klickt.
2.) Hat man bereits vorher viele Adapter auf einem Host installiert, kann man die Zuordnung der bereits installierten Instanzen nachträglich auf dem Reiter Instanzen ändern: `
Frage:
1.) Die Host's werden angezeigt. Können aber nicht ausgewählt werden
"Host system.host.ioBroker ist offline"
2.) Wenn eine Insstanz auf einen anderen Host umgestellt wird, wird dort der Adapter im Hintergrund installiert oder bleibt diese auf dem Hauptrechner?
-
<u>Nun erst einmal die Fragen zu "iobroker setup custom"</u>
Hier wird festgelegt wo die beiden Datenbanken in welcher Form abgelegt werden und wie sie erreichbar sind:
1.) objects DB in Form von : [~~[b]~~file, couch, redis] auf Host (127.0.0.1) mit Port 9001
2.) states DB in Form von : [~~[b]~~file, redis] auf Host (127.0.0.1) mit Port 9000
Was wird benötigt wenn die Datenbanken couch oder redis sind? Wann sollte man es einsetzen? `
Das es erst implementiert wird. Es war implementiert, aber jetzt "FileDB" ist einbisschen weitergegangen. CouchDB und Redis DB Triber müssen auf der neueste Stand gebracht werden.
@derAuge:Was / wo wird in "objects DB" gespeichert? `
Alles was du "admin" auf der Lasche Objects sehen kannst.
@derAuge:Was / wo wird in "states DB" gespeichert? `
Alles was du "admin" auf der Lasche Zustände sehen kannst.Die objects DB liegt auf dem Hauptsystem. Kann die states DB auf einem anderen System liegen? `
Ja.. Ich habe aber das nicht ausprobiert.
@derAuge:1.) Die Host's werden angezeigt. Können aber nicht ausgewählt werden `
In "admin" auf "Adapter" Lasche?
@derAuge:"Host system.host.ioBroker ist offline" `
Hm.. Sagt was log dazu? Kannst du schauen ob Prozess js-controller auf "ioBroker" läuft?
@derAuge:2.) Wenn eine Insstanz auf einen anderen Host umgestellt wird, wird dort der Adapter im Hintergrund installiert oder bleibt diese auf dem Hauptrechner? `
Die wird auf dem neuen Host installiert. -
Frage:
1.) Die Host's werden angezeigt. Können aber nicht ausgewählt werden
"Host system.host.ioBroker ist offline" `
Älterer Beitrag, aber selbiges Problem hier. Die Log-Analyse hat dann folgendes zu Tage gefördert:
2016-08-11 00:18:55.142 - host.HWR-Raspi does not start any instances on this host
Daraufhin einfach mal auf dem Slave-System folgendes eingegeben, um einen lokalen Admin-Adapter zu installieren:
iobroker add admin --port 8089
Dann mit einem Browser auf das Slave-System unter dem neuen Port aufgerufen:
http://HWR-Raspi:8089
Siehe da, ab diesem Moment lebt der Slave und man kann Instanzen verschieben (die übrigens nicht neu installiert werden müssen, iobroker schiebt alles rüber was es braucht).
Vielleicht hilft's ja irgendjemandem.
Viele Grüße
Christian
-
ich häng mich hier mal ran - selbes "offline" - Problem des slaves
> iobroker add admin –port 8089
ergibt bei mir allerdings folgende Meldung:
` > root@iobroker2:/opt/iobroker# iobroker add admin –port 8089
events.js:141
throw er; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL 192.168.20.3:9000
at Object.exports._errnoException (util.js:907:11)
at exports._exceptionWithHostPort (util.js:930:20)
at Server._listen2 (net.js:1240:19)
at listen (net.js:1289:10)
at net.js:1398:9
at nextTickCallbackWith3Args (node.js:522:9)
at process._tickCallback (node.js:428:17)
root@iobroker2:/opt/iobroker# `
Das redis bind auf dem Server habe ich angepasst und redis neu gestartet (und den iobroker anschliessend auch)
> bind 127.0.0.1 192.168.20.3
Die 2 Raspis liegen zwar in unterschiedlichen Netzen (Slave 192.168.178.x und Master 192.168.20.x) - die beiden werden aber komplett durchgeroutet. Der Master erkennt ja auch schon, dass es einen Slave gibt.
Was mir noch aufällt: Auf dem Server lauscht iobroker zwar auf dem Port 9001 - auf dem Port 9000 lauscht aber niemand (geprüft mit sudo netstat -nap | grep 9000)
Ich vermute hier das Problem ? Lt. "iobroker setup custom" sollte ja auf dem 9000 Port was hängen und warten.
Kann mir jemand auf die Sprünge helfen ?
Danke !
Georg
-
so, ich hab es jetzt - die Anleitung für Multihosting braucht wohl etwas pflege :mrgreen:
Bei mir musste die config so aussehen:
` > Type of objects DB [(f)ile,ouch, (r)edis], default [file]:
Host 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 [file]: r
Host of states DB (redis), default[127.0.0.1]:
Port of states DB (redis), default[9000]: 6379
Host name of this machine [iobroker2]: `
Danach noch
> iobroker add admin –port 8089
und schon passte es - wobei: viel habe ich jetzt noch nicht versucht - aber der Link steht
-
die Anleitung für Multihosting braucht wohl etwas pflege :mrgreen: `
reden wir vom gleichen?
@[url=http://www.iobroker.net/?page_id=3068⟨=de#Multihost_mit_redis:~~Website"]~~Multihost mit redis
Soll eine Multihost-Umgebung installiert werden, bei der die States in redis gespeichert werden, muss noch einiges beachtet werden.
Die Datei redis.conf auf dem Host, auf dem die States gespeichert werden muss wie folgt geändert werden.
nano /etc/redis/redis.conf
Die darin enthaltene Zeile
bind 127.0.0.1
muss mit der IP des Netzwerkadapters ergänzt werden, damit der Redis-Server connects von extern zulässt. Also zB
bind 127.0.0.1 192.168.1.10
unter der Annahme, dass 192.168.1.10 die lokale IP des ioBroker Masters ist.
Diese Anpassung ist auch nur am Master nötig.
Alternativ geht auch
bind 0.0.0.0
Zum Schluss den Redis-Server oder Rechner neu starten. zB:
sudo service redis-server restart `
Gruß
Rainer
-
jein, über dem von Dir kopierte Teil steht der Teil des Slaves. Dieser passt anscheinend nicht mehr
` > Type of objects DB [file, couch, redis], default [file]: ENTER
Host of objects DB(file), default[127.0.0.1]: < IP ADRESSE> 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]: ENTER
Port of states DB (file), default[9000]: ENTER
Host name of this machine [hostname]: ENTER `
Beim redis/Server Teil alles ok
-
Ok!
Jetzt verstehe ich.
Der teil für den slave setzt sich zusammen aus dem allgemeinen Part für einen Multihost-Slave + die Änderungen für Redis.
…und die Anleitung finde ich jetzt im Moment selber nicht mehr :oops:
Gruß
Rainer
-
-
Danke, nein!
Ich meinte die Anleitung redis zu installieren.
Gruß
Rainer
-
Hi zusammen, ich hab kleines Problem bei einer Multihost Installation. Und zwar betreibe ich auf einen NAS einen redis Server und hatte ich bis jetzt immer iobroker angebunden (über einen Pi) jetzt hab ich iobroker auf einen OrangePi und möchte meinen alten pi als Slave einsetzen. Auf dem nas hab ich in der conf
bind 0.0.0.0 eingefügt.
Wie muss ich jetzt den Slave anbinden?
Muss ich für host die IP von Master angeben oder vom redis Server?