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

Come configurare un cluster Redis in CentOS 8 – Parte 3

Gruppo Redis è un Redis integrato funzionalità che supporta lo sharding automatico, la replica e l'elevata disponibilità che era stata precedentemente implementata utilizzando Sentinelle . È progettato per due scopi principali:uno è dividere automaticamente il set di dati tra più istanze e il secondo per fornire un certo grado di disponibilità durante le partizioni, per continuare le operazioni quando alcune istanze (soprattutto master) falliscono o non sono in grado di comunicare con la maggior parte dei nodi nel cluster.

Tuttavia, il cluster smette di funzionare in caso di guasti maggiori (ad es. quando la maggior parte delle istanze master non è disponibile). Inoltre, se un master e uno slave si guastano contemporaneamente, il cluster non può continuare le normali operazioni (sebbene la soluzione alternativa sia aggiungere più nodi o creare un'asimmetria nel cluster, per modificare automaticamente il layout del cluster).

Secondo il Redis documentazione del cluster, il "cluster minimo ” che funziona come previsto richiede di contenere almeno 3 nodi master. Ma la configurazione più adatta per l'alta disponibilità dovrebbe avere almeno 6 nodi con tre master e tre slave, ogni master con uno slave.

Importante :Redis Cluster ha anche alcune limitazioni che sono la mancanza di supporto per NATted ambienti così come quelli in cui gli indirizzi IP o le porte TCP vengono rimappati, ad esempio in Docker . Inoltre, non tutte le librerie client lo supportano.

Questo articolo mostra come configurare un cluster Redis (con Modalità cluster disabilitata ) in CentOS 8 . Include come installare Redis, configurare i nodi del cluster, creare un cluster e testare il failover del cluster.

Nota :per questa guida, utilizzeremo istanze Redis fresche/vuote per eseguire la modalità cluster. La modalità cluster non funziona con alcune configurazioni eseguite nelle prime due guide della nostra serie Redis, in particolare non funziona quando viene utilizzata la replica del parametro.

Prerequisiti:

  1. Server con installazione CentOS 8

Impostazione ambiente di prova

Redis Master1: 10.42.0.247
Redis Master2: 10.42.0.197
Redis Master3: 10.42.0.132

Redis Slave1: 10.42.0.200
Redis Slave2: 10.42.0.21
Redis Slave3: 10.42.0.34

Diagramma logico del cluster Redis

La nostra configurazione ha 3 nodi master di lettura/scrittura e 3 nodi di replica di sola lettura, ogni master ha una replica, quindi tre shard contengono tutti i dati del cluster in ogni nodo. Un'applicazione API o CLI il client può scrivere solo sui nodi master ma leggere da qualsiasi nodo nel cluster.

Passaggio 1:installazione di Redis su tutti i nodi

1. Accedi a tutte le istanze tramite SSH , quindi esegui il comando seguente per installare Redis modulo utilizzando il gestore di pacchetti DNF come mostrato.

# dnf module install redis

2. Quindi, avvia il Redis servizio, abilitalo per l'avvio automatico all'avvio del sistema e controlla il suo stato per verificare che sia in esecuzione (verifica il servizio su tutte e 6 le istanze):

# systemctl start redis
# systemctl enable redis
# systemctl status redis

Passaggio 2:configurazione delle istanze Redis su tutti i nodi

3. Questa sezione descrive come configurare i nodi del cluster Redis. Ricordarsi di eseguire le configurazioni qui su tutti i nodi.

Usa /etc/redis.conf file di configurazione per configurare il Redis server. Come pratica consigliata, crea un backup del file originale prima di modificarlo utilizzando un editor di testo da riga di comando a tua scelta.

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

4. Quindi, trova i seguenti parametri di configurazione e modifica i loro valori come mostrato. Il vincolo parametro imposta l'interfaccia del server Redis in ascolto, imposta il suo valore sull'IP LAN dell'istanza. Rimuovi il 127.0.0.1 perché ci siamo resi conto che lasciarlo lì rallenta il processo di creazione del cluster, in particolare la fase di adesione al cluster.

bind  10.42.0.247

Quindi imposta la modalità protetta a no per consentire le connessioni dalle altre istanze nel cluster.

protected-mode no

Il parametro port definisce la porta su cui il server Redis ascolterà le connessioni, l'impostazione predefinita è 6379 . Questa è la porta dati per comunicare con i clienti.

port 6379

Imposta Redis Listen Interface e Port

5. Il prossimo set di parametri abiliterà la modalità cluster e imposterà alcune delle sue utili funzionalità. abilitati per i cluster parametro, se impostato su yes , attiva la modalità cluster.

cluster-enabled yes

Successivamente, il file-config-cluster parametro imposta il nome del file di configurazione del cluster di un nodo del cluster (ad es. nodes-6379.conf ). Il file viene creato nella directory di lavoro (l'impostazione predefinita è /var/lib/redis definito utilizzando la dir parametro) e non è modificabile dall'utente.

cluster-config-file nodes-6379.conf

La prossima opzione utile del cluster è cluster-node-timeout , viene utilizzato per impostare la quantità massima di tempo in millisecondi in cui un'istanza può non essere disponibile per essere considerata in uno stato di errore. Un valore di 15000 equivale a 15 secondi.

cluster-node-timeout 15000

Imposta il timeout del nodo del cluster

6. Dobbiamo anche abilitare la persistenza Redis su disco. Possiamo utilizzare una delle modalità di persistenza, ovvero Aggiungi solo file (AOF ):registra (nel file appendonly.aof creato nella directory di lavoro) ogni operazione di scrittura ricevuta con successo dal server. I dati verranno riprodotti durante l'avvio del server per ricostruire il set di dati originale.

Per abilitarlo, imposta l'appendonly parametro su yes .

appendonly yes

Imposta le opzioni di persistenza

7. Dopo aver apportato tutte le modifiche, riavvia il Redis servizio su tutti i nodi per applicare le modifiche recenti.

# systemctl restart redis

8. A questo punto, ogni nodo del cluster dovrebbe ora avere un ID . Puoi verificarlo nel file di registro che si trova in /var/log/redis/redis.log .

# cat /var/log/redis/redis.log

Controlla il file di registro del nodo del cluster

9. Quindi, apri la porta 6397 e 16379 su tutte le istanze. La successiva porta viene utilizzato per il bus del cluster (un nodo-nodo canale di comunicazione utilizzando un protocollo binario). Questo è un requisito di base per le connessioni TCP del cluster Redis.

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

Fase 3:creazione del cluster Redis

10. Per creare il cluster, utilizza la riga di comando redis-cli cliente come segue. Il --cluster create abilita la creazione di cluster e --cluster-replicas 1 significa creare una replica per master.

Per la nostra configurazione che ha 6 nodi, avremo 3 master e 3 slave.

Tieni presente che i primi 6 nodi saranno considerati master (M) e i prossimi tre saranno considerati schiavi (S) . Il primo schiavo cioè 10.42.0.200:6379 replica il primo master cioè 10.42.0.247:6379 , il secondo slave replica il secondo master, in quest'ordine.

Il comando seguente è formattato in modo tale che il risultato rappresenti la nostra configurazione logica sopra.

# redis-cli --cluster create 10.42.0.247:6379 10.42.0.197:6379 10.42.0.132:6379 10.42.0.200:6379 10.42.0.21:6379 10.42.0.34:6379 --cluster-replicas 1

Crea cluster Redis

11. Una volta che la creazione del cluster è riuscita, esegui il seguente comando su qualsiasi host (specifica il suo indirizzo IP usando il -h flag) per elencare tutti i nodi del cluster.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes

Dovresti essere in grado di vedere tutti i nodi del cluster, con gli slave che indicano i loro master, come mostrato nello screenshot seguente.

Controlla tutti i nodi del cluster su qualsiasi nodo

I diversi campi sono in questo ordine:ID nodo, indirizzo IP:porta, flag, ultimo ping inviato, ultimo pong ricevuto, epoca di configurazione, stato del collegamento, slot (per i master).

Fase 4:verifica del failover del cluster Redis

12. In questa sezione dimostreremo come testare un failover del cluster. Per prima cosa, prendiamo nota dei maestri.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Elenca i Redis Cluster Master

Inoltre, prendi nota degli schiavi Redis.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

Elenca tutti gli slave del cluster Redis

13. Quindi, interrompiamo il servizio Redis su uno dei nodi master, ad esempio 10.42.0.197 e controlla tutti i nodi master nel cluster.

# systemctl stop redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master

Dallo screenshot seguente, puoi vedere che il nodo 10.42.0.197:6367 è in stato di errore e il suo slave 10.42.0.21:6379 è stato promosso allo stato di maestro.

Controlla lo stato di failover del cluster

14. Ora iniziamo il Redis servizio ancora una volta sul nodo guasto e controlla tutti i master nel cluster.

# systemctl start redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Controlla lo stato principale di tutti i cluster Redis

Inoltre, controlla gli slave del cluster per confermare che il master guasto sia ora uno slave.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

Seleziona Tutti gli slave del cluster Redis

Fase 5:test della replica dei dati nel cluster Redis

15. Quest'ultima sezione spiega come verificare la replica dei dati del cluster. Creeremo una chiave e un valore su uno dei master, quindi proveremo a leggerlo da tutti i nodi del cluster come segue. Usa il -c passare per abilitare il supporto del cluster nell'utilità redis-cli e accedere ai dati in modalità cluster.

# redis-cli -c -h 10.42.0.247 -p 6379 set name 'TecMint.com'
# redis-cli -c -h 10.42.0.247 -p 6379 get name
# redis-cli -c -h 10.42.0.21 -p 6379 get name
# redis-cli -c -h 10.42.0.132 -p 6379 get name
# redis-cli -c -h 10.42.0.200 -p 6379 get name
# redis-cli -c -h 10.42.0.197 -p 6379 get name
# redis-cli -c -h 10.42.0.34 -p 6379 get name

Verifica la replica dei dati del cluster Redis

La linea di fondo è il Cluster Redis è il modo migliore per ottenere partizionamento orizzontale, replica e disponibilità elevata automatiche. Ci sono molti altri parametri di configurazione ben documentati nel resto di /etc/redis.conf file, puoi trovare maggiori informazioni nella documentazione ufficiale:tutorial del cluster Redis e specifica del cluster Redis.

Questo ci porta alla fine della serie di tutorial Redis in tre parti. Il modulo di feedback sottostante può essere utilizzato per inviare domande o commenti.

Condividere è prendersi cura...
Condividi su FacebookCondividi su TwitterCondividi su LinkedinCondividi su Reddit
Cent OS
  1. Come installare e configurare Redis su CentOS 7

  2. Come installare e configurare Redis su CentOS 8

  3. Come installare il server Redis su CentOS 8 / RHEL 8

  4. Come configurare le chiavi SSH su CentOS 8

  5. Come installare Redis su CentOS 7

Come installare Redis su CentOS 7

Come installare phpRedisAdmin su CentOS 7

Come installare PhpRedmin su CentOS 7

Come installare Redis su CentOS 8

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

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