Como configurar um cluster Redis no CentOS 8 - Parte 3

Como configurar um cluster Redis no CentOS 8 - Parte 3

Cluster Redis é um embutido Redis Recurso que suporta sharding automático, replicação e alta disponibilidade que foi implementada anteriormente usando Sentinelas. Ele foi projetado para dois propósitos principais: um é dividir automaticamente seu conjunto de dados em várias instâncias e, em segundo lugar, fornecer algum grau de disponibilidade durante as partições, continuar as operações quando alguns casos (especialmente mestres) falharem ou não conseguirem se comunicar com a maioria dos nós no cluster.

No entanto, o cluster para para operar no caso de falhas maiores (e.g quando a maioria das instâncias mestres não está disponível). Além disso, se um mestre e escravo falharem ao mesmo tempo, o cluster não poderá continuar as operações normais (embora a solução alternativa seja adicionar mais nós ou criar uma assimetria no cluster, para alterar automaticamente o layout do cluster).

De acordo com Redis Documentação do cluster, o “cluster mínimo”Isso funciona como o esperado, é necessário conter pelo menos 3 nós mestre. Mas a configuração mais adequada para alta disponibilidade deve ter pelo menos 6 nós com três mestres e três escravos, cada mestre com um escravo.

Importante: Redis Cluster também tem algumas limitações que são falta de apoio para Natal ambientes também aqueles em que os endereços IP ou as portas TCP são remapeadas, por exemplo Docker. Além disso, nem toda biblioteca de clientes suporta.

Este artigo mostra como configurar um Cluster Redis (com Modo de cluster desativado) em CENTOS 8. Inclui como instalar Redis, configurar os nós do cluster, criar um cluster e testar o failover do cluster.

Observação: Para este guia, usaremos instâncias Redis frescas/vazias para executar o modo de cluster. O modo de cluster não funcionará com algumas configurações feitas nos dois primeiros guias de nossa série Redis, particularmente não funciona quando a réplica do parâmetro está sendo usada.

Pré -requisitos:

  1. Servidores com instalação do CentOS 8

Configuração do ambiente de teste

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 
Diagrama lógico de cluster Redis

Nossa configuração possui 3 nós mestre de leitura/gravação e 3 nós de réplicas somente leitura, cada mestre com uma réplica, então três fragmentos contêm todos os dados do cluster em cada nó. Uma aplicação API ou CLI O cliente pode escrever apenas para os nós mestres, mas lê em qualquer nó no cluster.

Etapa 1: Instalando Redis em todos os nós

1. Faça login em todas as instâncias via Ssh, Em seguida, execute o seguinte comando para instalar o Redis módulo usando o gerenciador de pacotes DNF, conforme mostrado.

# módulo dnf install redis 

2. Em seguida, inicie o Redis Serviço, permita que ele inicie automaticamente na inicialização do sistema e verifique seu status para verificar se está em execução (verifique o serviço em todas as 6 instâncias):

# SystemCtl START Redis # SystemCtl Ativar Redis # Systemctl Status Redis 

Etapa 2: Configurando instâncias Redis em todos os nós

3. Esta seção descreve como configurar os nós do cluster Redis. Lembre -se de realizar as configurações aqui em todos os nós.

Use o /etc/redis.conf arquivo de configuração para configurar o Redis servidor. Como prática recomendada, crie um backup do arquivo original antes de editá-lo usando um editor de texto da linha de comando de sua escolha.

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

4. Em seguida, encontre os seguintes parâmetros de configuração e edite seus valores como mostrado. O vincular Parâmetro Define a interface do servidor Redis ouvirá, defina seu valor para a instância LAN IP. Remova o 127.0.0.1 Porque percebemos que deixá -lo diminui o processo de criação de cluster, particularmente o estágio de ingressar no cluster.

vincular 10.42.0.247 

Em seguida, defina o modo protegido para não Para permitir conexões de outras instâncias no cluster.

modo protegido no 

O parâmetro da porta define a porta que o servidor Redis ouvirá as conexões, o padrão é 6379. Esta é a porta de dados para se comunicar com os clientes.

Porta 6379 
Defina a interface e porta de escuta Redis

5. O próximo conjunto de parâmetros permitirá o modo de cluster e definirá alguns de seus recursos úteis. O habilitado para cluster parâmetro, quando definido como sim, ativa o modo de cluster.

habilitado para cluster sim 

Em seguida, o arquivo de cluster-config Parâmetro Define o nome do arquivo de configuração de cluster de um nó de cluster (e.g nós-6379.conf). O arquivo é criado no diretório de trabalho (o padrão é /var/lib/redis definido usando o dir parâmetro) e não é editável pelo usuário.

NÓS-6379 CLUTER-CONFIG-FILE-6379.conf 

A próxima opção de cluster útil é Tempo de nó de cluster, É usado para definir a quantidade máxima de tempo em milissegundos, uma instância pode estar indisponível para que seja considerada em um estado de falha. Um valor de 15000 é equivalente a 15 segundos.

tempo de nó de cluster 15000 
Definir tempo limite do nó de cluster

6. Também precisamos permitir a persistência de Redis no disco. Podemos usar um dos modos de persistência, que é o Anexar apenas o arquivo (AOF): ele registra (no arquivo apendonly.AOF criado no diretório de trabalho) todas as operações de gravação recebidas com sucesso pelo servidor. Os dados serão reproduzidos durante a inicialização do servidor para reconstruir o conjunto de dados original.

Para ativá -lo, defina o apendonly parâmetro para sim.

apendonly sim 
Defina opções de persistência

7. Depois de fazer todas as mudanças, reinicie o Redis serviço em todos os nós para aplicar as mudanças recentes.

# SystemCtl Reinicie Redis 

8. Neste ponto, todo nó de cluster agora deve ter um EU IA. Você pode verificar isso no arquivo de log localizado em /var/log/redis/redis.registro.

# gato/var/log/redis/redis.registro 
Verifique o arquivo de log do nó de cluster

9. Em seguida, porta aberta 6397 e 16379 Em todas as instâncias. O mais tarde porta é usado para o barramento de cluster (a Nó para nó canal de comunicação usando um protocolo binário). Este é um requisito básico para as conexões Redis Cluster TCP.

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

Etapa 3: Criando o cluster Redis

10. Para criar o cluster, use o Linha de comando Redis-Cli cliente da seguinte maneira. O --Criar cluster Ativa a criação de cluster e --Replicas de cluster 1 significa criar uma réplica por mestre.

Para nossa configuração, que tem 6 nós, teremos 3 mestres e 3 escravos.

Observe que os 6 primeiros nós serão considerados Mestres (M) e os próximos três serão considerados escravos (S). O primeiro escravo eu.e 10.42.0.200: 6379 replica o primeiro mestre eu.e 10.42.0.247: 6379, O segundo escravo replica o segundo mestre, nessa ordem.

O comando a seguir é formatado de uma maneira que o resultado representará nossa configuração lógica acima.

# Redis-cli-CLUTER CRIE 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-REPLICAS 1 CLUTER 
Crie cluster Redis

11. Quando a criação do cluster for bem -sucedida, execute o seguinte comando em qualquer host (especifique seu endereço IP usando o -h sinalizador) para listar todos os nós do cluster.

# redis -cli -h 10.42.0.247 -P 6379 nós do cluster 

Você deve ver todos os nós do cluster, com os escravos indicando seus mestres, como mostrado na captura de tela a seguir.

Verifique todos os nós do cluster em qualquer nó

Os diferentes campos estão nesta ordem: ID do nó, endereço IP: porta, bandeiras, último ping enviado, último pong recebeu, época da configuração, estado de link, slots (para mestres).

Etapa 4: Testando failover de cluster redis

12. Nesta seção, demonstraremos como testar um failover de cluster. Primeiro, vamos tomar nota dos mestres.

# redis -cli -h 10.42.0.247 -P 6379 nós do cluster | Grep Master 
Lista Redis Cluster Masters

Além disso, tome nota dos escravos de Redis.

# redis -cli -h 10.42.0.247 -P 6379 nós do cluster | escravo grep 
Liste todos os escravos de cluster redis

13. Em seguida, vamos parar o serviço Redis em um dos nós mestres e.g 10.42.0.197 e verifique todos os nós mestre no cluster.

# SystemCtl Stop Redis # Redis -Cli -H 10.42.0.247 -P 6379 nós do cluster | Grep Master 

Na captura de tela a seguir, você pode ver que o nó 10.42.0.197: 6367 está no estado de falha e seu escravo 10.42.0.21: 6379 foi promovido a status mestre.

Verifique o status de failover de cluster

14. Agora vamos começar o Redis serviço mais uma vez no nó fracassado e verifique todos os mestres no cluster.

# SystemCtl Start Redis # Redis -Cli -H 10.42.0.247 -P 6379 nós do cluster | Grep Master 
Verifique todos os Redis Cluster Master Status

Além disso, verifique os escravos do cluster para confirmar que o mestre fracassado agora é um escravo.

# redis -cli -h 10.42.0.247 -P 6379 nós do cluster | escravo grep 
Verifique todos os escravos do cluster Redis

Etapa 5: Testando a replicação de dados no cluster Redis

15. Esta última seção explica como verificar a replicação de dados do cluster. Criaremos uma chave e valor em um dos mestres e depois tentaremos lê -la de todos os nós do cluster da seguinte maneira. Use o -c Alterne para ativar o suporte ao cluster no utilitário Redis-Cli e acessar dados no modo de cluster.

# redis -cli -c -h 10.42.0.247 -P 6379 Defina o nome 'Tecmint.com ' # redis -cli -c -h 10.42.0.247 -P 6379 Get Nome # Redis -Cli -C -h 10.42.0.21 -P 6379 Get Nome # Redis -Cli -C -h 10.42.0.132 -P 6379 Get Nome # Redis -Cli -C -h 10.42.0.200 -P 6379 Get Nome # Redis -Cli -C -h 10.42.0.197 -P 6379 Get Nome # Redis -Cli -C -h 10.42.0.34 -P 6379 Obtenha o nome 
Verifique a replicação de dados do cluster Redis

A linha inferior é o Cluster Redis é a maneira preferida de obter um afrontamento automático, replicação e alta disponibilidade. Existem muitos outros parâmetros de configuração bem documentados no resto do /etc/redis.conf Arquivo, você pode encontrar mais informações na documentação oficial: Redis Cluster Tutorial e Redis Cluster Specification.

Isso nos leva ao final da série Tutorial Redis de três partes. O formulário de feedback abaixo pode ser usado para postar perguntas ou comentários.