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