Schalter

In SKOOR 6.2 hat sich die Semantik des Befehls switch erheblich geändert. In früheren Versionen vertauschte der Befehl switch die Rollen von Primär und Standby vollständig. Seit SKOOR 6.2 führt der Switch-Befehl nur noch ein Failover vom Primär- zum Standby-System durch. Um wieder eine funktionierende Replikation zu erhalten, muss man eine createslave manuell auf dem neuen Primärserver ausführen. Dies deckt die üblichen Anwendungsfälle viel besser ab, da es viel schnellere Failover ermöglicht.

Ausfallsicherung

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 er 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:

  • den aktuellen Standby zum neuen Primary machen

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

  • die Dateisystem-Synchronisation (syncfs-Dienst) auf dem alten primären Rechner deaktivieren

  • stoppen Sie die Dienste eranger-server, eranger-collector und eranger-report auf der alten Primärstation

  • Starten Sie die Dienste eranger-server, eranger-collector und eranger-report auf der neuen Primäranlage

  • Starten Sie httpd und eranger-agent, falls sie nicht bereits auf der Primär- und der Standby-Verbindung laufen

  • melden Sie sich bei allen externen Kollektoren an und ändern Sie die Datei eranger-collector.cfg so, dass sie ihre Daten an den neuen primären Server liefern (funktioniert nicht, wenn der Parameter server<n>_address eine http-Adresse angibt)

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

Aktivieren Sie die Replikation zwischen neuem und altem Primärserver

Dieser Schritt sollte nur dann durchgeführt werden, wenn die alte Primäranlage noch verfügbar ist und geplant ist, wieder auf das alte System zurück zu wechseln.

Um eine laufende Replikation von der neuen Primary auf die neue Standby zu bekommen, muss man eine createstandby auf der neuen Primary durchführen.

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

Virtuelle IP

Das obige Beispiel wurde durchgeführt, während das alte Primärsystem noch lief und verfügbar war. Nach einem erfolgreichen Wechsel müssen die Endbenutzer darüber informiert werden, dass sie stattdessen die IP-Adresse oder den DNS-Namen des neuen primären Systems verwenden sollen.

Die Zuweisung einer virtuellen IP und deren Verschiebung auf die aktive primäre Adresse mit IP-Aliasing wird unterstützt (siehe Einrichtung 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ückschalten

Vor dem Zurückschalten auf die alte Primäranlage muss eine createslave auf der neuen Primäranlage ausgeführt werden.

Der aktuelle Primärserver muss nicht laufen, damit der Standby-Server die Aufgabe übernehmen kann. Der Wechsel kann auch auf dem Standby-System erfolgen, wenn das aktuelle primäre System ausgefallen (nicht verfügbar) ist. Vorsicht ist geboten, wenn Sie den alten Primärserver wieder in Betrieb nehmen, da er noch als Primärserver konfiguriert ist. Stoppen Sie die Prozesse eranger-server, eranger-collector und eranger-scheduler auf der alten Primärstation und geben Sie den Befehl createslave auf der aktuellen aktiven Primärstation aus. Um zu den Standardrollen zurückzukehren, geben Sie erneut den Befehl switch ein.

Es wird davon ausgegangen, dass die Umschaltung nur vorübergehend ist und dass nach der Wiederinbetriebnahme der Primärstation eine weitere Umschaltung zurück zur ursprünglichen Primärstation erfolgt. Daher werden die IP-Adressen von Primary und Standby in der eranger-replication.cfg bei einem Wechsel nicht vertauscht. Das Zurückschalten funktioniert auch mit dieser Einstellung, nur bei einer neuen Create-Slave-Operation von der neuen Primary müssen die IP-Adressen in eranger-replication.cfg vertauscht werden.

SKOOR Engine Status nach dem Wechsel

Nach dem Wechsel zeigt der eRanger.sh-Befehl status die folgende Ausgabe auf der neuen Primärstation 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 Wechsel kann in einem 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 einigen der Kollektoren eine andere SKOOR-Version installiert ist als auf dem Primär- und dem Standby-System. Die folgende Abbildung zeigt die Ausgabe, wenn der Switch mit -f auf dem aktuellen Standby, d. h. dem ursprünglichen Primärserver, ausgeführt wird. Dieser zweite Switch-Befehl stellt die ursprünglichen Rollen von Primär- und Standby-Server 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