GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar Redis para alta disponibilidad con Sentinel en CentOS 8 – Parte 2

Redis proporciona alta disponibilidad a través de Redis Sentinel Sistema distribuido. Centinela ayuda a monitorear Redis instancias, detectar fallas y cambiará roles automáticamente, lo que habilitará un Redis despliegue para resistir cualquier tipo de fallas.

Cuenta con monitoreo de Redis instancias (maestro y réplicas), admite la notificación de otros servicios/procesos o al administrador del sistema a través de un script, conmutación por error automática para promover una réplica a un maestro cuando el maestro deja de funcionar y proporciona configuración para que los clientes descubran el maestro actual que ofrece un servicio en particular .

Este artículo muestra cómo configurar Redis para alta disponibilidad con Redis Sentinel en CentOS 8 , incluida la configuración de centinelas, la comprobación del estado de configuración y la prueba de un Sentinel conmutación por error.

Requisito previo:

  1. Cómo configurar la replicación de Redis (con el modo de clúster deshabilitado) en CentOS 8:parte 1

Configuración del entorno de prueba

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

Diagrama lógico de configuración de Redis Sentinel

Según el Redis Sentinel documentación, se necesitan al menos tres Sentinel instancias para un despliegue robusto. Teniendo en cuenta nuestra configuración anterior, si el maestro falla, Centinelas2 y Centinela3 estará de acuerdo con la falla y podrá autorizar una conmutación por error, lo que permitirá que las operaciones del cliente continúen.

Paso 1:iniciar y habilitar el servicio Redis Sentinel

1. En CentOS 8 , el Centinela de Redis El servicio se instala junto con Redis servidor (que ya hicimos en la configuración de replicación de Redis).

Para iniciar Redis servicio centinela y habilitarlo para que se inicie automáticamente al arrancar el sistema, use el siguiente systemctl comandos Además, confirme que está funcionando comprobando su estado (haga esto en todos los nodos):

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

Inicie el servicio Redis Sentinel

Paso 2:Configuración de Redis Sentinel en todos los nodos de Redis

2. En esta sección explicamos cómo configurar Sentinel en todos nuestros nodos. El Centinela El servicio tiene un formato de configuración similar al Redis servidor. Para configurarlo, use el /etc/redis-sentinel.conf archivo de configuración autodocumentado.

Primero, crea una copia de seguridad del archivo original y ábrelo para editarlo.

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

3. De forma predeterminada, Sentinel escucha en el puerto 26379. , compruebe esto en todas las instancias. Tenga en cuenta que debe dejar el bind parámetro comentado (o establecido en 0.0.0.0 ).

port 26379

Configurar la interfaz y el puerto de escucha de Sentinel

4. Luego, dile a Sentinel para monitorear a nuestro maestro , y considerarlo en el “Objectively Down ” indicar solo si al menos 2 centinelas de quórum están de acuerdo. Puede reemplazar "mymaster ” con un nombre personalizado.

#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

Establezca Redis Master en Monitor

Importante :La declaración del monitor centinela DEBE colocarse antes del auth-pass centinela declaración para evitar el error "No existe tal maestro con el nombre especificado. ” al reiniciar el servicio centinela.

5. Si Redis el maestro a monitorear tiene una contraseña configurada (en nuestro caso, el maestro la tiene), proporcione la contraseña para que la instancia de Sentinel pueda autenticarse con la instancia protegida.

 
sentinel auth-pass mymaster [email protected]

Establecer contraseña de autenticación maestra

6. Luego establezca la cantidad de milisegundos que el maestro (o cualquier réplica adjunta o centinela) debe estar inalcanzable para considerarlo en "Subjetivamente abajo ” estado.

La siguiente configuración significa que se considerará que el maestro falla tan pronto como no recibamos ninguna respuesta de nuestros ping dentro de los 5 segundos (1 segundo equivale a 1000 milisegundos).

sentinel down-after-milliseconds mymaster 5000

Establecer tiempo de inactividad para maestro

7. A continuación, establezca el tiempo de espera de conmutación por error en milisegundos, lo que define muchas cosas (lea la documentación del parámetro en el archivo de configuración).

sentinel failover-timeout mymaster 180000

Establecer el tiempo de espera de falla

8. Luego establezca la cantidad de réplicas que se pueden reconfigurar para usar el nuevo maestro después de una conmutación por error al mismo tiempo. Dado que tenemos dos réplicas, estableceremos una réplica ya que la otra será promovida al nuevo maestro.

sentinel parallel-syncs mymaster 1

Establecer el número de réplicas sincronizadas en paralelo

Tenga en cuenta que los archivos de configuración en Redis Replica1 y Centinela2 y Reddis Réplica1 y Centinela2 debe ser idéntico.

9. A continuación, reinicie el Sentinel servicios en todos los nodos para aplicar los cambios recientes.

# systemctl restart redis-sentinel

10. A continuación, abra el puerto 26379 en el firewall en todos los nodos para habilitar el Sentinel instancias para comenzar a hablar, recibir conexiones del otro Sentinel instancias, usando el firewall-cmd.

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

11. Todas las réplicas se descubrirán automáticamente. Es importante destacar que Centinela actualizará la configuración automáticamente con información adicional sobre las réplicas. Puede confirmar esto abriendo el Sentinel archivo de configuración para cada instancia y revíselo.

Por ejemplo, cuando mira al final del archivo de configuración del maestro, debería ver los centinelas conocidos y réplica conocida declaraciones como se muestra en la siguiente captura de pantalla.

Configuración generada automáticamente en maestro

Debería ser el mismo caso en replica1 y réplica2 .

Configuración generada automáticamente en Réplica1

Configuración generada automáticamente en Replica2

Tenga en cuenta que Sentinel la configuración también se reescribe/actualiza cada vez que una réplica asciende al estado maestro durante una conmutación por error y cada vez que se descubre un nuevo Sentinel en la configuración.

Paso 3:Compruebe el estado de configuración de Redis Sentinel

12. Ahora revisa el Centinela estado/información sobre el maestro, utilizando el info sentinel comando de la siguiente manera.

# redis-cli -p 26379 info sentinel

De la salida del comando como se ve en la siguiente captura de pantalla, tenemos dos réplicas/esclavos y tres centinelas.

Verifique la información de Sentinel en el maestro

13. Para mostrar información detallada sobre el maestro (llamado mimaestro ), utilice el maestro centinela comando.

# redis-cli -p 26379 sentinel master mymaster

Mostrar información detallada sobre Sentinel Master

14. Para mostrar información detallada sobre los esclavos y centinelas , usa los esclavos centinela mando y centinelas centinelas comando respectivamente.

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

15. A continuación, solicite la dirección del maestro por nombre de las instancias esclavas utilizando el sentinel get-master-addr-by-name comando de la siguiente manera.

El resultado debe ser la dirección IP y el puerto de la instancia maestra actual:

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

Obtenga la dirección del maestro por nombre en los esclavos

Paso 4:pruebe la conmutación por error de Sentinel

16. Finalmente, probemos la conmutación por error automática en nuestro Sentinel configuración. En Redis/Sentinel maestro, haz el Redis master (ejecutándose en el puerto 6379 ) para dormir durante 60 segundos. Luego consulte la dirección del maestro actual en las réplicas/esclavos de la siguiente manera.

# 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

Desde el resultado de la consulta, el nuevo maestro ahora es replica/slave2 con dirección IP 10.42.0.34 como se ve en la siguiente captura de pantalla.

Probar la conmutación por error de Redis Sentinel

Puede obtener más información en la documentación de Redis Sentinel. Pero si tiene alguna idea que compartir o alguna consulta, el siguiente formulario de comentarios es su puerta de entrada.

En la siguiente y última parte de esta serie, veremos cómo configurar un clúster de Redis en CentOS 8. Será un artículo independiente de los dos primeros.

Compartir es cuidar…
Compartir en FacebookCompartir en TwitterCompartir en LinkedinCompartir en Reddit
Cent OS
  1. Cómo configurar un servidor FTP con VSFTPD en CentOS 7

  2. Cómo configurar un servidor FTP con VSFTPD en CentOS 8

  3. Cómo configurar Apache Subversion con HTTPS Letsencrypt en CentOS 7

  4. Cómo configurar la alta disponibilidad de Nginx con Pacemaker y Corosync en CentOS 7

  5. Cómo configurar Pure-FTPD con MySQL en CentOS y RedHat

Cómo instalar Redis en CentOS 7

Cómo configurar la replicación de Redis (con el modo de clúster deshabilitado) en CentOS 8 - Parte 1

Cómo configurar un clúster de Redis en CentOS 8 - Parte 3

Cómo configurar la alta disponibilidad para Namenode - Parte 5

Cómo instalar y configurar Hive con alta disponibilidad:parte 7

Cómo configurar la alta disponibilidad para Resource Manager - Parte 6