Modo Sentinel Redis para Alta Disponibilidade em Linux

Modo Sentinel Redis para Alta Disponibilidade em Linux

O Modo Sentinel é a solução recomendada oficialmente pelo Redis para garantir alta disponibilidade (HA). Ele monitora os nós mestre e escravos do Redis, realizando uma transferência de falhas automática quando o nó mestre falha, assegurando a continuidade do serviço.

Antes de compreender o modo Sentinel, é essencial entender o conceito de replicação mestre-escravo.

Replicação Mestre-Escravo

Um nó mestre pode ter múltiplos nós escravos, mas cada nó escravo só pode ter um nó mestre. A replicação de dados é unidirectional, ocorrendo apenas do nó mestre para os nós escravos.

Configurando um Nó Escravo

Vamos demonstrar como configurar um nó escravo utilizando o arquivo de configuração, geralmente localizado em /etc/redis.conf.

  1. Copie o arquivo de configuração para o diretório home:
cp /etc/redis.conf ~/redis.conf
  1. Crie um novo arquivo de configuração para o nó escravo:
cp ~/redis.conf ~/redis-6380.conf
  1. Modifique o arquivo redis-6380.conf nas seguintes seções:
  • Porta: Altere para a porta do nó escravo (ex: 6380)
  • PID File: Atualize o nome do arquivo PID para incluir a nova porta
  • Nome do Banco de Dados: Modifique dbfilename para dump-6380.rdb
  • Configuração de Replicação: Adicione a diretiva de replicação apontando para o nó mestre (porta 6379)
  1. Inicie o novo nó escravo:
redis-server ~/redis-6380.conf
  1. Conecte-se ao novo nó escravo com um cliente Redis:
redis-cli -p 6380
  1. Vreifique as informações de replicação:
INFO replication

A saída deve confirmar que este é um nó escravo com o nó mestre na porta 6379.

Configurando o Sentinel

Compreendida a configuração de nós escravos, vamos configurar uma arquitetura com um mestre e dois escravos (mestre: 6379, escravos: 6380, 6381) para demonstrar o modo Sentinel.

  1. Crie um arquivo de configuração para o Sentinel:
cat > ~/sentinel.conf << EOF
sentinel monitor principal 127.0.0.1 6379 1
EOF
  1. Inicie o nó Sentinel:
redis-sentinel ~/sentinel.conf

O Sentinel agora estará rodando na porta 26379, monitorando os nós mestre (6379) e escravos (6380, 6381).

Transferência de Falhas (Failover)

Após ativar o modo Sentinel, se o nó mestre falhar, ocorrerá automaticamente uma transferência de falha para eleger um novo mestre.

Vamos simular a falha do nó mestre:

redis-cli -p 6379 SHUTDOWN

Aguarde alguns segundos. O sistema detectará a falha e promoverá um dos escravos (6380 ou 6381) para o papel de mestre. Verifique os status dos nós:

redis-cli -p 6380 INFO replication
redis-cli -p 6381 INFO replication

A saída mostrará que um dos escravos foi promovido a mestre e o outro agora aponta para este novo mestre.

Vantagens e Desvantagens do Modo Sentinel

Vantagens:

  • Alta Disponibilidade: Transferência automática de falhas com interrupção mínima do serviço
  • Monitoramento Abrangente: Verificação contínua do estado de todos os nós
  • Configuração Automática: Descoberta automática do mestre pelo cliente
  • Suporte Oficial: Solução recomendada pela equipe do Redis

Desvantagens:

  • Complexidade de Configuração: Requer múltiplos nós Sentinel
  • Overhead de Performance: Comunicação e eleição entre nós Sentinel
  • Risco de Split-Brain: Particionamento de rede pode causar múltipos mestres
  • Escalabilidade Limitada: Não suporta divisão automática de dados (sharding)

O modo Sentinel é uma solução madura para alta disponibilidade do Redis, adequada para cenários com muitas operações de leitura, poucas de escrita e volume de dados moderado. Para necessidades de escala horizontal e grandes volumes de dados, considere o modo Redis Cluster.

Recomendações de Implantação:

  • Utilize pelo menos 3 nós Sentinel, distribuídos em máquinas físicas distintas
  • Mantenha um número ímpar de nós Sentinel (3, 5, 7)
  • Realize testes periódicos do processo de transferência de falhas
  • Monitore a saúde dos nós Sentinel e Redis

Tags: Redis sentinel Alta Disponibilidade Linux Master-Slave

Publicado em 7-2 16:29