Schalter

In SKOOR 6.2 hat sich die Semantik des switch erheblich geändert. In früheren Versionen hat der switch Befehl die Rollen von Master und Slave komplett vertauscht. Seit SKOOR 6.2 führt der Switch-Befehl nur noch ein Failover vom Master zum Slave durch. Um wieder eine funktionierende Replikation zu erhalten, muss auf dem neuen Master manuell ein createslave werden. Dies deckt die üblichen Anwendungsfälle viel besser ab, indem es viel schnellere Failover bietet.

Ausfallsicherung

Dies kann erreicht werden, indem der folgende Befehl auf dem aktuellen Slave oder Master ausgeführt wird. Wenn der Master nicht mehr erreichbar ist, muss es auf dem Slave 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 Slave zum neuen Master machen

  • Führen Sie alle Pre-Skripts aus, wenn sie in eranger-replication.cfg definiert sind

  • Deaktivieren Sie die Dateisystemsynchronisierung (syncfs-Dienst) auf dem alten Master

  • Stoppen Sie die Dienste eranger- Server , eranger- Kollektor und eranger-report auf dem alten Master

  • Starten Sie die Dienste eranger- Server , eranger- Kollektor und eranger-report auf dem neuen Master

  • starten Sie httpd und eranger- Agent , falls dieser nicht bereits auf Master und Slave läuft

  • Melden Sie sich bei allen externen Kollektoren an und ändern Sie Kollektor so, dass diese ihre Daten an den neuen Master Server

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

Replikation zwischen neuem und altem Master aktivieren

Dieser Schritt sollte nur durchgeführt werden, wenn der alte Master noch verfügbar ist und geplant ist, wieder auf das alte System zurückzuwechseln.

Um eine laufende Replikation vom neuen Master auf den neuen Slave zu erhalten, muss auf dem neuen Master ein createslave .

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

Virtuelle IP

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

Das Zuweisen einer virtuellen IP und deren Weiterleitung an den aktiven Master mit IP-Aliasing wird unterstützt (siehe Virtuelle IP-Adresse mit Pre- und Post-Skripten einrichten ) und das entsprechende Pre- und Post-Skript vip-switch.sh wird oben verwendet Beispiel.

Zurückschalten

Bevor auf den alten Master zurückgeschaltet wird, muss auf dem neuen Master ein createslave .

Der aktuelle Master muss nicht laufen, damit der Slave übernehmen kann. Der Schalter kann auch auf dem Slave ausgegeben werden, wenn der aktuelle Master defekt (nicht verfügbar) ist. Wenn Sie den alten Master wieder online bringen, müssen Sie vorsichtig sein, da er immer noch als Master konfiguriert ist. Stoppen Sie die Prozesse eranger- Server , eranger- Kollektor und eranger-scheduler auf dem alten Master und setzen Sie den createslave-Befehl auf dem aktuell aktiven Master ab. Um zu den Standardrollen zurückzukehren, geben Sie erneut den Befehl switch ein.

Es wird angenommen, dass die Umschaltung nur temporär ist und dass nach dem erneuten Hochfahren des Master eine weitere Umschaltung zurück zum ursprünglichen Master durchgeführt wird. Daher werden die IP-Adressen von Master und Slave in der eranger-replication.cfg bei einem Wechsel nicht vertauscht. Das Zurückschalten funktioniert auch bei diesem Setup, nur bei einer neuen createslave-Operation vom neuen Master müssen die IP-Adressen in der eranger-replication.cfg umgestellt werden.

SKOOR Engine nach dem Umschalten

Nach dem Wechsel zeigt der Statusbefehl eRanger.sh die folgende Ausgabe auf dem neuen Master :

# /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 Slave :

# /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 in einem nicht interaktiven Modus ausgeführt werden, indem die Option -f hinzugefügt wird. Verwenden Sie dies, wenn das Skript unbeaufsichtigt ausgeführt werden muss und falls einer oder einige der Kollektoren eine SKOOR-Version installiert haben, die nicht mit der auf Master und Slave identisch ist. Das Folgende zeigt die Ausgabe beim Ausführen des Schalters mit -f auf dem aktuellen Slave , dh dem ursprünglichen Master . Dieser zweite Schaltbefehl stellt die ursprünglichen Rollen von Master und Slave 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