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

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

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

Presenta monitoreo de Rehacer instancias (maestro y réplicas), admite la notificación de otros servicios/procesos o el 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 cae y proporciona configuración para que los clientes descubran el maestro actual que ofrece un servicio particular.

Este artículo demuestra cómo configurar Rehacer Para alta disponibilidad con Redis Sentinel en Centos 8, incluida la configuración de Sentinels, verificar el estado de configuración y probar un Centinela opague.

Requisito previo:

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

Configuración del entorno de prueba

Servidor maestro y sentinel1: 10.42.0.247 Redis Replica1 y Sentinel2: 10.42.0.21 Redis Replica2 y Sentinel3: 10.42.0.34 
Redis Sentinel Configuración Diagrama lógico

De acuerdo con la Redis Sentinel documentación, uno necesita al menos tres Centinela instancias para una implementación robusta. Considerando nuestra configuración arriba, si el maestro fallas, Centinelas2 y Sentinel3 estará de acuerdo sobre la falla y podrá autorizar una conmutación por error, lo que hace que las operaciones del cliente puedan continuar.

Paso 1: Inicio y habilitación del servicio Redis Sentinel

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

Para comenzar el Rehacer Servicio Sentinel y habilite que comience automáticamente en el arranque del sistema, use lo siguiente systemctl comandos. Además, confirme que está en funcionamiento revisando su estado (Haga esto en todos los nodos):

# SystemCTL Start Redis-Sentinel # SystemCTL Habilitar Redis-Sentinel # SystemCTL Status Redis-Sentinel 
Iniciar servicio Redis Sentinel

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

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

Primero, cree una copia de seguridad del archivo original y ábralo para editar.

# CP /ETC /REDIS-SENTINEL.conf /etc /redis-sentinel.confusión.Orig # VI /etc /Redis-Sentinel.confusión 

3. Por defecto, Sentinel escucha en el puerto 26379, Verifique esto en todas las instancias. Tenga en cuenta que debe dejar el unir Parámetro comentado (o establecido en 0.0.0.0).

Puerto 26379 
Establezca la interfaz de escucha de sentinel y el puerto

4. A continuación, dígale Centinela para monitorear nuestro maestro, y considerarlo en el "Objetivamente abajo"Indique solo si al menos 2 quórum centinelas están de acuerdo. Puedes reemplazar "mi maestro"Con un nombre personalizado.

#On Master Server y Sentinel1 Sentinel Monitor Mymaster 127.0.0.1 6379 2 #on réplica1 y Sentinel2 Sentinel Monitor Mymaster 10.42.0.247 6379 2 #on réplica1 y Sentinel3 Sentinel Monitor Mymaster 10.42.0.247 6379 2 
Establecer Redis Master para monitorear

Importante: La declaración del monitor de centinela debe colocarse antes del centinela autentete Declaración para evitar el error "No hay tal maestro con el nombre especificado."Al reiniciar el servicio Sentinel.

5. Si el Rehacer Master to Monitor tiene un conjunto de contraseñas (en nuestro caso que tiene el maestro), proporcione la contraseña para que la instancia de Sentinel pueda autenticarse con la instancia protegida.

 Sentinel Auth-Pass Mymaster [correo electrónico protegido] 
Establecer contraseña de autenticación maestra

6. Luego, establezca el número de milisegundos, el maestro (o cualquier réplica o centinela adjunto) debe ser inalcanzable para considerarlo en el "Subjetivamente" estado.

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

Sentinel Down-Millisegunds Mymaster 5000 
Establecer tiempo para el maestro

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

Tiempo de conmutación por error centinela Mymaster 180000 
Establecer falla en el tiempo de espera

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

Centinela paralela paralela mymaster 1 
Establecer un número de réplicas de sincronización paralela

Tenga en cuenta que los archivos de configuración en REDIS REPLICA1 y Sentinel2, y REDDIS REPLICA1 y Sentinel2 debería ser idéntico.

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

# SystemCTL reiniciar Redis-Sentinel 

10. Siguiente, abrir puerto 26379 en el firewall en todos los nodos para habilitar el Centinela instancias para comenzar a hablar, recibir conexiones del otro Centinela 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. En tono rimbombante, Centinela actualizará la configuración automáticamente con información adicional sobre réplicas. Puedes confirmar esto abriendo el Centinela Archivo de configuración para cada instancia y mírelo.

Por ejemplo, cuando mira el final del archivo de configuración del maestro, debería ver el Sentineles conocidos y replica conocida Declaraciones como se muestra en la siguiente captura de pantalla.

Configuración automática generada en maestro

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

Configuración generada automáticamente en réplica1 Configuración generada automáticamente en réplica2

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

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

12. Ahora revisa el Centinela estado/información sobre el maestro, utilizando el Información Sentinel Comando de la siguiente manera.

# Redis -Cli -P 26379 Información Sentinel 

Desde 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 mi maestro), utilizar el maestro centinela dominio.

# redis -cli -p 26379 Sentinel Master Mymaster 
Mostrar información detallada sobre Sentinel Master

14. Para mostrar información detallada sobre el esclavos y centinela, utilizar el esclavos centinela comando y centinela centinela comando respectivamente.

# Redis -Cli -P 26379 Sentinel Slaves Mymaster # Redis -Cli -P 26379 Centinela Sentinel Mymaster 

15. A continuación, pregunte la dirección del maestro por su nombre de las instancias de esclavos utilizando el Sentinel Get-Master-addr por nombre Comando de la siguiente manera.

La salida debe ser la dirección IP y el puerto de la instancia maestra actual:

# Redis-Cli -P 26379 Sentinel Get-Master-addr por nombre Mymaster 
Obtenga la dirección del maestro por su nombre en los esclavos

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

dieciséis. Finalmente, probemos la conmutación por error automática en nuestro Centinela configuración. Sobre el Redis/Sentinel maestro, haz el Rehacer maestro (ejecutando en el puerto 6379) dormir para 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 [correo electrónico protegido] 127.0.0.1: 6379> Duerme de depuración 60 # Redis-Cli -P 26379 Sentinel Get-Master-Addr-by-Name Mymaster # Redis-Cli -P 26379 Sentinel Get-Master-Addr-by Name Mymaster 

Desde la salida de la consulta, el nuevo maestro ahora es réplica/esclavo2 con dirección IP 10.42.0.34 Como se ve en la siguiente captura de pantalla.

Prueba de conmutación por error de Sentinel

Puede obtener más información de la documentación de Redis Sentinel. Pero si tiene alguna idea para compartir o consultas, el formulario de comentarios a continuación es su puerta de entrada a nosotros.

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