Interrupteur
Dans SKOOR 6.2, la sémantique de la commande « switch » a considérablement changé. Dans les versions précédentes, la commande « switch » inversait complètement les rôles du serveur principal et du serveur de secours. Depuis SKOOR 6.2, la commande « switch » effectue uniquement un basculement du serveur principal vers le serveur de secours. Pour rétablir une réplication fonctionnelle, il faut effectuer manuellement une commande « createslave » sur le nouveau serveur principal. Cela couvre beaucoup mieux les cas d'utilisation courants en fournissant des basculements beaucoup plus rapides.
Basculement
Pour ce faire, exécutez la commande suivante sur le serveur secondaire ou principal actuel. Si le serveur principal n'est plus accessible, la commande doit être exécutée sur le serveur secondaire :
# /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 >
Appuyez sur Entrée pour continuer. Le résultat devrait ressembler à ceci :
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
Le script va :
faire du serveur de secours actuel le nouveau serveur principal
exécuter tous les pré-scripts s'ils sont définis dans eranger-replication.cfg
désactiver la synchronisation du système de fichiers (service syncfs) sur l'ancien serveur principal
arrêter les services eranger-server, eranger-collecteur et eranger-report sur l'ancien primaire
démarrer les services eranger-server, eranger-collecteur et eranger-report sur le nouveau server principal
démarrer httpd et l'agent eranger s'ils ne sont pas déjà en cours d'exécution sur le serveur principal et le serveur de secours
connectez-vous à tous les collecteurs externes et modifiez eranger-collector.cfg afin qu'ils transmettent leurs données au nouveau serveur principal (ne fonctionne pas avec le paramètre server<N>_address défini sur une adresse http)
Exécutez les scripts postérieurs s'ils sont définis dans eranger-replication.cfg
Activez la réplication entre le nouveau et l'ancien serveur principal
Cette étape ne doit être effectuée que lorsque l'ancien serveur principal est encore disponible et qu'il est prévu de revenir à l'ancien système.
Pour obtenir une réplication fonctionnelle entre le nouveau serveur principal et le nouveau serveur de secours, il faut effectuer une opération d'createstandbyation sur le nouveau serveur principal.
/opt/eranger/bin/eranger-server-replication.pl createslave
IP virtuelle
L'exemple ci-dessus a été réalisé alors que l'ancien primaire était encore en cours d'exécution et disponible. Une fois la commutation réussie, les utilisateurs finaux devront être informés qu'ils doivent désormais utiliser l'adresse IP ou le nom DNS du nouveau primaire.
L'attribution d'une IP virtuelle et son transfert vers le primaire actif avec alias IP est pris en charge (voir Configuration d'une adresse IP virtuelle à l'aide de scripts pré et post) et le script pré et post vip-switch.sh correspondant est utilisé dans l'exemple ci-dessus.
Retour
Avant de revenir à l'ancien primaire, il faut effectuer un createslave sur le nouveau primaire.
Il n'est pas nécessaire que le primaire actuel soit en cours d'exécution pour que le secondaire puisse prendre le relais. Le basculement peut également être effectué sur le secondaire lorsque le primaire actuel est en panne (indisponible). Il faut être prudent lors de la remise en ligne de l'ancien primaire, car il est toujours configuré comme primaire. Arrêtez les processus eranger-server, eranger-collecteur et eranger-Scheduler sur l'ancien primaire et exécutez la commande createslave sur le primaire actif actuel. Pour revenir aux rôles par défaut, exécutez à nouveau la commande switch.
On suppose que le changement n'est que temporaire et qu'après avoir remis le primaire en service, un autre changement vers le primaire d'origine est effectué. Par conséquent, les adresses IP du primaire et du système de secours dans le fichier eranger-replication.cfg ne sont pas modifiées lors d'un changement. Le retour en arrière fonctionne toujours avec cette configuration, mais lors d'une nouvelle opération createslave à partir du nouveau primaire, les adresses IP doivent être modifiées dans eranger-replication.cfg.
État de l'SKOOR Engine après le changement
Après le changement, la commande eRanger.sh status affiche le résultat suivant sur le nouveau primaire :
# /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
et le résultat suivant sur le nouveau serveur de secours :
# /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
Mode non interactif
Le basculement peut être effectué en mode non interactif en ajoutant l'option -f. Utilisez cette option si le script doit s'exécuter sans surveillance et si l'un ou plusieurs des collecteurs ont une version SKOOR installée qui n'est pas identique à celle du primaire et du secondaire. Voici le résultat obtenu lors de l'exécution du changement à l'aide de -f, sur le serveur de secours actuel, c'est-à-dire le serveur principal d'origine. Cette deuxième commande de changement rétablit les rôles d'origine du serveur principal et du serveur de secours.
# /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