High-Availability IPS 4.0 System

Hallo zusammen,

ich fange gerade an, mir ein IPS System in einer HA Konfiguration aufzusetzen.

Warum? Weil ich es kann :smiley:

Ich habe so etwas schon heufiger gemacht, und zwar bei größeren Firmen für deren Betriebswirtschaftlichen Systeme.
Unter anderem auch mit Linux und Heartbeat und Datenbanken im TeraByte bereich.

Was liegt also näher 2 Raspberrys zu nehmen und für ca. 100-150€ einen HA-Cluster daraus zu bauen.
Ich werde mein Vorgehen dokumentieren, und euch an dieser Stelle auf dem Laufenden halten.
Falls es in eine andere Rubrik hier im Forum gehört, gerne umschieben.

Jetzt aber der Grund für mein Posting:
Wie schneide ich die geteilten Dateisysteme?

Normalerweise ist es so, dass man in einem HA Umfeld alle zum System befindlichen Daten (Datenbank Files, Executables, Configurationsdateien,…) auf einem gemeinsam nutzbaren Filesystem ablegt. Z.B. irgendwas im SAN gesharetes oder so.

Da das beim RPI nicht so wirklich geht (bzw. recht kostspielig ist), möchte ich das geteilte Dateisystem mit DRBD und OCFS2 aufsetzen. --> Die Daten werden übers Netzwerk repliziert und auf dem Standby Knoten aktuell gehalten. Quasi ein Raid1 übers Netzwerk.
Keine Ahnung wie gut das funktionieren wird, aber un dies herauszufinden mache ich das ganze ja.

Aber welche Verzeichnisse muss ich sharen?

  1. Alles geht leider nicht, da das Executable „symcon“ in /usr/bin liegt, und ich es somit nicht auf eine eigene Partition auslagern kann. Somit muss man händisch beim Betrieb eines solchen Clusters dafür sorgen, dass auf beiden Knoten immer die gleiche Version installiert ist.
  2. Wenn ich schon nicht alles in sync halten kann, stellt sich mir die Frage. „Was muss ich alles in sync halten?“
    /usr/share/symcon/ - Static Data --> unter der Annahme, dass sich diese Daten nur durch ein update ändern (können) besteht hier keine Notwendigkeit
    /var/lib/symcon/ - Variable Data --> Auf jeden Fall!
    /var/log/symcon/ - Log Files --> Die Logfiles sind meiner Meingung nach nicht replikationswürdig, da mich nach einem Cluster Switch eh nicht interessiert, was auf dem anderen Knoten passiert ist. Bzw. Ich kann klar sagen, was auf welchem Konoten passiert ist.

Gibt es bei euch eine Meinung dazu?
Derzeit würde ich sagen, dass es ausreichen würde /var/lib/symcon zu spiegeln.

Danke,
Thorsten

Leider fehlte mir bisher die Zeit zum Testen, ich fand diese Möglichkeit sehr interessant HA-Cluster mit DRBD, Corosync und Pacemaker.

NFS kann mein Storage und die Pfad müssten sich eigentlich zurecht biegen lassen.

Es gibt ein ähnliches Beispiel mit lokalen USB Sticks, dessen Filesystem gesynct wird.

Hallo,

Ja, so hatte ich das vor.

Ich möchte aber alles auf den SD-Karten lassen.
Einfach eine Partition anlegen, die dann gesynct wird. Sollte laut Doku gehen. Man muss halt beide SD-Karten gleich konfigurieren…
Was bringt es mir IPS hochverfügbar zu machen, wenn mir dann der NFS Server abraucht.

Mir geht es eher darum, welche Verzeichnisse man syncen muss, nicht wie.

Gruß,
Thorsten

Hallo,

am Raspi liegen die Symcon Daten seit der RC1 nun hier:

/usr/bin/symcon - Executable
/usr/share/symcon/ - Static Data (ehemals /etc/symcon/)
/var/lib/symcon/ - Variable Data (ehemals /usr/share/symcon/)
/var/log/symcon/ - Log Files

Also eine Partition erstellen und die Verzeichnisse einfach mit Symlinks umleiten

https://www.symcon.de/forum/threads/28903-Linuxversion-von-Symcon?p=281682#post281682

Und ja bitte unbedingt ohne NFS sonst mach HA keinen sinn oder hat einer von euch zumindest eine NetApp mit zwei Heads zuhause --> wenn ja braucht er heuer keine Heizkosten bezahlen und hört die Autobahn neben seinem Fenster nun nicht mehr :wink:

Was mich noch Interessiert ist wie sieht es mit der Lizenz aus? Reicht es wenn die Datei kopiert wird?

Und wie (wer?) macht das mit dem Umschalten von einem auf den anderen, denn es sollte ja nie beide zugleich online sein…

Paul

Hallo,

Wenn Du Dir mein unrsprünglichen Post mal anschaust, wirst Du entdecken, dass ich genau das schon dort hingschrieben habe…
Nur das mit dem Symlink halte ich nicht für richtig, da ich ja (meiner Meinung nach) nur ein Verzeichnis brauche.

Du wirst lachen, das hatte ich mal. Da habe ich eine Testinstalltion eines Clusters aufgesetzt. Meine ExFreundin war nicht sonderlich begeistert. Ne NetApp und 6 Blades… Mann was das ein Krach.
Nun ja, sie hat mit dennoch geheiratet…

Guter Punkt, die müsste man wohl wirklich verlinken.
Wobei die meiner Meinung nach auch gut in /val/lib/symcon aufgehoben wäre…

Darum kümmert sich dann eine Cluster Software. Ich denke es wird auf pacemaker in verbindung mit corosync hinauslaufen.
Der muss dann auch die „virtuelle IP“ umschalten.

Gruß,
Thorsten

Hallo Leute,

das Thema finde ich äußerst spannend. Wie dazu im Betrieb meine Vorstellungen sind hatte ich ja schon an anderer Stelle geäußert - bin diesbezüglich aber kein Profi…

In einer externen Datei, die beim Start eingelesen wird (und die individuell sein muss also nicht synchronisiert werden dürfte), muss die Rolle des Systems definiert werden.
Das aktive System:

  • Schaltet alle I/O-Instanzen ein
  • Lege die Portweiterleitungen in der FritzBox auf sich um

Das inaktive/Standby-System:

  • Schaltet alle I/O-Instanzen aus
  • Prüft regelmäßig die Funktion des aktiven Systems

Alles das ist programtechnisch abbildbar (in Teilen schon mal testweise versucht). Wie jedoch die Systeme identisch gehalten werden können, da habe ich nun keine plastische Idee…

Joachim

Hallo,

Nein! kein gefrickel, ein richtiges HA setup.
Es gibt eine Cluster Lösung ( Corosync Cluster Engine - Wikipedia, the free encyclopedia ) mit Bedienoberfläche ( Pacemaker – Wikipedia ).
Die kümmert sich um alles!

Es wird eine zusärtliche IP konfiguriert, die dann von der Cluster Lösung auf dem einen oder anderen Knoten gestartet wird. Diese Clusterlösung startet und stoppt auch die Software. Sie erkennt dies anhand der von scripten und prozessen.

Und dafür geibt es auch eine Lösung.
-> DRBD DRBD:What is DRBD

Wenn eine Partition auf einer Seite veränder wird, wird diese änderung automatisch auf die andere Seite repilziert.

Ich schreibe das mal alles auf, damit man es nachvollziehen kann.

Gruß,
Thorsten

Hallo Thorsten,

was ich (und vermutlich auch andere hier im Forum) benötigen würde ist eine „Step-by-Step“-Anleitung, was wird an Hard- und Software benötigt, was ist zu beachten…

Das ist meist mühselig, aber hilft hier sicherlich am meisten.:wink:

Joachim

Hallo,

ist aber genau das, was ich gerade erstelle :wink:

Aber als remark:
Wenn man ein HA System betreibt, sollte man sich echt auskennen was man tut.
Ich würde aber versuchen auch die öffensichtlichen Fallen aufzulisten.

Gruß,
Thorsten

Hallo Kugelberg,

Jein --> wenn du in deinem mit DRBD Syncronisierten Laufwerk einfach Unterordner machst und diese dann ins System an die Stellen verlinkst die Symcon hat / braucht ist das ja wieder in Ordnung oder?

Auch ich denke das es keinen Sinn macht auf beiden Systemen die Dienste laufen zu lassen und nur die I/Os zu deaktivieren, entweder einen Anhalten oder die Cluster Lösung --> wobei ich keine Ahnung habe ob der Raspi dafür leistungsfähig genug ist…

Paul

Zitat Zitat von PaulG4H Beitrag anzeigen
Was mich noch Interessiert ist wie sieht es mit der Lizenz aus? Reicht es wenn die Datei kopiert wird?
Guter Punkt, die müsste man wohl wirklich verlinken.
Wobei die meiner Meinung nach auch gut in /val/lib/symcon aufgehoben wäre…

/val/lib/symcon, wär ich auch für.

Cluster, bin gespannt was da raus kommt, die Idee ist gut.

Also zum Thema NetApp ich hab ne cdot 2240 mit 24x 3 tb und ha am laufen [emoji16]

Und ich ne 2 x hitachi hus130 80TB mit datacore San symphony… :wink: aber nicht zuhause

Gibt’s hier was Neues?

Läuft bei jemandem ein Cluster?

Sebastian

Hi,

nun ja, ein Cluster läuft, aber noch ohne IPS. Irgendwie hat mir da die Zeit gefehlt…

Gruß,
Thorsten

Kann man einen Z-Wave-Gateway clustern? Nein.
Kann man einen Enocean-Gateway clustern? Nein.
Kann man eine Homematic CCU clustern? Nein.

Technisch gesehen, kann man IPS problemlos clustern. Der Sinn erschließt sich mir allerdings nicht. Wenn man irgendwas HA macht, muss man die gesamte Kette durchgehend HA machen. HA ist nur so hochverfügbar, wie das schwächste Glied.

Steht doch ganz oben in Post 1: „Weil ich es kann“ :smiley:

Ich muss aber aus meiner beruflichen Erfahrung auch sagen:
Wenn man ab und zu mal etwas Stress haben möchte dann baut man sich eine überschaubare Config mit einem Standby-System. Um die Sache aber richtig in die S%&§" zu reiten braucht man einen Cluster :wink:
Ich hab schon so einige Crashes gesehen die passiert sind wegen eines Clusters und nicht trotz des Clusters…

In case of a system that uses external I/O interfaces there are multiple points of failure that may cause a full or partial failure of the system. Any single point of failure that can be eliminated will improve availability. The automation server is an important point of failure in this respect, in many systems it will cause a total failure. So having a failover solution will surely decrease the likelihood of a total failure.

If you use ethernet interfaces for I/O, multiple automation servers can connect to the same interface (maybe not simultaneously, but it might work in a failover situation). In systems with decentralized I/O, for example I/O modules for every room or a set of rooms, the loss of an I/O module impacts only a part of the building. Failure of the automation server brings down the whole system.

(Sorry my writing skills are insufficient to respond in German)

Was ist eigentlich daraus geworden? Hast du das mal fertig realisiert, zwei Jahre sollten dafür ja ausreichen :wink:

Gruß,
Samuel

Könnte man glauben.
aber irgendwie mussten die PIs dann (als das Grundsetup stand) doch anders verwendet werden…

Gruß,
Thorsten