NEWS
Ausfallssicherheit IoBroker - maximale Verfügbarkeit
-
@arteck sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
so sieht es bei mir aus
ich habe 3 iobroker als master/slave laufen und zusätzlich ein Redis/Redis.
die Redis werden nicht migriert.. die synchronisieren sich gegeneinander..
fällt ein iobroker aus.. oder startet neu dann laufen die anderen iobroker prozesse weiter.. ich habe es so aufgetrennt dass die Lichtsteuerung als beispiel nur vom iobrokerslave2 übernommen ist. da läuft auch eigene javascript .. schalte ich den iobrokerMaster ab funktioniert immer noch die Lichsteuerung.Hi Arteck
Finde deinen Ansatz interessant.
Habe da auch zwei Fragen:Sind das bei dir 3 ioBroker Instillationen oder richtig Master / Slave?
Und wenn 3 ioBroker, kann man dabei jeweils die gleichen Redis Server verwenden?
Ich würde bei mir auch gerne 2 ioBroker LXC Container installieren um die ganze Sache zu entzerren.
Frage mich halt ob ich dann noch 3 Redis Server installieren muss oder ich die vorhandenen auch für den 2. Broker verwenden kann? -
@sufra lies dir bitte die Beiträge durch. all deine Fragen sind dort beantwortet
-
@arteck said in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
mein Zigbee Stick wie auch der Zwave steckt in einem rock64.. und der gibt die Port per ser2net raus..
Würde es dir etwas ausmachen, deine
etc/ser2net.yaml
zu posten? Ich würde auch gerne meine USB Sticks durchreichen (siehe https://forum.iobroker.net/topic/73171/iobroker-docker-ser2net?_=1709458100218) -
Ich hab hier noch eine dumme Frage (ist auch eigentlich OT):
Ist Situation iob master auf proxmox container, slave auf pi.
Geplant: HA Cluster mit 3 Intel NUC (2*iob und einen "Schiedsrichter" (Quorum)). Die kommen alle in einen Serverschrank der neben dem Zählerschrank steht. Den Pi-Slave habe ich nur wg des smartmeters (Ablesen der Werte mit optischem Sensor).
Wäre es sinnvoll, dann den Slave abzulösen und den Zähler direkt mit dem Master zu verbinden (der steht dann ja in der Nähe vom Zähler) und ich würde mir den Pi (und damit eine Fehlerquelle) sparen ? -
@amg_666 das könnte das ganze vereinfachen. Der Zähler wird per USB ausgelesen? oder per GPIO?
Am besten wäre z.B. ein Ausleser auf Tasmota-Basis der das ganze per MQTT über das Netzwerk sendet, dann ist es auch egal wo der ioBroker läuft. -
@bananajoe sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
Der Zähler wird per USB ausgelesen?
USB, muss man halt den Port am Container durchreichen, aber das krieg ich hin:-)
Ich hab da den Smartmeter Adapter für im Einsatz. -
@amg_666 sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
USB, muss man halt den Port am Container durchreichen, aber das krieg ich hin:-)
Das an den Master zu setzen widerspricht dann aber der Hochverfügbarkeit, dann kannst du dir den Aufwand mit dem HA Cluster auch sparen.
Bei meinen Kunden wird alles was USB ist (in der Regel Lizenzdongle) auf Netzwerk umgesetzt oder durch eine Netzwerklösung ersetzt (WLAN-Barcode-Scanner statt USB-Scanner) damit es immer unabhängig vom System (Arbeitsplatz, VDI- oder Terminalsitzung, aktueller Virtualisierungshost) funktioniert.
Die fertigen Zähler gibt es bei Amazon, ebay & Co für 20 bis 40 Euro. -
@bananajoe sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
wird alles was USB ist (in der Regel Lizenzdongle) auf Netzwerk umgesetzt oder durch eine Netzwerklösung ers
Du kommst mir immer mit Antworten, die was kosten
Siehe weiter oben, zigbee dongle Diskussion. Ich hab mir mittlerweile einen neuen Zigbee-Lan Stick wie von dir empfohlen geholt. Der ist parallel zum alten USB Stick in Betrieb...Das mit dem Zähler habe ich noch nicht kapiert. Ich hab einen sogenannten "Volkszähler", also einfacher Lesekopf mit USB Schnittstelle. Und solche LEseköpfe gibts auch mit LAN ?? Hast du da mal einen Link für mich, bei Amazon hab ich spontan nix gefunden.
-
@amg_666 z.B. https://www.ebay.de/itm/296067484432 oder https://www.amazon.de/Hichi-Lesekopf-Stromzähler-optisch-auslesen/dp/B0CH95T7X4
Stichwort ist "Tasmota Lesekopf". Ist für die IR-Schnittstelle vieler Stromzähler, da muss dann ein passendes Skript drauf.Kosten: Ja ja, aber einen Cluster bauen ...
-
@bananajoe Danke für die Links. Hast du mit den Teilen wirklich gute Erfahrungen gemacht? Stromzähler sitzt doch im Metallkasten, wie ist es da mit dem WiFi Signal?
-
@amg_666 sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
Stromzähler sitzt doch im Metallkasten, wie ist es da mit dem WiFi Signal?
Ich verstehe die Frage nicht ...
Laut google sind "Werte zwischen -30 dBm und -40 dBM sind für ein WLAN gut, Werte jenseits von -85 dBm sind kritisch".
Mein Hichi hat eine Signalstärke von-12
Alles was rot und blau ist sind auch Shellys mit Tasmota. Rechts daneben ist noch eine kleine Sicherungskastenerweiterung mit 5 Shellys/Sonofs, links davon noch ein richtiger Sicherungskasten mit 19 Shelly 1 und 8 Shelly 1PM
Schafft der AVM1200 ohne Probleme.
WLAN läuft alles auf der gleichen SSID, falls der Sicherungskasten ausfällt verbinden sich die Geräte mit dem AP im EG oder im Büro (2 Räume weiter), läuft der wieder verbinden sich alle innerhalb einer Stunde zurück
-
@bananajoe sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
Ich verstehe die Frage nicht ...
So ähnlich sieht mein Zählerkasten auch aus. Der ist aus Metall und hat eine Tür davor, die ist ebenfalls aus Metall. Daher die Frage. Wenn der IR Lesekopf in einem Metall (in einem Blech-) kasten sitzt, reicht dann das WLAN Signal aus?
Oder hast du wie auf dem Bild keine Tür vor dem Sicherungskasten? -
@amg_666 im Moment ist keine Tür davor.
Mit Tür ist es allerdings dank des AVM1200 im Sicherungskasten auch kein Problem.
Es reicht sogar durch 2x Metallwand in den Kasten rechts daneben.Für den Kasten links daneben ist liegt ein weiterer AVM1200 bereit / 2 LAN-Anschlüsse liegen im Kasten.
Wobei das auch funktioniert, auch wenn alle Türen zu sind. Ich weis nur die Pegel nicht, die sind dann natürlich schlechter. Da das ganze aber innerhalb 1 bis 1,5m liegt hatte es trotzdem funktioniert.
-
@bananajoe Hi, ich bins nochmal mit einer dummen Frage:
Ich will demnächst ein HA System aufsetzen/scharf schalten. 3 intel nucs, einer als "Koordinator". Momentan spiele ich noch ein bisschen rum und ich habe heute zum Testen mal die redis dump Datei vom aktiven iobroker system genommen, in einen redis server auf einem anderen (physikalischem) Server kopiert und dann auf einem iob Testsystem in der setup custom die ip des redis servers eingetragen und dann das Teststem gestartet. Das hat wunderbar funktioniert, alle Daten (z.B. echarts in der vis) waren aktuell.
Aber. nachdem der Test beendet war (ich hab das testsystem gestoppt) blieb auf meinem produktivem System die iot Instanz gelb.
Protokoll sagtiot.0 2024-03-26 20:03:52.729 info Connection changed: disconnect iot.0 2024-03-26 20:03:52.728 warn Looks like your connection certificates are invalid. Please renew them via configuration dialog. iot.0 2024-03-26 20:03:50.818 info Connecting with a18wym7vjdl22g.iot.eu-west-1.amazonaws.com iot.0 2024-03-26 20:03:50.631 info starting. Version 2.0.11 in /opt/iobroker/node_modules/iobroker.iot, node: v18.19.1, js-controller: 5.0.19
ok, das kam wohl daher, weil ich mit denselben Credentials 2mal unterwegs war (einmal Produktivsystem und einmal der Test, den ich parallel gestartet habe) und nach einem "Renew" in der iot Instanz liefs auch wieder.
Jetzt die Frage: Passiert dass dann nicht auch, wenn ich in einer HA Umgebung 2mal iobroker laufen habe? Oder ist das ausgeschlossen, weil immer nur einer "aktiv" ist?
-
@amg_666 also, ich bin ja beruflich auch im IT Umfeld unterwegs und Redundanz ist ist einfach alles Also schon mal gut wenn du schon ein Ersatzsystem liegen hast.
Die Frage an dich ist "mit wieviel Ausfallzeit kannst du leben" und ich bin ja dafür das es am besten automatisch passiert (in gewissen grenzen).
Nun arbeite ich Beruflich zu 99% mit VMware, Proxmox kennt das Prinzip aber auch: HA Cluster.
Eine VM ist aus meiner Sicht per se schon mal "Hochverfügbar". Bei einem HA Cluster (da sind wir im Bereich automatisch) geht es darum wenn ein Host ausfällt die VM auf einem anderem Host wieder gestartet wird. Dann ist die VM nur 1 bis 2 Minuten weg. Damit die VM auf einem anderen Host wieder gestartet werden kann müssen die Daten natürlich auf diesem auch vorliegen, am besten die gleichen Daten.
Da gibt es auch 2 Möglichkeiten: Die beiden Hosts teilen sich einen gemeinsamen Datenspeicher (die Daten liegen also weder auf Host A oder B sondern auf C (NAS, Freigabe, Storage)).
Oder es wird repliziert, also in Echtzeit oder Regelmäßig eine Kopie angelegt/aktualisiert.
Wird dieser Start automatisch ausgeführt ist das halt der "HA Cluster". Oder du machst das per HandBei mir reicht die Kopie/Replizierung einmal am Tag theoretisch völlig. Oder auch stündlich. Wenn das Original bei mir weg wäre und ich die Kopie starte sehen ein paar eCharts nicht mehr so schön aus, alle meine Verbrauchszähler haben aber Ihre Werte noch mal lokal und werden einfach neu abgerufen (gibt dann halt einen Sprung).
Ich müsste also nur die Kopie von Hand anwerfen (und den Job der die Kopien machen will stoppen bzw. hinterher die Richtung umdrehen). Ich sichere zusätzlich per BackItUp Adapter alle 3h (wegen der Skripte) an eine 2. Stelle und mache noch 2 Offline Kopien an 2 weitere Stellen.Damit man die Büchse einfach auf dem anderen Host starten kann muss man natürlich seine Abhängigkeiten im Auge haben, ein Grund warum ich durchgereichte USB-Sticks nicht mag (und gerade dabei bin meinen Conbee in die Tonne zu treten) - aber da hast du ja auch schon angefangen.
Also, du hast eine VM, also mach es dir doch einfach und kümmere dich nur um die. Da müssen keine Redis-Dumps kopiert oder eingespielt werden. Alles in einer VM! Und die kannst du in Echtzeit oder Stündlich (und oder oder) auf den 2. NUC replizieren, ja nachdem was Proxmox so her gibt. Und noch Kopie woanders hin falls mal alles abraucht, da musst du ja nur einen Proxmox aufsetzen und die VM wieder einspielen.
-
@amg_666 sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
HA Umgebung 2mal iobroker laufen habe?
definiere HA und warum 2 mal..???
in einer HA läuft EINE VM .. mit iobroker..punkt. warum soll da noch eine laufen ??
@BananaJoe dein Ansatz ist eher suboptimal..alles in einer VM ist .. na ja ..scheixxxx
warum.. ?? was bringt dir in einer VM iobroker, grafana, redis, influxDB (und und und).. nur Nachteile
angefangen von Performance (CPU) über Speicher (RAM) bis hin zu Platte( wenn voll steht ALLES)
darüberhinaus
du kannst keine der Anwendungen gezielt rekonstruieren sondern muss IMMER alles zurück spielen.. (ja es gibt möglichkeiten dies auch einzeln aus der Sicherung rauszupieken, ich weiss)teilst du einzelnen VM/LXC nach Anwendung bist du flexibler
-
@arteck die Wahrheit liegt wohl in der Mitte. Mein redis brauche ich nur für ioBroker und wenn redis nicht läuft, läuft auch ioBroker nicht. Sprich ich muss immer vorher die Redis VM gestartet haben bevor ich die ioBroker VM starten kann.
Grafana macht selbst nichts (bei mir zumindest) und zeigt nur an, das könnte man schön auslagern. Die MySQL (die ich statt influxDB nutze) wiederum braucht ioBroker, also gleiches wie redis (naja, läuft der SQL-Adapter halt nicht und einige der Skripte fallen auf die Schnauze, der Rest würde schon weiter funktionieren). Sonstiges "und und und" fällt mir gerade nicht ein.Das Aufteilen / Skalieren würde/könnte ich machen wenn es Performance-Probleme gäbe. Das macht es aber auch komplexer in der Hinsicht das man viel mehr auf gegenseitige Abhängigkeiten achten muss.
CPU: ja kann sein, aber so lange die Kerne mit wenigen % vor sich hintummeln eher nicht, erst wenn ich mehr Kerne an VMs verteile als ich physikalisch habe kann dies zu Problemen führen.
RAM: ob ich den RAM nun über 4 oder 2 VMs aufteile oder alles in eine Stecke könnte nur dann zum Problem werden wenn eine Anwendung den anderen nichts übrig lässt. Also eher nicht.
CPU und RAM monitore / überwache ich aber ja ständig und sollte so frühzeitig Performanceprobleme erkennen.Platte ist von der Performance egal (wenn sowieso alles auf der gleichen Platte liegt), seit dem Einsatz von NVMe eher theoretischer Natur. Speicherplatz: Klar, das gleiche wie beim RAM. Passiert nicht dank Monitoring und dank des Umstandes das man auch VMs ja mehr als eine virtuelle Festplatte verbauen kann. Zu viele sind auch nicht gut, aber mit einer separaten Platte für Daten die schon mal aus dem Ruder laufen können, z.B. für die SQL-Daten macht man nichts falsch.
Sind es 2 VMs oder mehr kommt zumindest ja der Netzwerkverkehr dazu. Laufen die VMs auf einem Host ist das quasi zu vernachlässigen und auf RAM-Niveau, sind es 2 verschiedene sind es immerhin Laufzeiten die über den von RAM liegen.
Mir fällt gerade keine Anwendung ein die ich dann nicht "gezielt rekonstruieren" könnte. Die ganze VM zu sichern schließt ja das Wiederherstellen einzelner Elemente nicht aus, aus dem Backup kann ich mir auch jede einzelne Datei holen. Beim Snapshot für das Backup läuft sogar ein kleines Skript welches für konsistente Daten sorgen soll (SQL-Datenbank Cache leeren und schreiben verbieten) zusätzlich habe ich ja noch die BackItUp-Sicherungen welche ja Exporte von Redis und SQL beinhalten+ die Skripte sind ins Dateisystem gespiegelt.
Anmerkung: Ich habe gerade mal gegoogelt und auch Proxmox hat wohl einen "Single File Restore" und kennt auch "Pre-Freeze" und "Post-Thraw" Skripte für Konsistensmaßnahmen.
Auslagern einzelner Dienste wie SQL kann man ja jederzeit machen (und genauso leicht wieder zurück schieben).
Klar, Beruflich packen wir inzwischen auch alles jeweils in eine einzelne VM (Lizenserver, Datenbankserver, Frontend, Backend, Dateiserver usw.), auch aus Redundanzgründen, insbesondere um es einfacher mit der Wartung zu haben. Kann man einen DNS-Server / Domänencontroller / Clusterknoten / Mailserver im laufenden Betrieb patchen / neu starten / warten.
Kann sein das ich da etwas übersehen habe, aber das sehe ich bei ioBroker nicht gegeben, es läuft ja nicht 2x gleichzeitig. Selbst bei Multihost braucht es die gemeinsame redis-Datenbank (und ja die könnte man auch hochverfügbar machen)
Und im HA-Fall wäre die Reihenfolge wichtig, also bei einer Trennung/Ausfall müsste bestimmte Dienste/VMs in einer bestimmten Reihenfolge starten. Kommt ioBroker wieder aus der Hose wenn der redis mal 5 Minuten weg war? oder der SQL? Es ist also - aus meiner Sicht - eh alles voneinander abhängig. Weshalb es bei mir - was ioBroker betrifft - auch alles in einer VM läuft. Und würde ein Monitoring empfehlen so das man Performanceprobleme, mangelnden Arbeitsspeicher und Festplattenplatz frühzeitig erkennt.Zudem würde ich wetten das die Mehrzahl der ioBroker-Installationen eine "All-in-One" sind, z.B. alle Raspberry Pi Installationen. Das bedeutet natürlich nicht das das gut wäre.
Die Frage nach einer "idealen" Installation kommt hier ja öfters und ich lese fleißig mit. Die gibt es wohl nicht, es ist immer ein Kompromiss. Als VM finde ich aber immer schon mal gut - darauf können wir uns sicherlich einigen.
Man kann Snapshots vor großen Upgrades machen und die ganze VM sichern. Jedes mal wenn hier wieder einer mit dem Raspi Probleme hat weil die SD-Karte verreckt, voll ist oder das System nach einmal Stromlos-machen spinnt oder einfach große Updates eingespielt wurden ohne ein vorheriges Backup / Plan B bekomme ich so ein trauriges Lächeln ...Schlußwort: Lieber @arteck , ich habe den höchsten Respekt vor Dir als Person, deiner Arbeit und deinen Einsatz gerade für dieses Projekt. Und hoffe das ich dich jetzt nicht verärgere (oder du dich über mich als einen aufgeblasenen Klugscheißer aufregst)
-
@bananajoe ja bin bei dir .. die meisten haben alles auf einem Host.. was auch Probleme verursacht.
und ja mit bestimmten einstellungen und redundanzen kommt der iobroker auch bei einer trennung von redis hoch..bzw. läuft weiter (Sentinel Ansatz)
im entdefekt muss jeder für sich entscheiden wie wichtig ihm sein Smarthome ist und was er dafür investieren möchte (Zeit und Geld)für mich war es das System so aufzubauen das es auch läuft wenn ich nicht zu hause bin und ein Hardware Ausfall passiert (ja Netzwerk incl wobei hier muss man letztendlich Hand anlegen).. bei iobroker heilt sich die VM selbst (bzw wird auf einen anderen Node automatisch ohne Ausfall migriert)..
aber wie gesagt jedem das seine.. es gibt nicht NUR DIE EINE LÖSUNG
p.s: warum soll ich dir böse sein. deine Argumentation find ich gut.. im entdefekt musst du damit klarkommen