NEWS
[Umfrage] Hochverfügbarer ioBroker auf RPIs
-
Im ersten Schritt soll eine Lösung erarbeitet werden, die nicht das Rad neu erfindet sondern vielmehr auf bewährte Technik setzt. Das ideale OS für Linux-Hochverfügbarkeit wäre IMHO RedHat oder CentOS. Nur darauf mag ich keinen ioBroker installieren. Schon gar nicht auf einem Raspberry.
Nachdem der Raspberry typischerweise auf Debian aufsetzt, und wir vor allem bereits in der Distribution enthaltene Software einsetzen werden, wird mit großer Wahrscheinlichkeit das, was wir erarbeiten, auch auf "größeren" Rechnern wie NUCs u.v.m. funktionieren. Zwischen Raspberry 3 und 3+ sehe ich jetzt keinen diesbezüglich großen Unterschied. Weißt Du mehr?
Nur für den Anfang hatte ich mir ein kleines System, das kostengünstig ist und das man idealerweise eh schon in der Bastelkiste hat, vorgestellt. Bevor man zwei NUCs kauft und dann die Lösung aus irgendwelchen Gründen nichts wird. Und der ioBroker wird, wenn man sich die Zahlen ansieht, sehr häufig auf Raspberrys installiert.
Ziel sollte sein, ein Proof-of Concept in den Händen zu halten, das funktioniert und eine auch für Normalsterbliche nachvollziebare Dokumentation zu schreiben. Dann würde man weiter sehen.
-
Näheres zum Unterschied zwischen den beiden Raspis wüsste ich jetzt nicht. Ich kann mich nur an eine Diskussion hier erinnern das irgendwie das fertige Image nicht kompatibel war. Ist aber schon ein paar Tage her.
Wie gesagt kenne ich mich nicht wirklich mit der Umsetzung als hochverfügbares System aus. Ich gebe dir eben nur meinen Gedankeanstoß damit du die Entwicklung langfristig einplanen kannst. Ich vermute mal das da viel Arbeit dahinter steckt und es wäre jammerschade wenn die Arbeit dann in einer Sackgasse endet. Den überzähligen Raspi haben hier viele in der Bastelkiste liegen. Da bin ich mir recht sicher. Aber auch da wird es schon so sein das dann eben nicht nur 3er liegen sondern wieder 2er aus der Kiste geholt werden.
Der ioBroker selbst scheint ja auf allen Systemen grundsätzlich gleich zu sein. So wäre es eben nach meinem Gefühl vielleicht leichter umsetzbar den ioBroker ständig zu spiegeln und betriebsbereit zu halten. Lediglich der "Einsatzpunkt" müsste dann technisch gelöst werden. Und da denke ich nicht das es einen großen Unterschied machen würde welche Hardware drunter steckt.
Vielleicht noch ein Gedankengang: Wenn der Server per LAN am System hängt und der Raspi per WLan mitläuft. Wäre es dann möglich den Raspi so zu konfigurieren das man den bei einem Serverausfall den LanPort einschaltet und der dann per LAN auf der gleichen IP kommt wie der ausgefallene Server? Der könnte ja beispielsweise erkennen das der Server weg ist und dann würde er den Hardwareport einschalten und die Aufgaben übernehmen. Zusätzlich dann den Server per Steckdose ausschalten damit der nicht spontan dazwischenfunkt.
Bitte verstehe mich nicht falsch. Ich will nichts kritisieren oder verbessern. Ich finde nur deine Idee wirklich spitze und versuche ein paar laienhafte Gedanken einzubringen die vielleicht eine Lösung ermöglichen.
-
Der ioBroker wird auf einer virtuellen IP laufen, die dynamisch dem jeweils aktiven Knoten zugewiesen wird. Er ist also immer unter der selben Adresse erreichbar, egal wo er aktiv ist.
Die LAN-Anbindung des RPIs wird für eine private Verbindung zwischen den Knoten genutzt. Das ist ein spezielles nichtgeroutetes Netz zum Datenabgleich und Interknotenkommunikation.
Die Public-Adresse läuft über das WLAN.
-
Danke für die Erklärung.
Klingt wirklich gut. Aber es scheint so das es ja dann wirklich theoretisch gar nicht von der Hardware abhängig ist sondern nur eine Konfigurationsgeschichte wird (die Netzwerkanbindung). Dann müsste es ja kompatibel zu beliebigen Hardwareplatformen sein.
Stellt sich dann das Problem wie die beiden ioBroker gleichgehalten werden.
-
Ist das nicht vielleicht schon zu Kompliziert gedacht?
Wenn man bedenkt das ein pi recht wenig RAM hat und in deiner Konfiguration eh schon 2 da sind bietet sich doch ein Multihost system an.
Notwendige Erweiterungen:
1. Bei Ausfall des Masters über nimmt ein Slave
2. Dezentrale DB
3. Adapter müssen auf allen Hosts installiert werden
4. Automatische Last Verteilung, Starten/Stoppen von Instanzen je nach Auslastung
Vorteil wäre das die Hardware ständig genutzt würde, das System idealerweise immer Flüssig läuft und mit jedem Host steigt die Ausfall Sicherheit.
Ein großes Problem ich kann nicht an jeden Host ein ZigBee, Z Wave, enOcean Stick hängen, das geht zu sehr ins Geld und ohne Läuft bei mir eh nicht viel.
Davon abgesehen kämpfe ich mehr mit unvorhergesehenen Zuständen als Ausgefallener Hardware.
So oder so ist deine Überlegung gut und auch für die Zukunft notwendig. Bisher hab ich derartige Überlegungen noch bei keinem anderen System gesehen.
Ich glaube iobroker hat mit dem Multihost Betrieb eh schon ein allein Stellungsmerkmal, wenn das noch in die Richtung Hochverfügbarkeit ausgebaut wird ist es der Killer.
Gesendet von meinem m8 mit Tapatalk
-
Chaot, Jey Cee, paul53,
genau wegen Eurer Ideen und Einwände bin ich mit meinen Gedanken "an die Öffentlichkeit" gegangen und suche Mitstreiter. Finde ich ganz toll so, Danke!
` > 1. Bei Ausfall des Masters über nimmt ein Slave
2. Dezentrale DB
3. Adapter müssen auf allen Hosts installiert werden
4. Automatische Last Verteilung, Starten/Stoppen von Instanzen je nach Auslastung `
Das waren anfangs auch meine Gedanken. Natürlich kann man den ioBroker so anpassen, dass er z.B. selbst die Datenbanken und Files auf den HA-Clusterknoten synchron hält. Selbst die Datenbanken könnten auf allen Knoten parallel laufen und sich intern immer abgleichen. Auch mit Redis gibt es da Möglichkeiten.
Man kann die Idee auch weiterspinnen. Die diversen Dateien von VIS oder ioBroker könnten aus dem Filesystem in die Datenbank verschoben werden. Wer sagt zum Beispiel, dass die JavaScript-/usw.-Dateien der Adapter im Filesystem stehen müssen? Die können auch aus einer replizierten DB geladen werden. Dann hat man auch keinen reinen Aktiv/Passiv-Cluster mehr sondern kann bei einem Aktiv/Aktiv-Cluster mit replizierten DB-Instanzen über die Ressourcen beider Knotenrechner gleichzeitig verfügen. Es gibt dann auch keinen Master und keine Slave mehr und alle Rechner sind gleichberechtig.
Träumen darf man. Doch momentan kann der ioBroker das (noch) nicht. Deshalb versuche ich, mit dem auszukommen, was heute möglich ist.
Der aktuelle Multihost-Betrieb ist - bezogen auf HA - nicht so der Burner: Die Knotenanzahl steigt von eins auf zwei inkl. Infrastrukturmehrung und ohne einen Zugewinn an aktiver Sicherheit. Damit verdoppelt sich die Ausfallwahrscheinlichkeit von 100% auf 200%. [emoji2]
-
Ich würde neben dem "Master" auch einmal einen Blick auf den Rest des Systems werfen.
Da gibt es meines Erachtens ebenfalls eine Menge an "Single Points of Failures (SPoF)". Der Server ist da nur einer.
Wenn man die anderen SPoF außer Acht lässt, hat man unter Umständen nicht wirklich etwas gewonnen.
Außer den Konzepten der Architektur könnte es auch sinnvoll sein, Ausfallwahrscheinlichkeiten zu bedenken und zunächst vor allem die Punkte mit (relativ) hoher Ausfallwahrscheinlichkeit zu "stärken".
Dann wäre zu überlegen, was wirklich redundant sein muss und was redundant sein könnte (zusäätzlicher Komfort).
Je geringer die notwendige Redundanz ist, desto einfacher dürfte das Konzept werden.
-
Reicht es, wenn gewisse Grundfuktionen weiter laufen? Welche wären das?
-
Muss Bedienung weiter möglich sein?
-
Muss reine Visualisierung redundant sein?
-
Mit welchen Ausfällen kann ich über eine gewisse Zeit leben?
In der Anlagenautomatisierung versucht man Inseln zu schaffen, die über eine übergeordnete Instanz gesteuert werden (im Sinn von Vorgaben). Diese Inseln sollten möglichst völlig autark weiterlaufen können (natürlich ohne Änderung / Bedienung über die übergeordnete Instanz).
Das gibt einem die Möglichkeit einzelne wichtige Inseln betriebssicherer zu machen (z.B. durch Redundanz), ohne gleich alles redundant zu machen.
Im Redundanzkonzept sollte auch das (bzw. die) Kommunikationsnetz(e) betrachtet werden. Wie stabil sind diese? Welche Fehler können auftreten? Welche SPoF gibt es hier? Welche Auswirkung haben Fehler in den Netzen?
Dann noch die Aktoren und Sensoren: Wie sicher und stabil sind dies? Diese Frage muss auch Messungen und Aktionen umfassen. Es macht wenig Sinn, hier dann unzuverlässige Geräte zu nutzen, wenn hohe Verfügbarkeit gefordert ist.
In der Automatisierung habe ich Systeme realisiert, die neben der Redundanz der Steuerung auch redundante Ansteuerungen (I/O), redundante Netze und Redundanz bei Aktoren und Sensoren beinhaltet haben. Das sind dann echt komplexe Projekte. Und Firmen investieren für so etwas sehr viel Geld, falls dies benötigt wird.
Ich möchte damit den Gedanken von Stabilostick nicht kaputt machen.
Er ist auf jeden Fall ein erster Ansatz für das Thema "Hochverfügbarkeit". Es ist aber wichtig, dass die Grenzen dieser Lösungen auch verstanden werden. Sonst ist mit viel Frust zu rechnen.
-
-
Hochverfügbarkeit für Arme: Identisches inaktives Standby System, welches durch ein externes System aktiviert werden kann. `
Wie sorgst Du dafür, dass die Daten auf beiden Systemen gleich sind? Das hier ist ein Shared Nothing, Aktiv-Passive-Cluster mit einem Filesystem auf einen Distributed Block Device.
Hier erfolgt die Aktivierung nicht manuell, sondern vollautomatisch. Und ALLE ioBroker-Daten und Adapter sind auf allen Nodes immer zu 100% identisch. Das ist kein HA für Arme. Aber trotzdem günstig (vgl. die HW die Du bei Deiner HA für Arme-Lösung auch vorhalten darfst und nicht die Sicherheit hast).
Bei echter HA brauchst du mind. 3 Systeme, sonst kannst du in ein Split-Brain reinlaufen. Idealerweise kombiniert mit STONITH Mechanismus. `
Das hier ist echte HA. Nur - es geht in diesem Fall auch mit zwei Nodes. Und die beiden schaltbaren Steckdosen sind für das erzwungene Ausschalten (Stonith = Shoot The Other Node In The Head) des fehlerbehafteten Knotens - genau wie Du schreibst.
Deswegen aber auch die Bitte um Mithilfe. `
Hi,
Die Lösung ist für Arme, weil eben der ganze Automatismus fehlt und man einiges manuell machen muss. Weniger Komfort, weniger Sicherheit, aber halt auch weniger Komplexität und weniger Wissen beim Anwender nötig.
Bei nur zwei Nodes kann es dir beim Ausfall des Netzwerks passieren, dass beide denken, dass der andere tot ist und ihn mit dem STONITH Device abschießen. Mit einem dritten Node hast du einen Mehrheitsentscheid für das Abschießen. Und wenn das Netzwerk ausfallen sollte. gibt es keine Mehrheit und daher wird der aktive Node nicht abgeschossen, aber es übernimmt auch keiner der anderen beiden Nodes. Es läuft dann also erstmal weiter. Schön wär für sowas natürlich ein HA Switch Stack mit redundanter Anbindung zu jeden Node, aber dann wird es für den Privathaushalt schon etwas sehr teuer.
Beim Filesystem wäre GlusterFS vielleicht noch eine Option, es hat ein paar Vorteile, nicht auf Block Ebene, sondern auf File Ebene zu arbeiten. (Aber klar auch Nachteile)
Viele Grüße
Alex
-
Hallo Karl_999,
wie Du selbst schreibst, teilt man das Problem HA in der Regel in viele kleine Teillösungen auf, die über definierte Schnittstellen, klar geregelte Verfügbarkeiten, Service Level Agreements und Leuten mit Wissen und Praxis zusammengehalten werden. Eine Abteilung stellt das SAN bereit, die andere das Netzwerk und die Dritte die Serverhardware. Und dazu gibt es noch Zuständige für Backup/Restore, Betrieb und Monitoring.
Wir müssen es hier einfacher halten. Ich bin zuhause - bezogen auf die Backendtechnik - alleine. Meine Frau mag nichts von Technik wissen, freut sich aber über die Automatismen, an die sie sich inzwischen gewöhnt hat. Und mir graut vor dem Moment, an dem ich nicht mehr bin und etwas nicht geht. Dann bleibt wohl nur der Rückbau.
Bislang haben wir bis auf das automatische Starten von "hängengebliebenen" Adaptern im ioBroker fast nichts. Etwas Monitoring und ein Autostart-Script. Aus- und Einschalten. Keine Watchdog für die Hardware, keine redundante Datenhaltung, kein automatisches Failover, keine … nichts. Mir ist nicht bekannt, ob wir uns da von anderen Lösungen wie openHAB oder FHEM unterscheiden.
Dazu kommt, dass man aufgrund der (positiven) Vielseitigkeit von ioBroker so gut wie keine einheitlichen Standardverfahren für alle möglichen Funk-, Wired, CCU, Homee, .... , Heizungsanlagen und Smartmetern global aus den Ärmeln schütteln kann. Jedes ioBroker-System ist in seiner Gesamtheit individuell.
Ja, man muss sich Gedanken machen, was einem wichtig (und ggf. auch teuer) ist. Aber es gibt eine Komponente, die überall vorhanden ist.
Bei und mit dem ioBroker haben wir auf dem ersten Blick einen SPoF. Er ist das zentrale Logik- und Kommunikationsmodul. Natürlich zusammen mit seiner Infrastrukturanbindung. Er muss mindestens HA sein, damit man sich dann Gedanken machen kann, welche Schnittstellen/Sensoren/Aktoren auch bei einem Stromausfall noch laufen müssen. Dafür muss ich dann ggf. auch Geld in die Hand nehmen, um diese über USV an das Stromnetz anzuschließen. Oder gleich welche mit Batterie nehmen. Oder enOcean. Oder...
Einer HA-Lösung für die ioBroker-Software selbst kann man standardisieren. In dem man wie hier z.B. sagt, wir unterstützen zuerst einmal genau die folgenden Infrasturkurkomponenten. Und genau die Softwareversion. Sonst keine. Und eine gute Dokumentation bereitstellt.
Wie sähe es denn bei Dir aus? Was sagen Dir Deine Erfahrungen mit HA über Deine Hausautomatisationslösung und ioBroker?
-
Hallo Alexander,
auch Dir ein herzliches Danke für Deine kritischen Anmerkungen.
> Die Lösung ist für Arme, weil eben der ganze Automatismus fehlt
Was fehlt bei meinem Lösungsansatz? Was muss man wann manuell machen? Ich bitte um Beispiele. Hast Du Dir mein Video oben angesehen? Oder meinst Du Deinen Vorschlag, einfach ein Standby-System nebenhin zu stellen. Dann greift aber Punkt 3 aus meiner Liste oben. Keine HA. Nicht mal für Arme.
> Bei nur zwei Nodes kann es dir beim Ausfall des Netzwerks passieren, dass beide denken, dass der andere tot ist
Ich kenne das Thema. Hier letztendlich (hoffentlich) nicht. Die Netzwerkkommunikation ist redundant ausgelegt und die Clusterkommunikation wird über zwei unabhängige Wege geprüft (Public/Private-Network). Eine der beiden Kommunikationenwege geht nicht über einen Switch.
-
Hi,
> Die Lösung ist für Arme, weil eben der ganze Automatismus fehlt
Was fehlt bei meinem Lösungsansatz? Was muss man wann manuell machen? `
Sorry, mißverstädlich von mir geschrieben. Ich meinte nicht deinen Ansatz, sondern das, was ich bei meinem ersten Post schon so bezeichnet hatte. Und ja, da greift dein Punkt drei, die Frage ist nur, reicht das nicht für viele schon aus? Ich für mich sehe es ausreichend aus, aber bei mir funktionieren auch alle wichtigen Dinge, wenn das Smarthome abgestürzt ist, nur bei weitem nicht so komfortabel. Aber das sollte man bewusst entscheiden und ich finde deine Gedanken/Bemühungen in die Richtung echtes HA sehr toll.
> Bei nur zwei Nodes kann es dir beim Ausfall des Netzwerks passieren, dass beide denken, dass der andere tot ist
Ich kenne das Thema. Hier letztendlich (hoffentlich) nicht. Die Netzwerkkommunikation ist redundant ausgelegt und die Clusterkommunikation wird über zwei unabhängige Wege geprüft (Public/Private-Network). Eine der beiden Kommunikationenwege geht nicht über einen Switch. `
Einfaches, aber leider realisttisches Problemszenario beim Pi: Kurze Undervoltage, USB wird deaktiviert, LAN (welches ja intern an USB hängt) und WLAN sind auf einen Schlag kurz weg. –> Gesamtsystem über Stonith aus.
Viele Grüße
Alex
-
Hihi, zweiter hat kein Undervoltage, erkennt den ersten nicht mehr, schaltet den ersten deshalb hart aus und übernimmt automatisch die Rolle als Master. Die Daten hat er ja alle.
Erster hat keine Chance zum Schalten. Schließlich ist seine Kommunikation tod oder er ist zu langsam.
-
Habe nur kurz drübergeflogen. Eine Erhöhung der Verfügbarkeit auf RPI ist ziemlich relevant für mich, im Optimalfall sollte hierbei aber kein zweiter Host nötig sein.
Wichtige Themen sind IMO:
-
USV (diese sollte aber keinen negativen Einfluss auf das Startverhalten haben)
-
Erhöhung der SD-Lebensdauer (z.B. durch boot-only SD + Daten-SSD)
-
Watchdog-Integration (wenn ioBroker oder bestimmte Adapter längere Zeit nicht reagieren, bzw die CPU auf 100% festhängt, Host neustarten)
-
… [?]
Bezüglich Integration von Funk-Platinen hatte ich mir in anderem Kontext schonmal Gedanken gemacht. Über eine reine Spinnerei kam das aber noch nicht hinaus:
-
Erstellen eines oder mehrerer Fake-Serialports auf dem Host (in Software)
-
Diese Software packt die Daten dieser Fake-Serialports in ein eigenes Protokoll und schreibt sie in den GPIO
-
An den eigentlichen Serialport (GPIO) sind mehrere Mikrocontroller angeschlossen (in Reihe geschaltet), die beim Empfang von Daten prüfen, ob das Paket für sie ist (-> verarbeiten, sonst weiterschicken).
-
Jeder Mikrocontroller sendet die für ihn bestimmten Daten an seinen eigenen Serialport, an den die Funk-Platinen angeschlossen sind.
-
Per Funk empfangene Daten werden wieder in das Protokoll gepackt und an den Host adressiert. Dort friemelt die Software die Pakete wieder auseinander und leitet sie an den entsprechenden Listener weiter.
-
Die Mikrocontorller können einfach aufgebaut sein, z.B. DFRobot Beetle (8$) oder vergleichbare Arduinos.
-
-
Wie sähe es denn bei Dir aus? Was sagen Dir Deine Erfahrungen mit HA über Deine Hausautomatisationslösung und ioBroker? `
Ich selbst bin kein Fan davon, auf einem PI eine hochverfügbare Lösung laufen zu lassen.Ich habe eine dreistufige Lösung im Einsatz, die momentan für mich ausreichend ist. Gesteuert werden momentan ausschließlich die Heizkörper in der Wohnung. Mit ioBroker habe ich zum einen komfortable Bedienmöglichkeiten. Darüber hinaus stellt ioBroker noch eine Visualiserung von vielen anderen Informationen an zentraler Stelle zur Verfügung
Stufe 1 (ioBroker)
Als vernetzte Steuerungs- und Bedienungsebene kommt ioBroker zum Einsatz. Hier laufen alle Programme zur Steuerung der Heizkörper, insbesondere mit Verknüpfungen zu z.B. Außentemperatur.
Stufe 2 (Backup Aktoren / Notprogramm)
Bei einem Ausfall von ioBroker steht noch die nächste Ebene zur Verfügung.
Hier kommt eine CCU2 zum Einsatz. Momentan habe ich hier kein Fallback-Konzept erarbeitet. Auf der CCU sind Programme zur Steuerung der Temperatur hinterlegt, allerdings deaktiviert. Damit kann sehr schnell wieder eine (etwas einfachere) Steuerung aktiviert werden.
Zugleich dient die CCU2 auch als Datenspeicher für die unterlagerten Thermostate (Einstellungen)
Stufe 3 (Aktoren / Sensoren)
Dann habe ich alle Heizkörper mit HM-Komponenten ausgestattet. Zusammen mit dem darauf gespeicherten Programm habe ich meine minimale Fall-Backstufe.
Bei einem Ausfall der CCU kann jeder Heizkörper weiterhin völlig autark weiterarbeiten. eine Bedienung vor Ort ist direkt am Aktor möglich. Die Daten sind in der CCU gespeichert, so dass z.B. eine leere Batterie keine Schwierigkeiten bereitet (außer der dadurch bedingten fehlenden Heizkörpersteuerung). Dies ist der Grund warum ich meinen alten Rondostat-Steuerungen nachweine. Dort lässt sich der Kopf abnehmen und dann steht sogar noch eine absolute Handebene zur Bedienung (keine Regelung mehr, aber immerhin Steller).
Welche Ausfälle hatte ich schon:
- Ausfall ioBroker
Jemand brauchte eine Steckdose und hat das Netzteil für den PI gezogen. Gemerkt habe ich es dann nach zwei Tagen, weil die Wohnung etwas kühler war als üblich. Die Thermostate haben hier autark weitergearbeitet, nur das Tagprogramm über ioBroker lief nicht mehr.
Probleme nach der Aktualisierung von Adapter. Das treibt bei mir auch nicht den Adrenalinpegel sehr hoch. Und die Unterstützung hier im Forum / bei den Entwicklern ist so gut, dass die meistens nach ein bis zwei Tagen erledigt ist. Passiert nicht, wenn ich abwesend bin.
Natürlich den klassischen Ausfall durch defekte SD-Karten. Das zeigt sich meistens nach einem Reboot.
Der Verlust der Visualisierung und Bedienung war/ist unkritisch, da sehr selten genutzt wird.
- Regelmäßige Störungen der Funkverbindung der HM-Komponenten
Das ist ja leider ein bekanntes Problem aufgrund der nicht ganz optimal angepassten Antennen aller HM-Komponenten. Dadurch geht der eine oder andere Stellbefehl verloren. Ich löse das dadurch, dass ich diese zyklisch in größeren Abständen (1/4 Stunde) sende. Das ist nicht optimal, aber es funktioniert wunderbar.
Mir ist klar, dass andere natürlich andere Funktionen als sehr wichtig ansehen und sich dafür gerne eine höhere Sicherheit der Verfügbarkeit wünschen.
-
Bei und mit dem ioBroker haben wir auf dem ersten Blick einen SPoF. Er ist das zentrale Logik- und Kommunikationsmodul. `
Ich denke, hier sollte man unterscheiden, was ioBroker macht.1. Es gibt unkritische Dinge wie z.B. reine Visualisierung (z.B. Wetterbericht, Staumeldungen, Terminkalender)
2. Dann gibt es unkritische Steuerungen und Bedienung. Hier würde ich z.B. schöne Fernbedienungen, intelligente Lichtsteuerungen, Heizung mit Verknüpfung anderer Daten mit einordnen.
3. Und dann gibt es noch Basissteuerungen (z.B. Steuerung der Heizung, aber nur die Minimalfunktionen)
Wirklich kritisch sind nur die in 3. vorhandenen Funktionen. Der Rest ist Komfort. Was man in welcher Ebene sieht, muss jeder für sich selbst entscheiden.
Ich habe es selbst (noch) nicht gemacht, aber hier müsste man bereits die ersten Trennungen machen und entsprechende Module einsetzen. Nein, nicht nur die Adapter, sondern auf eigener Hardware.
Natürlich muss man diese dann wieder verbinden, aber das ist kein großes Problem.
Das hat dann den Vorteil, dass die einzelnen Module wesentlich kleiner und übersichtlicher werden und man gezielt Sicherungen einbauen kann.
Dann sollte man sich auch noch einmal kurz Gedanken über die Lebensdauer der eingesetzten Lösung machen:
- Welche Ersatzteile bekomme ich in 1, 2, 5 oder 10 Jahren noch, wenn Teile defekt sind?
Das ist in meinen Augen ein sehr hohes Risiko, da all die IT-Teile eine sehr kurze Verfügbarkeit haben. Und eine Anpassung mit neuen Komponenten oftmals sehr aufwendig wird.
Das ist dann die Domäne großer Hersteller in der Anlagenautomatisierung, die nach Abkündigung (das gibt es dort) bis zu 10 Jahre danach Ersatz liefern können.
-
Dann sollte man sich auch noch einmal kurz Gedanken über die Lebensdauer der eingesetzten Lösung machen:
- Welche Ersatzteile bekomme ich in 1, 2, 5 oder 10 Jahren noch, wenn Teile defekt sind?
Das ist in meinen Augen ein sehr hohes Risiko, da all die IT-Teile eine sehr kurze Verfügbarkeit haben. Und eine Anpassung mit neuen Komponenten oftmals sehr aufwendig wird.
Das ist dann die Domäne großer Hersteller in der Anlagenautomatisierung, die nach Abkündigung (das gibt es dort) bis zu 10 Jahre danach Ersatz liefern können. `
Dann sind wir wieder bei der Lösung die in den ioBroker integriert ist und unabhängig von der Hardware arbeitet.
Leider finde ich es erschreckend das bisher lediglich 20 Stimmen an der Abstimmung teilgenommen haben. Gehen hier wirklich alle "volles Risiko" ohne sich über Ausfälle Gedanken zu machen?
-
Mir wurde gesagt, Feedback von 5% aller Leser zu erhalten, wäre ein außerordentlich gutes Ergebnis. [emoji26]
Es ist korrekt, man kann den ioBroker und seine Adapter auch wieder in Verfügbarkeitsklassen aufteilen.
Das habe ich aber vorerst nicht vor. Ich wollte den im ioBroker integrierten Restartmechanismus der Adapter nutzen und direkt den Nodejs-Prozess, der den js-Controller mit seinen beiden Datenbanken bereitstellt, überwachen. Wenn der stirbt oder die Überwachungsprozesse fehlschlagen, dann ist ein Kriterium für einen Neustartversuch, bzw. wenn der fehlschlägt ein Kriterium für ein vollständiges Failover auf den Standby-Node gegeben.
Ein Failover ist dabei immer mit einem kurzfristigen Verbindungsverlust verbunden. Die in-Memory-Datenbanken von ioBroker werden ca. alle 30s auf den Datenträger gespeichert. Die Daten und ioBroker-Programmdateien sind auf beiden Cluster-Nodes immer gleich. Man verliert bei einem Fehler also Daten von max. 30s+Startzeit des ioBrokers+Adapter. Das sind letztendlich 1-2 Minuten. Danach läuft ioBroker weiter, als sei außer einem Restart nichts geschehen. Siehe Video oben im ersten Post.
-
Die in-Memory-Datenbanken von ioBroker werden ca. alle 30s auf den Datenträger gespeichert. `
Das trifft normal für die Zustände (states) bei Verwendung der Datei states.json zu (habe ich bei mir auf 10 Minuten erhöht). Redis speichert bei typischer Ereignisfrequenz alle 5 Minuten in eine Datei. Die statischen Objekte werden normalerweise viel seltener in objects.json gespeichert. -
Danke für den Hinweis. Ich werde mir die Konfigurationsoptionen und den Quelltext anschauen.
Redis ist erst einmal außen vor. Das hat eigene Hochverfügbarkeitsoptionen.
-
Ich habe im ersten Artikel eine Übersichtsbild der angedachten Lösung angefügt. DIe Umfage läuft noch kurze Zeit. Wer noch nicht abgestimmt hat, ist eingeladen das noch schnell nachzuholen.
Ich würde mich freuen, wenn diejenigen, die direkt mitmachen wollen, mir eine kurze PN zukommen lassen würden.
Erstes Ziel wird es ein, die HW-Auswahl "festzuklopfen" und eine für alle nachvollziehbare Dokumentation zur Einrichtung einer Filesystemspiegelung (RAID 1 over LAN ) zu erstellen.