Redundante Netzwerkverbindungen
Um eine bessere Fehlertoleranz zu erreichen, können WinCC OA Manager andere Manager, die auf verschiedenen Rechnern laufen, über redundante Netzwerkverbindungen kontaktieren (das bedeutet, dass die Manager über zwei Netzwerkverbindungen kontaktiert werden (= IP-Verbindung)).
Redundante Netzwerkverbindungen können für abgesetzte Benutzerschnittstellen, für redundante Systeme (siehe auch Grundlagen Redundanz), zwischen verteilten Systemen (Verbindung der Dist-Manager - siehe auch Grundlagen verteilte Systeme) oder für einen beliebigen Manager der auf einen anderen Rechner als sein "Server" läuft (z.B. Treiber oder API-Manager die auf einer separaten Maschine laufen), verwendet werden.
Die verwendeten Netzwerkverbindungen müssen in der hosts
Datei
definiert werden. Die hosts
Datei befindet sich unter Windows im
Verzeichnis <SystemRoot>/system32/drivers/etc/
, unter Linux im
Verzeichnis /etc/
. Grundsätzlich ist zu beachten, dass die Namen der
redundanten Netzwerkverbindungen in der hosts
Datei nicht gleich
dem Hostnamen sein dürfen. Aus diesem Grund werden Aliase für die IP-Adressen in der
hosts
Datei definiert.
Beachten Sie, dass :
- im Hosts-File immer der Eintrag für den localhost, 127.0.0.1 localhost, vorhanden sein muss
- in verteilten/redundanten Systemen auf allen Rechnern der gleiche IPv6 Status (aktiv bzw. inaktiv) eingestellt sein muss. Ein Mischmodus wird in WinCC OA nicht unterstützt.
Das folgende Beispiel zeigt, wie die Konfiguration in der hosts
Datei vorgenommen werden muss, um eine korrekte Funktionalität der redundanten
Netzwerkverbindungen im Betrieb, zu gewährleisten.
Einstellungen in der hosts Datei
Konfiguration eines redundanten Systems, das mit einer redundanten Netzwerkverbindung zwischen den Servern ausgestattet ist (Redu-Partner 1 = server1, Redu-Partner 2 = server2). Beide Rechner sind mit zwei Netzwerkkarten (Hauptkarte und Nebenstrecke) ausgestattet.
IP-Adressen für server1: 1.1.1.11 (Hauptkarte) und 1.1.2.11 (Nebenstrecke)
IP-Adressen für server2: 1.1.1.12 (Hauptkarte) und 1.1.2.12 (Nebenstrecke)
Die hosts
Datei muss für dieses Beispiel auf beiden Rechnern
so aussehen:
1.1.1.11 server1 server1-1
1.1.2.11 server1-2
1.1.1.12 server2 server2-1
1.1.2.12 server2-2
Bei der Angabe von Config-Einträgen (z.B. bei Redundanz) muss die erste Verbindung
immer die sein, die dieselbe IP-Adresse wie der Rechner hat. Laut oben gezeigter
hosts
-Datei würde der "data"-Eintrag bei einem
redundant konfigurierten Projekt folgendermaßen aussehen (auf beiden Rechnern):
data = "server1-1,server1-2$server2-1,server2-2"
Neben der IP-Adresse der Hauptnetzwerkkarte muss immer der richtige Rechnername stehen. Somit ist garantiert, dass CONTROL-Funktionen wie dataHost(), eventHost(), ... immer den richtigen Hostnamen zurückliefern. Nach dem Rechnernamen steht der Alias für die IP-Verbindung.
Die Einträge mit <Rechnername>-1 bzw. -2 sind Aliase für die redundanten Netzwerkverbindungen und dürfen nicht gleich dem Rechnernamen sein. Sie können jedoch auch andere Aliasnamen als <Host name>-1 or <Host name>-2. für die Verbindungen vergeben! Beachten Sie jedoch, dass die Optionen -1 und -2 zu den Aliasnamen, die verwendet werden, hinzugefügt werden müssen.
BEISPIEL:
Einträge der Hosts-Datei:
192.168.153.135 VRA-TST-W-323 reduServer-1
192.168.120.156 VRA-TST-W-323-2 reduServer-2
192.168.153.108 VRA-TST-W-322 reduServer2-1
192.168.120.131 VRA-TST-W-322-2 reduServer2-2
Die Config-Datei des Reduprojektes sieht wie folgt aus:
data = "reduServer-1,reduServer-2$ reduServer2-1,reduServer2-2"
event = "reduServer-1,reduServer-2$ reduServer2-1,reduServer2-2"
Mit einem "PING"-Befehl kann die Konfiguration kontrolliert werden:
Alle in der hosts
Datei eingetragenen Namen müssen die
richtige IP-Adresse liefern (ping <Name>). Zum Beispiel "ping server1-1" muss
"1.1.1.11" liefern (genauso wie "ping server1" auch "1.1.1.11" liefern muss), "ping
server2-2" muss "1.1.2.12" liefern.
Ein "PING" auf die IP-Adressen muss die richtigen (als erstes eingetragenen) Namen liefern (ping -a <IP-Adresse>). Zum Beispiel "ping -a 1.1.1.11" muss "server1" liefern (und nicht server1-1), "ping -a 1.1.2.12" muss "server2-2" liefern.
Die Parametrierung der redundanten Netzwerkverbindung erfolgt in der Config-Datei. Jeder Eintrag der einen Hostnamen (oder eine IP-Adresse) zu dem eine Verbindung aufgebaut werden soll (z.B. event, data oder distPeer), definiert, muss so geändert werden, dass der Eintrag die Namen der beiden IP-Verbindungen des abgesetzten Hosts getrennt durch "," enthält.
Wenn z.B. der Server (Hostname "server") zwei Netzwerkkarten mit IP-Verbindungen "server-1" und "server-2" hat, schaut der Config-Eintrag folgendermaßen aus:
event = "server-1,server-2"
Beispiel 1
Abgesetztes UI zu einem Single-System (Hostname "server", IP-Verbindungen "server-1" und "server-2").
Die Config-Datei des abgesetzten UIs muss folgende Einträge enthalten:
[general]
data = "server-1,server-2"
event = "server-1,server-2"
Beispiel 2
Verteiltes System ("System1" als Single System und "System2" redundant ausgeführt). System1 verbindet sich zu System2 über eine redundante Netzwerkverbindung (Hostnamen des System2: System2_host1 und System2_host2" IP-Verbindungen von System2: Sys2_host1-1, Sys2_host1-2, Sys2_host2-1, Sys2_host2-2).
Die Config-Datei des System1, welches sich zu System2 verbindet, muss folgende Einträge enthalten:
[general]
distributed = 1
[dist]
distPeer = "Sys2_host1-1,Sys2_host1-2$Sys2_host2-1,Sys2_host2-2" 2 #Kontaktiere beide Hosts des System2 über redundante Netzwerkverbindung
Hinweis
Beachten Sie, dass, wenn Sie einen Serverport definieren, nur ein Port für alle Verbindungen definiert werden darf z.B. host1,host2:port. Wenn Sie keinen Port definieren wird der Defaultport verwendet.
Weiters muss der Benutzer ein HOME-Verzeichnis lokal haben und es dürfen keine HARD-Mounts durchgeführt werden!
Test von redundanten Netzwerkverbindungen
Wenn Sie die redundanten Netzwerkverbindungen testen, beachten Sie bitte die folgenden zwei Punkte:
-
Die beiden Netzwerkverbindungen müssen als "eigene" Verbindungen angesehen werden und separat getestet werden.
-
Es muss sichergestellt sein, dass die jeweilige Partneradresse (Host 1-1 <---> Host 2-1 bzw. Host 1-2 <---> Host 2-2) nicht erreichbar ist, wenn ein Netzwerk deaktiviert wird.
Verarbeitung von Messages bei redundanten Netzwerkverbindungen (Verteiltes System)
Sind redundante Netzwerkverbindungen bei einem verteilten System konfiguriert, werden die Messages über beide Strecken verschickt. Beim Empfangen einer Message wird diese sofort akzeptiert. Wird die idente Message danach über die zweite Verbindung erneut empfangen, wird diese verworfen. Es wird somit nicht gewartet bis die Message über beide Netzwerkverbindungen empfangen wurde.