Funktionswunsch Sicherung / Replikation

Hallo Zusammen,

ich habe in einem anderen Forum-Teil bereits gefragt, weil ich das Thema relativ wichtig finde:

Kann man in IPS eine Möglichkeit der Replikation und für ein Failover implementieren?
(Details auch hier: https://www.symcon.de/forum/threads/26811-Server-Failover-%28Wie-überwachen-und-Backup-System-starten-%29)

Ich denke sicherlich haben einige von Euch die ein oder andere essentielle Funktion Ihres Heims über IPS laufen - auch wenn die Basisfunktionalität erhalten bleibt bei einem Ausfall von IPS, es würde schon viel fehlen. Sicher etwas das jedem hier nicht gerade Tränen der Freude aufs Gesicht zaubert.

Ich betreibe IPS aktuell auf einen Windows 2008R2, allerdings kann der Server ja immer mal einen Hardware-Defekt erleiden. (Consumer-Board mit i3, redundantes NT, Adaptic-Profi-RAID, ~50 min USV)

Um den Energieverbrauch gering zu halten, wäre ein Raspberry ein Failover meiner Wahl.

Allerdings denke ich, wäre es ja sicher bzw. evtl. möglich alle Systeme „gleich“ anzusprechen um die Replikation laufen zu lassen.

Demnach wäre mein Wunshc ein System, welches ständig up to date bleibt, repliziert aus dem Produktiv-System und welches nach einer einstellbaren Zeitspanne (? 5-30 min., whatever) die Funktion übernimmt bzw. aufnimmt.

Danke & Gruß,
Matthias

wünsche mir auch die Möglichkeit
Variablen Remote einer 2. Symcon Installation abzufragen und zu setzen.
Generell am besten alle Funktionen inkl. Script-Ausführung mit Angabe
auf / von welcher Installation.

Habe hier z.B. 2 gleiche Raspberry Installationen die quasi parallel rennen und würde
gerne gewisse Variablen / Ereignisse untereinander matchen.
("z.B. IPS1_GetValue(1) > IPS2_SetValue(4) ")

Allein da nicht alle Devices mangels fehlender Hardwareanbindung durch beide direkt angesteuert
werden können.
Quasi ein asynchrones Symcon Cluster mit Ausfallschutz.

(Momentan gibt es halt „nur Backup-Scripte“ für den worstcase.)

Die Herausforderung dabei ist nicht IP-Symcon, sondern alle Hardware, die ihr am Server „stecken“ habt. Sofern ihr alles zu 100% am LAN habt, wäre das ggf. möglich, sofern an den Gateways/Geräten mehrere Verbindungen möglich sind. Bei einem Ausfall ist der „alte“ Socket nämlich noch offiziell offen, bis die Gegenseite diesen Aufgrund eines Timeouts schließt.

paresy

schon klar, gibt es denn die Möglichkeit remote aus dem IPS etwas von einem anderen IPS abzufragen und zu setzen/auszuführen?
Hab da nichts zu gefunden?

steht sogar in der Doku Datenaustausch — IP-Symcon :: Automatisierungssoftware ;), Beispiele gibt es auch im Forum.

danke, habe es mal exemplarisch für einen EnOcean-Griff wie folgt gelöst,
kennt jemand eine elegantere Lösung als diese?:

<?
$rpc1 = new JSONRPC(„http://192.168.0.11:3777/api/“);
$rpcV1 = $rpc1->GetValue(12345 /[EnOcean\Tuer Griff\Status]/);
$rpcVt1 = $rpc1->IPS_GetVariable (12345 /[EnOcean\Tuer Griff\Status]/)[‚VariableChanged‘];
echo "
TürGriff: „.$rpc1->GetValueFormatted(12345 /[EnOcean\Tuer Griff\Status]/).“ „.$rpcV1;
echo (“ Changed: " . strftime ("%d.%m.%y-%X", $rpc1->IPS_GetVariable (12345 /[EnOcean\Tuer Griff\Status]/)[‚VariableChanged‘]));
echo " ".$rpcVt1;

$rpc2 = new JSONRPC(„http://192.168.0.12:3777/api/“);
$rpcV2 = $rpc2->GetValue(12345 /[EnOcean\Tuer Griff\Status]/);
$rpcVt2 = $rpc2->IPS_GetVariable (12345 /[EnOcean\Tuer Griff\Status]/)[‚VariableChanged‘];
echo "
TürGriff: „.$rpc2->GetValueFormatted(12345 /[EnOcean\Tuer Griff\Status]/).“ „.$rpcV2;
echo (“ Changed: " . strftime ("%d.%m.%y-%X", $rpc2->IPS_GetVariable (12345 /[EnOcean\Tuer Griff\Status]/)[‚VariableChanged‘]));
echo " ".$rpcVt2;

if ($rpcV1 == $rpcV2)
echo "
Tür Status gleich, keine Änderung";
else
if ($rpcVt1>$rpcVt2)
$rpc2->SetValue(12345 /[EnOcean\Tuer Griff\Status]/,$rpcV1);
//echo "
Tür Status ungleich, setze neueren Status $rpcV1 von pi11 auf pi12 !?!";
else
$rpc1->SetValue(12345 /[EnOcean\Tuer Griff\Status]/,$rpcV2);
//echo "
Tür Status ungleich, setze neueren Status $rpcV2 von pi12 auf pi11 !?!";

echo $rpcVt1." „.$rpcVt2.“ ".$rpcVt1-$rpcVt2 //difftime
;
?>

Also ich habe das ganze für mich jetzt relativ gut / halbwegs elegant gelöst (wenn auch ziemlich „nicht einfach“):
(Auch wenns nicht direkt hier hinein gehört, vielleicht hilfts ja für den ein oder anderen als Denkanstoß)

Mein Server läuft nun auf VMWare vSphere (ESXi) 6.0, darauf ein 2012 R2 mit IPS.

Jede Nacht repliziere ich mit GhettoVCB die komplette VM (bis auf die 9TB Datenplatte) auf ein Zyxel-NAS auf einen RAID-Verbund.
Ich habe dann relativ günstig (~200€) ein Thinkcentre M82 mit einem i5 3550 (kann VT-D) geschossen, dazu 16GB RAM und fertig. Der VSphere dort hat die VM über NFS im NAS eingebunden. Das System ist IMMER aus.

Dazu überwacht ein Raspberry PI alle 10 Minuten mit einem Skript mittels Ping die IP der 2012 VM an. Sollte diese bei 10 Pings nicht erreichbar sein, wird ein WOL Magic Packet an den M82 geschickt, der fährt automatisch innerhalb von ca. 1 Minute inkl. der VM hoch - IPS ist wieder da (wenn auch Stand 23:00 der Vornacht).

Übrigens ist vSphere gratis (wenn man nicht alle Funktionen braucht) - das hier funktioniert auf jeden Fall in der Free-Version.

Gruß,
Matthias