Redundanter Server

Ein redundanter Server ist ein Server, auf dem aktuell keine Kameradaten verarbeitet werden. Bei Ausfall eines Servers übernimmt ein redundanter Server dessen gesamte Kamera- und Geräteverarbeitung. Das bedeutet, dass alle Kameras auf den redundanten Server verschoben und von diesem verarbeitet werden. Das Videobild fällt nur höchstens 15 Sekunden aus.

Vorraussetzung zum Herstellen von Redundanz:

       Es muss jederzeit mindestens ein redundanter Server verfügbar sein (ein Server ohne Kameras).

       Der redundante Server muss zur selben Redundanzgruppe wie der potenziell ausfallende Server gehören.

       Die Redundanz muss für die entsprechende Redundanzgruppe aktiviert werden.

  

Gruppe mit aktivierter Redundanz

Beispiel

Serverfarm-Konfiguration:

Wenn einer der ersten beiden Server ausfällt, werden die Kameras an den dritten redundanten Server übergeben.

 

Beispiel: Alle drei Server in derselben Redundanzgruppe „1“

Wenn der erste Server (Redundanzgruppe 7) ausfällt, erfolgt keine Übernahme durch einen anderen Server, da Gruppe 7 keinen redundanten Server enthält.

 

Verschiedene Redundanzgruppen „1“ und „7“

 

Beispiel

Typische Symphony-Serverfarm:

Diese Konfiguration zeigt die Verwendung eines externen Datenbankclusters zur Gewährleistung der Konfigurationsdatenredundanz sowie ein NAS bzw. SAN für den Zugriff auf Dateien mit aufgezeichneten Videobilddaten nach einem Ausfall.

 

Farm mit mehreren Servern und einer Konfigurationsdatenbank auf einem der Symphony-Server: Wenn Serverredundanz unbedingt gegeben sein muss, ist dieses Setup nicht empfehlenswert, da es einen einzigen Ausfallpunkt gibt: Server 1. Wenn dieser Server ausfällt, ist die Konfiguration für die übrigen Server nicht zugänglich.

 

 

Redundanzgruppen

Aufgrund von geografischen Einschränkungen bezüglich der Dateispeicherung kann es für bestimmte Server erforderlich sein, nach einem Ausfall den Betrieb nur an bestimmte Server zu übergeben. Mithilfe einer Redundanzgruppe können Sie Ihre Server so zusammenfassen, dass die Übernahme nach einem Ausfall nur unter Servern derselben Gruppe stattfindet. Aus diesem Grund muss jede Servergruppe mindestens einen redundanten Server enthalten.

Befreundetes System

Innerhalb einer Redundanzgruppe besteht eine „freundschaftliche Nachbarschaft“, in der jeder Server den Zustand seiner Nachbarn (oder „Freunde“) überwacht. Jeder Server überträgt sekündlich den Status Aktiv an alle befreundeten Server, und jeder Server erwartet die Meldung Aktiv von jedem benachbarten Server. Dadurch entsteht ein Netzwerk, in dem auch der Ausfall von mehr als einem Server von einem Server in der Nachbarschaft erkannt wird.

Jeder Server führt einen Überwachungsthread aus, der UDP-Socket-Meldungen von jedem befreundeten Server empfängt.

       Wenn die Grenzwertzeit für die Erkennung abläuft, ohne dass die Aktiv-Meldung von einem bestimmten befreundeten Server eingeht, ist dieser Server möglicherweise ausgefallen. Der mögliche Ausfall des Servers wird daraufhin an den Master-Server gemeldet.

       Wenn mindestens die Hälfte der befreundeten Server den Ausfall an den Master meldet, gilt der Ausfall als bestätigt. In diesem Fall wird durch einen Ausfallkamerawechsel-Algorithmus eine Ausfallübernahme durch einen redundanten Server eingeleitet, der daraufhin die gesamte Kameraverarbeitung des ausgefallenen Servers übernimmt.

Redundanzkonfigurationseinstellungen

Folgende Farm-Redundanzeinstellungen können konfiguriert werden:

Konfiguration von Farm-Redundanzeinstellungen

Einstellung

Beschreibung

FarmHealthStartDelayMs

Nach dem Start wartet der Server die hiermit angegebene Zeit ab, bevor er die Ausfallüberwachung der befreundeten Server aufnimmt.

FarmHealthSockTimeoutMs

Zum Empfang der Aktiv-Meldungen aller befreundeten Server werden UDP-Sockets verwendet. Für jeden gilt dieses Zeitlimit. (Daran sollte keine Änderung erforderlich sein.)

FarmHealthMissedUdpMs

Der Zeitwert in Millisekunden, für den ein Server ausgefallen sein kann, bevor er als ausgefallen registriert und eine Ausfallübernahme eingeleitet wird. Unter bestimmten Umständen kann es sinnvoll sein, diesen Wert auf mehrere Minuten festzulegen, damit nach einem Windows-Update ausreichend Zeit für einen Neustart ist.

FarmHealthUdpPort

Ändern Sie diesen Wert nur, wenn die Ausfallübernahme nicht funktioniert und die is*-Protokolldateien zeigen, dass Port-Konflikte vorliegen.

Diese Einstellungen befinden sich NICHT standardmäßig in der Datenbank. Fügen Sie sie mithilfe der folgenden Zeilen hinzu. Der letzte Parameter ist jeweils der verwendete Standardwert.

dbupdater "insert into Settings (Type,ID,Section,K,V) values ('Global','','Main','FarmHealthStartDelayMs',      '5000')"

dbupdater "insert into Settings (Type,ID,Section,K,V) values ('Global','','Main','FarmHealthSockTimeoutMs',  '1500')"

dbupdater "insert into Settings (Type,ID,Section,K,V) values ('Global','','Main','FarmHealthMissedUdpMs',   '30000')"

dbupdater "insert into Settings (Type,ID,Section,K,V) values ('Global','','Main','FarmHealthUdpPort',           '5045')"