GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come configurare Redis per un'elevata disponibilità con Sentinel in CentOS 8 – Parte 2

Redis fornisce alta disponibilità tramite Redis Sentinel sistema distribuito. Sentinella aiuta a monitorare Redis istanze, rileverà gli errori e farà i cambi di ruolo automaticamente abilitando così un Redis schieramento per resistere a qualsiasi tipo di guasto.

È dotato di monitoraggio di Redis istanze (master e repliche), supporta la notifica di altri servizi/processi o l'amministratore di sistema tramite uno script, failover automatico per promuovere una replica a master quando il master si interrompe e fornisce la configurazione per consentire ai client di scoprire il master corrente che offre un servizio particolare .

Questo articolo mostra come configurare Redis per un'elevata disponibilità con Redis Sentinel in CentOS 8 , inclusa la configurazione di sentinelle, il controllo dello stato di configurazione e il test di una Sentinella failover.

Prerequisito:

  1. Come impostare la replica Redis (con la modalità cluster disabilitata) in CentOS 8 – Parte 1

Impostazione ambiente di prova

Master Server and Sentinel1: 10.42.0.247
Redis Replica1 and Sentinel2: 10.42.0.21
Redis Replica2 and Sentinel3: 10.42.0.34

Schema logico di installazione di Redis Sentinel

Secondo il Redis Sentinel documentazione, sono necessarie almeno tre Sentinel istanze per una distribuzione robusta. Considerando la nostra configurazione sopra, se il master fallisce, Sentinelle2 e Sentinel3 concorderà sull'errore e sarà in grado di autorizzare un failover, consentendo alle operazioni del client di continuare.

Fase 1:avvio e abilitazione del servizio Redis Sentinel

1. Su CentOS 8 , la Sentinella Redis il servizio è installato insieme a Redis server (che abbiamo già fatto nella configurazione della replica Redis).

Per avviare il Redis sentinel e consentirne l'avvio automatico all'avvio del sistema, utilizzare il seguente systemctl comandi. Inoltre, verifica che sia attivo e funzionante controllandone lo stato (fallo su tutti i nodi):

# systemctl start redis-sentinel
# systemctl enable redis-sentinel
# systemctl status redis-sentinel

Avvia il servizio Redis Sentinel

Fase 2:configurazione di Redis Sentinel su tutti i nodi Redis

2. In questa sezione spieghiamo come configurare Sentinel su tutti i nostri nodi. La Sentinella il servizio ha un formato di configurazione simile a quello di Redis server. Per configurarlo, usa /etc/redis-sentinel.conf file di configurazione autodocumentato.

Innanzitutto, crea un backup del file originale e aprilo per la modifica.

# cp /etc/redis-sentinel.conf /etc/redis-sentinel.conf.orig
# vi /etc/redis-sentinel.conf

3. Per impostazione predefinita, Sentinel è in ascolto sulla porta 26379 , verificalo su tutte le istanze. Tieni presente che devi lasciare il vincolo parametro commentato (o impostato su 0.0.0.0 ).

port 26379

Imposta l'interfaccia e la porta di ascolto di Sentinel

4. Quindi, dillo a Sentinella per monitorare il nostro master , e di considerarlo nella sezione "Obiettivamente verso il basso ” dichiarare solo se almeno 2 sentinelle del quorum sono d'accordo. Puoi sostituire "mio padrone ” con un nome personalizzato.

#On Master Server and Sentinel1
sentinel monitor mymaster 127.0.0.1 6379 2

#On Replica1 and Sentinel2
sentinel monitor mymaster 10.42.0.247 6379 2

#On Replica1 and Sentinel3
sentinel monitor mymaster 10.42.0.247 6379 2

Imposta Redis Master su Monitor

Importante :La dichiarazione di monitoraggio della sentinella DEVE essere posta prima della sentinella auth-pass dichiarazione per evitare l'errore "Nessun master con il nome specificato. ” al riavvio del servizio sentinella.

5. Se il Redis il master da monitorare ha una password impostata (nel nostro caso il master ha), fornisci la password in modo che l'istanza di Sentinel possa autenticarsi con l'istanza protetta.

 
sentinel auth-pass mymaster [email protected]

Imposta la password di autenticazione principale

6. Quindi imposta il numero di millisecondi che il master (o qualsiasi replica o sentinella allegata) dovrebbe essere irraggiungibile per considerarlo nella sezione "Soggettivamente giù ” stato.

La seguente configurazione significa che il master verrà considerato in errore non appena non riceviamo alcuna risposta dai nostri ping entro 5 secondi (1 secondo equivale a 1000 millisecondi).

sentinel down-after-milliseconds mymaster 5000

Imposta il tempo di inattività per il Master

7. Quindi, imposta il timeout di failover in millisecondi che definisce molte cose (leggi la documentazione del parametro nel file di configurazione).

sentinel failover-timeout mymaster 180000

Imposta il timeout di failover

8. Quindi impostare il numero di repliche che possono essere riconfigurate per utilizzare contemporaneamente il nuovo master dopo un failover. Poiché abbiamo due repliche, imposteremo una replica poiché l'altra verrà promossa al nuovo master.

sentinel parallel-syncs mymaster 1

Imposta il numero di repliche di sincronizzazione parallela

Tieni presente che i file di configurazione su Redis Replica1 e Sentinel2 e Replica Reddis1 e Sentinel2 dovrebbe essere identico.

9. Quindi, riavvia Sentinel servizi su tutti i nodi per applicare le modifiche recenti.

# systemctl restart redis-sentinel

10. Quindi, apri la porta 26379 nel firewall su tutti i nodi per abilitare Sentinel istanze per iniziare a parlare, ricevere connessioni dall'altra Sentinella istanze, utilizzando firewall-cmd.

# firewall-cmd --zone=public --permanent --add-port=26379/tcp
# firewall-cmd --reload

11. Tutte le repliche verranno rilevate automaticamente. È importante sottolineare che Sentinella aggiornerà automaticamente la configurazione con ulteriori informazioni sulle repliche. Puoi confermarlo aprendo il Sentinel file di configurazione per ogni istanza ed esaminarlo.

Ad esempio, quando guardi alla fine del file di configurazione del master, dovresti vedere le sentinelle conosciute e replica nota dichiarazioni come mostrato nella schermata seguente.

Configurazione generata automaticamente in Master

Dovrebbe essere lo stesso su replica1 e replica2 .

Configurazione generata automaticamente in Replica1

Configurazione generata automaticamente in Replica2

Tieni presente che la Sentinella la configurazione viene anche riscritta/aggiornata ogni volta che una replica viene promossa allo stato master durante un failover e ogni volta che viene rilevata una nuova Sentinel nella configurazione.

Fase 3:verifica lo stato di configurazione di Redis Sentinel

12. Ora controlla la Sentinella stato/informazioni sul master, utilizzando le info sentinel comando come segue.

# redis-cli -p 26379 info sentinel

Dall'output del comando, come mostrato nello screenshot seguente, abbiamo due repliche/slave e tre sentinelle.

Controlla le informazioni sulla sentinella su Master

13. Per mostrare informazioni dettagliate sul master (chiamato mio padrone ), usa il padrone sentinella comando.

# redis-cli -p 26379 sentinel master mymaster

Mostra informazioni dettagliate su Sentinel Master

14. Mostra informazioni dettagliate sugli slave e sentinelle , usa gli schiavi sentinella comando e sentinelle sentinella comando rispettivamente.

# redis-cli -p 26379 sentinel slaves mymaster
# redis-cli -p 26379 sentinel sentinels mymaster

15. Quindi, chiedi l'indirizzo del master per nome dalle istanze slave utilizzando il sentinel get-master-addr-by-name comando come segue.

L'output dovrebbe essere l'indirizzo IP e la porta dell'istanza master corrente:

# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

Ottieni l'indirizzo del Master per nome sugli Slave

Fase 4:verifica il failover di Sentinel

16. Infine, testiamo il failover automatico nel nostro Sentinel impostare. Su Redis/Sentinel maestro, crea il Redis master (in esecuzione sulla porta 6379 ) per dormire per 60 secondi. Quindi interrogare l'indirizzo del master corrente sulle repliche/slave come segue.

# redis-cli -p 6379
127.0.0.1:6379> AUTH [email protected]
127.0.0.1:6379>  debug sleep 60
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

Dall'output della query, il nuovo master è ora replica/slave2 con indirizzo IP 10.42.0.34 come si vede nella schermata seguente.

Testare il failover di Redis Sentinel

Puoi ottenere maggiori informazioni dalla documentazione di Redis Sentinel. Ma se hai pensieri da condividere o domande, il modulo di feedback qui sotto è la tua porta d'accesso a noi.

Nella prossima e ultima parte di questa serie, vedremo come impostare un Redis Cluster in CentOS 8. Sarà un articolo indipendente dai primi due.

Condividere è prendersi cura...
Condividi su FacebookCondividi su TwitterCondividi su LinkedinCondividi su Reddit
Cent OS
  1. Come configurare il server FTP con VSFTPD su CentOS 7

  2. Come configurare il server FTP con VSFTPD su CentOS 8

  3. Come configurare Apache Subversion con HTTPS Letsencrypt su CentOS 7

  4. Come configurare Nginx High Availability con Pacemaker e Corosync su CentOS 7

  5. Come configurare Pure-FTPD con MySQL su CentOS e RedHat

Come installare Redis su CentOS 7

Come impostare la replica Redis (con la modalità cluster disabilitata) in CentOS 8 – Parte 1

Come configurare un cluster Redis in CentOS 8 – Parte 3

Come impostare la disponibilità elevata per Namenode – Parte 5

Come installare e configurare Hive con disponibilità elevata – Parte 7

Come impostare la disponibilità elevata per Resource Manager – Parte 6