NEWS
Multi-Host Nutzung … Wonach trennt ihr?!
-
Hey All,
Ich überlege auch gerade die Erweiterung zu Multi-Host.
Daher mal ne Frage an die Multi-Host-Nutzer: Wonach trennt ihr denn?! Bzw. ist die Frage ja auch: was habt ihr euch dabei gedacht es so zu trennen?
Hatte es nur Lastgründe oder andere?
Danke für eure Erfahrungen und Gedanken dazu
Ingo F
-
Ich habe vor Jahren
mal eine Multihost Umgebung aufgebaut.
Damals waren die Raspis und Cubies noch nicht so performant und ich wollte tatsächlich die Last verteilen. Wobei Bluefox mir nachher gesagt hat, dass es auch gaaanz anders geht.
Cubietruck mit HDD sollte alles bekommen, was viel schreibt. War außerdem mit 2GB RAM als Master prädestiniert.
RasPi 1 nur etwas, was nicht viel Leistung braucht. (Spritpreis, DWD)
BananaPi dann auch noch etwas.
War damals aber nur zum Testen der Möglichkeiten.
Heute würde ich aber genauso teilen, maßgeblich ist einerseits der RAM Verbrauch und andererseits die Schreibzugriffe.
Gruß
Rainer
-
Ich hab und hatte noch nie Multihost. Aber ich hatte mal überlegt eine auf zu bauen.
Dem ganzen lagen drei Dinge zu grunde:
1. Ausfallsicherheit
2. Lastverteilung
3. Bedieneinheit/Aktor in jedem Raum auf Basis des pi's
Auf jedem pi würde ich vis und javascript adapter laufen lassen und die anderen adapter möglichst gleichmässig verteilen.
3tens wäre der Hauptgrund für mich eine Multihost umgebung auf zu bauen.
Gesendet von meinem Jolla mit Tapatalk
-
Moin!
Also ich hab gerade ne muli host system aufgebaut..
1 Raspi Master
1 RasPi reserve Slave (läuft eigentlich die ccu mit yahm drauf)
1 RasPi als Slave
Hintergrund bisher war:
-
Speicher Verteilung da der RasPi nicht erweiterbar ist
-
abfrage der RasPi-Daten über den system-adapter
Aufteilung ist
1: Admin, vis , web
3: alle adapetr (kodi, history…also alles was nicht grundlegend wichtig ist)
2: temp (der mit der ccu) wenn ich an drei experimentiere schibe ich hier alles hin
Ausfallsicherheit ist so allerdings nicht zu erzeugen...hatte ich mir auch eingebildet und hab auf allen dreien
Wenn der Host down ist fahren die slaves Ihre Dienste auch runter!
Schön wäre hier nicht nur ein Master-Slave-System (welches für load verteilung genial ist!) sonder zusätzlich ein Multimaster-System mit gespiegelten redis-Daten.
Gerade das Thema Datensync ist nen Thema...wenn der History-Adapter verschoben wird wandern die Daten nicht mit....mit vis hab ich mich noch nicht getraut zu testen.....
Bin also auch noch am schauen wie ich das machen...
Für ausfallsicherheit habe ich momentan noch nen zweites system auf der syno (läuft eh) welches ich per reverseproxy nutzen kann und welches per rsync gemirrort wird...also hot-standy
cool wäre nen warm-standby der wenn der master1 ausfällt übernimmt und sonst permanent in sync ist...andere ip wäre ja durch den reverseproxy abgedeckt....
bis denne
Mr.Lee
-
-
Doppelpost gelöscht
-
Seit Redis sollte das Thema Schreibzugriffe ja weitestgehend Geschichte sein - außer vllt die History Adapter (History, sql, pot InfluxDB) … Damit wird RAM und ggf CPU bei viel Logik in Adaptern und JavaScript eigentlich das relevante Thema, oder?!
Ein Hot Standby wäre zwar cool aber auch aufwändig. Mir würde es ja schon reichen wenn man einen iobroker Slave zum Master machen könnte - heißt das man alle Adapter von dem bisherigen Master dahin umziehen kann ohne das der Master läuft ( also im Crash Fall). Sonst muss man immer ein Systems haben was regelmäßig mit dem Master gesynct ist und damit für den Master einspringen kann - gern auch manuell geswitcht.
Aber wie du schreibst darf kein Adapter genutzt werden der Daten nur lokal hat. Also anstelle History dann SQL oder InfluxDB ...
Bei Redis kann man nen Slave machen. Der ist zwar read only aber damit hast du den Datenstand gesynct und kannst den im Notfall zum Master erklären.
Existiert die ObjektsDB auf jedem Host in Sync oder nur auf dem Master?
Meine Idee bisher war ein Host mit der hauptlogik und Basisdaten und Kommunikation (hm-Rpc/hm-rega/ javascript, pushover, History und so) und eine zweite mit allem zusatzkram (Wetter, nut, mobile, vis) auf das ich im Notfall verzichten kann ...
Aber mit Idee von oben müsste der Redis Master ubd ggf die History-DB ( sql/InfluxDB ) woanders hin weil ja RAM relevant und die 2GB vom Cubie werden auch hier und da knapp ...
-
Ja, Sorry hab ich vergessen.
Schreibzugriffe bezogen sich natürlich hauptsächlich auf History.
Danke
Rainer
-
Mal eine vielleicht etwas blöde Frage zu Multihost. Sinn ist ja überwiegend die Verteilung der Rechenlast auf verschiedene Hosts. Auch wenn es jetzt nicht direkt was mit Multihost zu tun hat, so frage ich mich, ob der ioBroker bereits jetzt die vier Kerne des Raspi-2- bzw. -3-Prozessors nutzt oder ob da noch was Besonderes eingestellt werden muss?
Gruß,
Thorsten
-
@dtp:Mal eine vielleicht etwas blöde Frage zu Multihost. Sinn ist ja überwiegend die Verteilung der Rechenlast auf verschiedene Hosts. Auch wenn es jetzt nicht direkt was mit Multihost zu tun hat, so frage ich mich, ob der ioBroker bereits jetzt die vier Kerne des Raspi-2- bzw. -3-Prozessors nutzt oder ob da noch was Besonderes eingestellt werden muss?
Gruß,
Thorsten `
Multihost ist nicht für RAM oder CPU Last Verteilung gedacht, sondern peripherie Verteilung.Z.B. Es gibt PC als Master und der kommuniziert mit Raspis, wo mysensors (SERIAL) oder 1wire angeschlossen sind.
RAM und CPU Verteilung sind Nebeneffekte. Da jeder Adapter als node.js Process läuft, werden die dann vom System automatisch über CPUs verteilt (adaptersweise).
-
Multihost ist nicht für RAM oder CPU Last Verteilung gedacht, sondern peripherie Verteilung.
…
RAM und CPU Verteilung sind Nebeneffekte. `
Also so betrachtet passt das aktuelle featureset natürlich.
Durch den realitäts-Fakt das anscheinend mehr Nutzer kleinere Rechner wie raspis oder Cubies anstelle PCs als Master nutzen wird die RAM und CPU Verteilung praktisch wichtiger.
@Bluefox: wie würdest/behandelst du denn das Thema ausfallsicherheit bzw eigentlich "Disaster Recovery" ( also Master down … Cold/warm/Hot Standby um schnellstmöglich wieder live zu sein)?!
Nach den aktuellen Gedanken wäre ich wirklich bei einem zusätzlichen System was regelmäßig mit dem Backup vom Master bespielt wird und nicht aktiv läuft. Alle States sind im Redis und der hat einen Slave auf dem Standby system das hier der aktuellste stand da ist. Redis-Master läuft mit beim iobroker Master.
Falls Master abraucht dann den Slave-Redis zum Master machen und im iobroker den Hostnamen vom alten Master auf den neuen (bisheriges Standby System) ändern. Starten und sollte laufen.
Bei einem Ausfall eines multihost Rechners sind die Adapter da halt weg ... Kann man Die trotzdem auf nen anderen Host ziehen? Wenn ja Problem gelöst.
Was meint ihr dazu?
Und History Adapter muss halt weg (=nicht nutzen) und in sql oder InfluxDB - wenn da Replikation geht. Andere Adapter mit lokalen sich regelmäßig ändernden Daten kenne ich gerade spontan nicht ...
-
Hey,
1 Hauptsystem und 3 Remotes
ich verwende meine Multihost Umgebung hauptsächlich für Sprachausgabe via sayit.
Die Remotes werden auch für Musik/Sprachausgabe via Logitech Media Server verwendet. Wenn ich auf allen Systemen gleichzeitig Sprache möchte, dann mache ich das über den Logitech mittels mp3. Hat den Vorteil, dass es Synchron aus allen Lautsprechern kommt ala "Dingdong - Es hat geläutet"
Wenn ich die Sprache nur auf einem Remote möchte, oder diese Variablen beinhaltet, dann via sayit ala "Guten Morgen Martin, steh' endlich auf!" … Das interessiert meine Frau und Kind natürlich nicht, die habe Ihr eigenes "Guten Morgen"
Einer der Remotes hat auch eine Javascript Instanz, mit welcher ich mittels Bluetooth meine Fahrzeuge in der Garage überwache. Funktioniert echt gut
-
Hey rascal, mir fehlte immer das Szenario für einem Clienten. Aber die Autoüberwachung ist ein geniales Szenario. Danke!
Wie hast du das gelöst? Bluetooth Scanner Script und Bluetooth Stick im Auto mit der Überwachung, wenn ich anwesend und Auto weg dann Alarm?
Gesendet von iPhone mit Tapatalk
-
Genau so mache ich es.. Und ich lasse mir in vis anzeigen, ob das Auto da ist oder nicht
Gesendet von meinem HUAWEI CRR-L09 mit Tapatalk
-
Batteriebetriebener beacon im Auto oder wie?
Welche Scanner Software nimmst du? Gibt's bestimmt schon Ingos in nem Thread hier in Forum, oder?!
-
Ich benutze 3 Gigaset G-tag
Das Script dazu ist hier vom Forum http://forum.iobroker.net/viewtopic.php … =bluetooth
Was man aufpassen muss ist, dass das Script auf dem Raspi 3 läuft, welcher scannt. Es funktioniert nicht, dass das Script am "main" iobroker läuft, aber scannen soll der Remote in der Garage
Das Script braucht schon die Hardware auf dem Rechner auf dem es läuft.
-
Ich habe mal eine Frage:
Beim Multihost-Clienten. Werden Skripte auf einer Client Javascriptinstanz auf dem Clienten gespeichert oder auf dem Host?
Das wäre wichtig zu wissen für mich für die Backupstrategie. Wenn die Skripte alle auf dem Host gespeichert werden brauche ich den Clienten nicht sichern.
-
Ich glaube (Halbwissen) das die JS-Skripte in der Objects-DB liegen und damit an sich vom Master kommen bzw. auf beiden Systemen verfügbar sind.
-
Ich glaube (Halbwissen) das die JS-Skripte in der Objects-DB liegen und damit an sich vom Master kommen bzw. auf beiden Systemen verfügbar sind. `
Muss den alten Thread mal reaktivieren…
Wie plane/mache ich es, dass ein Skript dann auf einem Slave läuft? Muss ich auf dem Slave eine weitere JS Instanz installieren?
Ich möchte bestimmte Funktionen direkt nur auf dem Slave steuern.
Fitti
-
Hallo Fitti,
Ich habe das gerade auch gemacht, weil ich Hardwaredaten aus dem Betriebssystem des Slaves auslesen wollte.
Um nicht per SSH mit Credentials darauf zugreifen zu müssrn habe ich eine zweite js-Instanz auf drm slave installiert und gut ist.
Gruß
Rainer
-
Man muss nur drauf achten, das man im Reiter Scripte hinter dem jeweiligen Script die richtige Instanz auswählt … ich habe eine Stunde gesucht, warum das verf***te Script nicht sauber läuft.
Gruß,
Eric