Schalter

In SKOOR 6.2 hat sich die Semantik des Befehls „switch“ erheblich geändert. In früheren Versionen hat der Befehl „switch“ die Rollen von Primär- und Standby-System vollständig vertauscht. Seit SKOOR 6.2 führt der Befehl „switch“ nur noch ein Failover vom Primär- zum Standby-System durch. Um die Replikation wieder funktionsfähig zu machen, muss manuell ein „createslave“ auf dem neuen Primärsystem durchgeführt werden. Dies deckt die gängigen Anwendungsfälle viel besser ab, da Failovers wesentlich schneller durchgeführt werden können.

Failover

Dies kann durch Ausführen des folgenden Befehls auf dem aktuellen Standby- oder Primärserver erreicht werden. Wenn der Primärserver nicht mehr erreichbar ist, muss der Befehl auf dem Standby-Server ausgeführt werden:

# /opt/eranger/bin/eranger-server-replication.pl switch

10.1.0.89 
10.1.0.89 checking ssh for user reranger


localhost (10.1.0.89) is slave, master 10.1.0.88 is up

will convert localhost to master
and 10.1.0.88 to slave

press ENTER to continue, Ctrl-C to abort >

Drücken Sie die Eingabetaste, um fortzufahren. Die Ausgabe sollte wie folgt aussehen:

10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 pre s2m
10.1.0.88 calling eranger-server-syncfs.sh 10.1.0.89
10.1.0.88 calling eranger-server-sync-collector-bin.pl
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 pre m2s
10.1.0.88 OK> 10.1.0.90 removed from eth0
10.1.0.89 from slave to master
10.1.0.89 current master: 10.1.0.88
10.1.0.89 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 httpd already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-report (service eranger-report )..
10.1.0.89 done
10.1.0.89 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-server (service eranger-server )..
10.1.0.89 done
10.1.0.89 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ethd (service eranger-ethd )..
10.1.0.89 done
10.1.0.89 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.89 done
10.1.0.89 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-collector (service eranger-collector )..
10.1.0.89 delete /opt/eranger/collector/ringbuffer1.bin
10.1.0.89 done
10.1.0.89 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-agent already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.89 done
10.1.0.89 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 httpd already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-report already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-server already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ethd (service eranger-ethd )..
10.1.0.89 done
10.1.0.89 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.89 done
10.1.0.89 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-collector already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-agent already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.89 done
10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 post s2m
10.1.0.89 OK> 10.1.0.90 added to eth0.
10.1.0.89 OK> 10.1.0.90 configured in /etc/sysconfig/network-scripts/ifcfg-eth0:0.
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 post m2s
10.1.0.89 
10.1.0.89 checking ssh for user reranger

Das Skript wird:

  • macht den aktuellen Standby-Server zum neuen Primärserver

  • alle in eranger-replication.cfg definierten Vorskripte ausführen 

  • die Dateisystemsynchronisation (syncfs-Dienst) auf dem alten Primärserver deaktivieren

  • beendet die Dienste eranger-server, eranger-Kollektor und eranger-report auf dem alten Primärserver 

  • eranger-server, eranger-Kollektor und eranger-report auf dem neuen Primärserver starten 

  • httpd und eranger-Agent starten, falls diese noch nicht auf dem primären und dem Standby-Server laufen

  • Melden Sie sich bei allen externen Kollektoren an und ändern Sie eranger-collector.cfg so, dass sie ihre Daten an den neuen Primärserver liefern (funktioniert nicht mit dem Parameter server<N>_address, der eine HTTP-Adresse festlegt).

  • Führen Sie alle Post-Skripte aus, wenn diese in eranger-replication.cfg definiert sind 

Aktivieren Sie die Replikation zwischen dem neuen und dem alten Primärserver

Dieser Schritt sollte nur durchgeführt werden, wenn der alte Primärserver noch verfügbar ist und eine Rückkehr zum alten System geplant ist.

Um eine laufende Replikation vom neuen Primärserver zum neuen Standby-Server zu erhalten, muss auf dem neuen Primärserver ein „createstandby“ durchgeführt werden.

/opt/eranger/bin/eranger-server-replication.pl createslave

Virtuelle IP

Das obige Beispiel wurde durchgeführt, während der alte Primärserver noch lief und verfügbar war. Nach einem erfolgreichen Wechsel müssen die Endbenutzer benachrichtigt werden, dass sie stattdessen die IP-Adresse oder den DNS-Namen des neuen Primärservers verwenden müssen.

Das Zuweisen einer virtuellen IP und deren Übertragung auf den aktiven Primärserver mit IP-Aliasing wird unterstützt (siehe Einrichten einer virtuellen IP-Adresse mit Pre- und Post-Skripten), und das entsprechende Pre- und Post-Skript vip-switch.sh wird im obigen Beispiel verwendet.

Zurückwechseln

Bevor Sie zum alten Primärserver zurückwechseln, müssen Sie einen Befehl „createslave“ auf dem neuen Primärserver ausführen.

Der aktuelle Primärserver muss nicht laufen, damit der Standby-Server übernehmen kann. Der Wechsel kann auch auf dem Standby-Server durchgeführt werden, wenn der aktuelle Primärserver ausgefallen (nicht verfügbar) ist. Bei der Wiederherstellung des alten Primärservers muss Vorsicht walten, da dieser weiterhin als Primärserver konfiguriert ist. Beenden Sie die Prozesse „eranger-server”, „eranger-Kollektor” und „eranger-Scheduler” auf dem alten Primärserver und führen Sie den Befehl „createslave” auf dem aktuell aktiven Primärserver aus. Um zu den Standardrollen zurückzukehren, führen Sie den Befehl „switch” erneut aus.

Es wird davon ausgegangen, dass der Wechsel nur vorübergehend ist und dass nach dem erneuten Hochfahren des Primärservers ein weiterer Wechsel zurück zum ursprünglichen Primärserver durchgeführt wird. Daher werden die IP-Adressen von Primär- und Standby-Server in der Datei eranger-replication.cfg bei einem Wechsel nicht geändert. Das Zurückschalten funktioniert mit dieser Konfiguration weiterhin, nur bei einem neuen createslave-Vorgang vom neuen Primärserver müssen die IP-Adressen in eranger-replication.cfg geändert werden.

SKOOR Engine-Status nach dem Switch

Nach dem Wechsel zeigt der Befehl eRanger.sh status auf dem neuen Primärserver folgende Ausgabe an:

# /opt/eranger/bin/eRanger.sh status
Running /opt/eranger/bin/eRanger.sh with root privileges...
eRanger Server installation...

Current eRanger Status:

Status postgresql:              started
Status postgresql replication:  started
Status postfix:                 started
Status rsyslog:                 started
Status snmptrapd:               stopped
Status http server:             started
Status eRanger Server:          started
Status eRanger Collector:       started
Status eRanger Report:          started
Status eRanger Agent:           started
Status eRanger Webservice:      started

und die folgende Ausgabe auf dem neuen Standby:

# /opt/eranger/bin/eRanger.sh status
Running /opt/eranger/bin/eRanger.sh with root privileges...
eRanger Server installation...

Current eRanger Status:

Status postgresql:              started
Status postgresql replication:  started
Status postfix:                 started
Status rsyslog:                 started
Status snmptrapd:               stopped
Status http server:             started
Status smsd:                    stopped
Status eRanger Server:          stopped (postgresql slave)
Status eRanger Collector:       stopped (postgresql slave)
Status eRanger Report:          stopped (postgresql slave)
Status eRanger Agent:           stopped
Status eRanger Webservice:      started

Nicht-interaktiver Modus

Der Switch kann im nicht-interaktiven Modus ausgeführt werden, indem die Option -f hinzugefügt wird. Verwenden Sie diese Option, wenn das Skript unbeaufsichtigt ausgeführt werden muss und wenn auf einem oder mehreren Kollektoren eine SKOOR-Version installiert ist, die nicht mit der auf dem Primär- und Standby-Server identisch ist. Im Folgenden wird die Ausgabe angezeigt, wenn der Wechsel mit -f auf dem aktuellen Standby-System, d. h. dem ursprünglichen Primärsystem, ausgeführt wird. Dieser zweite Wechselbefehl stellt die ursprünglichen Rollen von Primär- und Standby-System wieder her.

# /opt/eranger/bin/eranger-server-replication.pl -f switch
10.1.0.88 
10.1.0.88 checking ssh for user reranger


localhost (10.1.0.88) is slave, master 10.1.0.89 is up

will convert localhost to master
and 10.1.0.89 to slave
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 pre s2m
10.1.0.89 calling eranger-server-syncfs.sh 10.1.0.88
10.1.0.89 calling eranger-server-sync-collector-bin.pl
10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 pre m2s
10.1.0.89 OK> 10.1.0.90 removed from eth0
10.1.0.88 from slave to master
10.1.0.88 current master: 10.1.0.89
10.1.0.88 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 httpd already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-report (service eranger-report )..
10.1.0.88 done
10.1.0.88 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-server (service eranger-server )..
10.1.0.88 done
10.1.0.88 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ethd (service eranger-ethd )..
10.1.0.88 done
10.1.0.88 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.88 done
10.1.0.88 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-collector (service eranger-collector )..
10.1.0.88 delete /opt/eranger/collector/ringbuffer1.bin
10.1.0.88 done
10.1.0.88 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-agent already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.88 done
10.1.0.88 copied file to /var/lib/pgsql/data/
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived
10.1.0.88 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 httpd already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-report already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-server already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ethd (service eranger-ethd )..
10.1.0.88 done
10.1.0.88 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.88 done
10.1.0.88 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-collector already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-agent already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.88 done
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 post s2m
10.1.0.88 OK> 10.1.0.90 added to eth0.
10.1.0.88 OK> 10.1.0.90 configured in /etc/sysconfig/network-scripts/ifcfg-eth0:0.
10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 post m2s
10.1.0.88 
10.1.0.88 checking ssh for user reranger