[6] Redis – Sentinel

29 stycznia 2022 Wyłączono przez Adam [zicherka] Nogły

Skonfiguruj Redis Sentinel, aby zapewnić wysoką dostępność serwerów Redis. Ten przykład jest oparty na środowisku, jak poniżej. Jeśli węzeł podstawowy nie działa, rola Master zostanie przełączona w tryb awaryjny do innego węzła repliki.

[1] Skonfiguruj usługi replikacji Redis na każdym węźle. Wskazuję, że należy pamiętać aby w ustawieniach replikacji, ustawić to samo hasło uwierzytelniające na wszystkich węzłach.

[2] Dla Redis w wersji/opcji HA z Sentinel’em jeżeli SELinux jest włączony i działa dodaj następujące reguły na wszystkich węzłach (Primar/Replica).

[root@vlsr02 ~]# semanage fcontext -a -t redis_conf_t /etc/redis.conf
[root@vlsr02 ~]# restorecon /etc/redis.conf

[3] Skonfiguruj serwer Sentinel.

[root@vlsr01 ~]# dnf module install redis:6

[root@vlsr01 ~]# mcedit /etc/redis-sentinel.conf
#linia 26: zmień (start jako demon)
daemonize yes
#linia 84: zmień
# [sentinel monitor (jakakolwiek nazwa) (IP hosta Primary) (port hosta Primary) (Quorum)]
# Quorum -> uruchom przełączanie awaryjne, gdy określona serwer Sentinel widzi, że Primary nie działa
sentinel monitor mymaster 192.168.100.102 6379 1
#linia 103: hasło dla hosta/węzła Primary
sentinel auth-pass mymaster TajneHasło
#linia 125: czas, przez jaki serwer Sentinel uważa że węzeł Primary jest wyłączony (domyślnie 30 sekund)
sentinel down-after-milliseconds mymaster 30000
#linia 141: liczba replik do zmiany podczas pracy awaryjnej
sentinel parallel-syncs mymaster 1

[root@vlsr01 ~]# systemctl enable --now redis-sentinel

[4] W porządku, zweryfikuj status na serwerze Sentinel w następujący sposób. Ponadto zatrzymaj Redis ręcznie w węźle podstawowym i upewnij się, że przełączanie awaryjne podstawowego/repliki przebiega normalnie.

[root@vlsr01 ~]# redis-cli -p 26379
#pokaż węzeł Primary dla [mymaster]
127.0.0.1:26379> sentinel get-master-addr-by-name mymaster
1) "192.168.100.102"
2) "6379"

#pokaż dokładne informacje o węźle Primary dla [mymaster]
127.0.0.1:26379> sentinel master mymaster
 1) "name"
 2) "mymaster"
 3) "ip"
 4) "192.168.100.102"
 5) "port"
 6) "6379"
 7) "runid"
 8) "12d69723bc1368ffc76c7e7ee453c17402c73432"
 9) "flags"
10) "master"
. . . . .

#pokaż węzeł/węzły Replika dla [mymaster]
127.0.0.1:26379> sentinel slaves mymaster
1)  1) "name"
    2) "192.168.100.104:6379"
    3) "ip"
    4) "192.168.100.104"
    5) "port"
    6) "6379"
    7) "runid"
    8) "9e8001c3f8623b9922d848f44026734e8c66cfe1"
    9) "flags"
   10) "slave"
. . . . .
2)  1) "name"
    2) "192.168.100.103:6379"
    3) "ip"
    4) "192.168.100.103"
    5) "port"
    6) "6379"
    7) "runid"
    8) "6e3ec5ea5cb8c23534072d87cd463a0e02b9da3c"
    9) "flags"
   10) "slave"
. . . . .