Como configurar Redis para alta disponibilidade com o Sentinel no CentOS 8 - Parte 2

Como configurar Redis para alta disponibilidade com o Sentinel no CentOS 8 - Parte 2

Redis fornece alta disponibilidade via Redis Sentinel sistema distribuído. Sentinela ajuda a monitorar Redis Instâncias, detectar falhas e fará com que as funções sejam alternadas, permitindo assim, permitindo um Redis implantação para resistir a qualquer tipo de falha.

Possui monitoramento de Redis Instâncias (mestre e réplicas), suporta a notificação de outros serviços/processos ou o administrador do sistema por meio de um script, failover automático para promover uma réplica para um mestre quando o mestre desce e fornece configuração para os clientes descobrirem o mestre atual que oferece um serviço específico.

Este artigo demonstra como configurar Redis Para alta disponibilidade com Redis Sentinel em CENTOS 8, incluindo a configuração dos sentinels, verificando o status de configuração e testando um Sentinela failover.

Pré -requisito:

  1. Como configurar a replicação Redis (com o modo de cluster desativado) no CentOS 8 - Parte 1

Configuração do ambiente de teste

Servidor mestre e sentinel11: 10.42.0.247 REPLICA REDIS1 E SENTINEL2: 10.42.0.21 REPLICA REDIS e Sentinel3: 10.42.0.34 
Diagrama lógico de configuração do Redis Sentinel

De acordo com Redis Sentinel Documentação, é preciso pelo menos três Sentinela Instâncias para uma implantação robusta. Considerando a nossa configuração acima, se o mestre falha, Sentinels2 e Sentinel3 concordará com o fracasso e poderá autorizar um failover, tornando as operações do cliente capazes de continuar.

Etapa 1: Iniciar e ativar o serviço Redis Sentinel

1. Sobre CENTOS 8, o Redis Sentinel O serviço está instalado ao lado do Redis Servidor (que já fizemos na configuração de replicação Redis).

Para começar o Redis Serviço Sentinel e permite que ele inicie automaticamente na inicialização do sistema, use o seguinte SystemCtl comandos. Além disso, confirme que está em funcionamento verificando seu status (Faça isso em todos os nós):

# SystemCtl Start Redis-Sentinel # SystemCtl Ativar Redis-Sentinel # Systemctl Status Redis-Sentinel 
Inicie o serviço Redis Sentinel

Etapa 2: Configurando o Redis Sentinel em todos os nós Redis

2. Nesta seção, explicamos como configurar Sentinela Em todos os nossos nós. O Sentinela o serviço tem um formato de configuração semelhante ao Redis servidor. Para configurá -lo, use o /etc/Redis-Sentinel.conf arquivo de configuração autocumentado.

Primeiro, crie um backup do arquivo original e abra -o para edição.

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

3. Por padrão, Sentinel escuta na porta 26379, Verifique isso em todas as instâncias. Observe que você tem que deixar o vincular Parâmetro comentado (ou definido como 0.0.0.0).

Porta 26379 
Defina a interface e porta de escuta Sentinel

4. Em seguida, diga Sentinela para monitorar nosso mestre, e considerá -lo no “Objetivamente para baixoDeclare apenas se pelo menos 2 sentinelas de quorum concordar. Você pode substituir “meu mestre”Com um nome personalizado.

#On Master Server e Sentinel1 Sentinel Monitor Mymaster 127.0.0.1 6379 2 #ON REPLICA1 E SENTINEL2 Monitor Sentinel Mymaster 10.42.0.247 6379 2 #on réplica1 e Sentinel3 Sentinel Monitor Mymaster 10.42.0.247 6379 2 
Defina o Redis Master para monitorar

Importante: A declaração do monitor Sentinel deve ser colocada antes do Sentinel AUTH-PASS declaração para evitar o erro “Nenhum mestre com o nome especificado.”Ao reiniciar o serviço Sentinel.

5. Se o Redis Master to Monitor tem um conjunto de senha (no nosso caso o mestre), forneça a senha para que a instância do Sentinel possa autenticar com a instância protegida.

 Sentinel Auth-Pass Mymaster [Email Protected] 
Definir senha de autenticação mestre

6. Em seguida, defina o número de milissegundos, o mestre (ou qualquer réplica ou sentinela anexada) deve ser inacessível para considerá -lo no “Subjetivamente para baixo" estado.

A configuração a seguir significa que o mestre será considerado falhando assim que não recebermos nenhuma resposta de nossos pings dentro de 5 segundos (1 segundo é equivalente a 1000 milissegundos).

Sentinel Down-After-milissegunds Mymaster 5000 
Defina o tempo para o mestre

7. Em seguida, defina o tempo limite de failover em milissegundos que definem muitas coisas (leia a documentação do parâmetro no arquivo de configuração).

Sentinel Failover-timeout Mymaster 180000 
Definir falha durante o tempo limite

8. Em seguida, defina o número de réplicas que podem ser reconfiguradas para usar o novo mestre após um failover ao mesmo tempo. Como temos duas réplicas, definiremos uma réplica, pois a outra será promovida ao novo mestre.

Sentinel Parallel-Syncs Mymaster 1 
Defina o número de réplicas de sincronização paralela

Observe que os arquivos de configuração em REPLICA REDIS1 e Sentinel2, e REPLICA REDDIS1 e Sentinel2 deve ser idêntico.

9. Em seguida, reinicie o Sentinela Serviços em todos os nós para aplicar as mudanças recentes.

# SystemCtl reinicie o Redis-Sentinel 

10. Em seguida, porta aberta 26379 no firewall em todos os nós para ativar o Sentinela Instâncias para começar a falar, receber conexões do outro Sentinela Instâncias, usando o Firewall-CMD.

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

11. Todas as réplicas serão descobertas automaticamente. Importante, Sentinela Atualizará a configuração automaticamente com informações adicionais sobre réplicas. Você pode confirmar isso abrindo o Sentinela arquivo de configuração para cada instância e examine -o.

Por exemplo, quando você olha para o final do arquivo de configuração do mestre, você deve ver o Sentinelas conhecidas e Replica conhecida declarações como mostrado na captura de tela a seguir.

Config gerado automaticamente no mestre

Deve ser o mesmo caso Replica1 e Replica2.

Config gerado automaticamente na réplica1 Config gerado automaticamente na réplica2

Observe que o Sentinela A configuração também é reescrita/atualizada toda vez que uma réplica é promovida ao status mestre durante um failover e toda vez que um novo Sentinel é descoberto na configuração.

Etapa 3: verifique o status de configuração do Redis Sentinel

12. Agora verifique o Sentinela status/informações sobre o mestre, usando o Info Sentinel comando da seguinte forma.

# Redis -cli -P 26379 Informações Sentinel 

A partir da saída do comando, como visto na captura de tela a seguir, temos duas réplicas/escravos e três sentinelas.

Verifique as informações do Sentinel no mestre

13. Para mostrar informações detalhadas sobre o mestre (chamado meu mestre), use o Sentinel Master comando.

# Redis -cli -P 26379 Sentinel Master Mymaster 
Mostre informações detalhadas sobre o Sentinel Master

14. Para mostrar informações detalhadas sobre o escravos e sentinelas, use o Escravos Sentinel comando e Sentinel Sentinels comando respectivamente.

# Redis -cli -P 26379 Sentinel Slaves Mymaster # Redis -Cli -P 26379 Sentinel Sentinels Mymaster 

15. Em seguida, pergunte o endereço do mestre pelo nome das instâncias de escravos usando o Sentinel Get-mestres-addr-by-name comando da seguinte forma.

A saída deve ser o endereço IP e a porta da instância principal atual:

# Redis-cli -P 26379 Sentinel Get-mestres-addr-by-name Mymaster 
Obtenha o endereço do mestre pelo nome em escravos

Etapa 4: teste o failover do Sentinel

16. Finalmente, vamos testar o failover automático em nosso Sentinela configurar. No Redis/Sentinel mestre, faça o Redis Mestre (executando na porta 6379) para dormir para 60 segundos. Em seguida, consulte o endereço do mestre atual nas réplicas/escravos da seguinte forma.

# Redis -cli -p 6379 127.0.0.1: 6379> Auth [email protegido] 127.0.0.1: 6379> Debug Sleep 60 # Redis-cli -P 26379 Sentinel Get-mestres-addr-by-name MyMaster # Redis-cli -p 26379 Sentinel Get-meter-add-by-name Mymaster 

Da saída para a consulta, o novo mestre está agora Réplica/Slave2 com endereço IP 10.42.0.34 Como visto na captura de tela seguinte.

Teste o failover Redis Sentinel

Você pode obter mais informações da documentação Redis Sentinel. Mas se você tem algum pensamento para compartilhar ou consultas, o formulário de feedback abaixo é o seu gateway para nós.

Na próxima e na última parte desta série, veremos como configurar um cluster Redis no CentOS 8. Será um artigo independente dos dois primeiros.