Jak skonfigurować klaster Redis w Centos 8 - Część 3

Jak skonfigurować klaster Redis w Centos 8 - Część 3

Klaster Redis jest wbudowany Redis funkcja obsługująca automatyczne odchylenie, replikację i wysoka dostępność, która została wcześniej zaimplementowana za pomocą Sentinels. Został zaprojektowany do dwóch głównych celów: jeden polega na automatycznym podzieleniu zestawu danych na wiele instancji, a po drugie w celu zapewnienia pewnego stopnia dostępności podczas partycji, kontynuowania operacji, gdy niektóre instancje (szczególnie mistrzowie) zawodzą lub nie są w stanie komunikować się z większością węzły w klastrze.

Jednak klaster zatrzymuje się do działania w przypadku większych niepowodzeń (e.g, gdy większość instancji głównych jest niedostępna). Ponadto, jeśli mistrz i niewolnik awansują jednocześnie, klaster nie może kontynuować normalnych operacji (chociaż obejściem jest dodanie większej liczby węzłów lub utworzenie asymetrii w klastrze, aby automatycznie zmieniać układ klastra).

Według Redis dokumentacja klastra, „minimalny klaster”To działa zgodnie z oczekiwaniami, wymaga zawierania co najmniej 3 węzłów głównych. Ale najbardziej odpowiednia konfiguracja dla wysokiej dostępności powinna mieć co najmniej 6 węzłów z trzema mistrzami i trzema niewolnikami, każdy mistrz ma niewolnika.

Ważny: Klaster Redis ma również pewne ograniczenia, które brakuje wsparcia Natted Środowiska, a także te, w których adresy IP lub porty TCP są na przykład wymienione Doker. Dodatkowo nie każda biblioteka klientów to obsługuje.

Ten artykuł pokazuje, jak skonfigurować Klaster Redis (z Wyłączony tryb klastra) W Centos 8. Obejmuje sposób instalacji redis, konfiguracji węzłów klastrów, utworzenia klastra i przetestowania awaryjnego klastra.

Notatka: W tym przewodniku użyjemy świeżych/pustych instancji Redis, aby uruchomić tryb klastra. Tryb klastra nie będzie działał z niektórymi konfiguracjami wykonanymi w pierwszych dwóch przewodnikach naszej serii Redis, szczególnie nie działa, gdy używana jest replika parametru.

Wymagania wstępne:

  1. Serwery z instalacją Centos 8

Konfiguracja środowiska testowego

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 
Klaster Redis Logiczny schemat

Nasza konfiguracja ma 3 węzły główne odczytu/zapisu i 3 węzły repliki tylko do odczytu, każdy master ma jedną replikę, więc trzy odłamki zawierają wszystkie dane klastra w każdym węźle. Aplikacja API Lub Cli Klient może pisać tylko do węzłów głównych, ale odczytać z dowolnego węzła w klastrze.

Krok 1: Instalowanie Redis na wszystkich węzłach

1. Zaloguj się do wszystkich instancji przez Ssh, Następnie uruchom następujące polecenie, aby zainstalować Redis moduł za pomocą menedżera pakietów DNF, jak pokazano.

# moduł DNF Zainstaluj Redis 

2. Następnie zacznij Redis Usługa, włącz go automatycznie uruchamianie w rozruchu systemowym i sprawdzanie jego statusu, aby sprawdzić, czy jest uruchomiony (sprawdź usługę we wszystkich 6 wystąpieniach):

# Systemctl Start Redis # Systemctl Włącz Redis # Systemctl Status Redis 

Krok 2: Konfigurowanie instancji Redis na wszystkich węzłach

3. W tej sekcji opisano, jak skonfigurować węzły klastra Redis. Pamiętaj, aby wykonać konfiguracje tutaj na wszystkich węzłach.

Użyj /etc/redis.conf plik konfiguracyjny do skonfigurowania Redis serwer. Jako zalecaną praktykę, utwórz kopię zapasową oryginalnego pliku przed edycją za pomocą wybranego edytora tekstu wiersza polecenia.

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

4. Następnie znajdź następujące parametry konfiguracyjne i edytuj ich wartości, jak pokazano. wiązać Parametr ustawia interfejs serwera Redis, ustawiaj jego wartość na instancję LAN IP. Usunąć 127.0.0.1 Ponieważ zdaliśmy sobie sprawę, że pozostawienie go tam zwalnia proces tworzenia klastrów, szczególnie etap dołączenia do klastra.

wiązać 10.42.0.247 

Następnie ustaw tryb obronny Do NIE Aby umożliwić połączenia z innych instancji w klastrze.

NR w trybie chronionym 

Parametr portu definiuje port, na którym serwer Redis będzie słuchać połączeń, domyślnie jest 6379. To jest port danych do komunikowania się z klientami.

Port 6379 
Ustaw interfejs słuchania Redis i port

5. Następny zestaw parametrów włączy tryb klastra i ustawi niektóre z jego przydatnych funkcji. z obsługą klastra parametr, po ustawieniu Tak, Aktywuje tryb klastra.

Tak 

Następnie Klaster-config-plik Parametr ustawia nazwę pliku konfiguracyjnego klastra węzła klastra (e.G Węzły-6379.conf). Plik jest tworzony w katalogu roboczym (domyślnie jest /var/lib/redis zdefiniowane za pomocą reż parametr) i nie jest edytowalny przez użytkownika.

Klaster-config-file węzły-6379.conf 

Następną przydatną opcją klastra jest Timeout węzłów klastra, Służy do ustawiania maksymalnego czasu w milisekundach instancja może być niedostępna, aby można go było rozpatrywać w stanie awarii. Wartość 15000 jest równa 15 sekundy.

Klaster-Node Timeout 15000 
Ustaw limit czasu węzła klastra

6. Musimy również umożliwić wytrwałość Redis na dysku. Możemy użyć jednego z trybów trwałości, czyli Dołącz tylko plik (Aof): loguje się (w pliku Dodatek.aof utworzone w ramach katalogu roboczego) Każda operacja zapisu pomyślnie otrzymana przez serwer. Dane będą odtwarzane podczas uruchamiania serwera w celu odtworzenia oryginalnego zestawu danych.

Aby to włączyć, ustaw Dodatek parametr do Tak.

Dodatek tak 
Ustaw opcje trwałości

7. Po wprowadzeniu wszystkich zmian uruchom ponownie Redis Usługa wszystkich węzłów w celu zastosowania ostatnich zmian.

# Systemctl restart redis 

8. W tym momencie każdy węzeł klastra powinien teraz mieć ID. Możesz to sprawdzić w pliku dziennika znajdującym się pod adresem /var/log/redis/redis.dziennik.

# cat/var/log/redis/redis.dziennik 
Sprawdź plik dziennika węzła klastra

9. Dalej, otwarty port 6397 I 16379 we wszystkich przypadkach. Później Port jest używany do autobusu klastrowego (a węzeł do węzła kanał komunikacyjny za pomocą protokołu binarnego). Jest to podstawowy wymóg dla połączeń TCP klastra Redis.

# Firewall-CMD --Zone = public --Permanent --add-port = 6379/tcp # Firewall-CMD --zone = public --PerMent-Port = 16379/tcp # Firewall-CMD--RELOAD 

Krok 3: Tworzenie klastra Redis

10. Aby utworzyć klaster, użyj linia polecenia Redis-Cli Klient w następujący sposób. --Utwórz klaster umożliwia tworzenie klastrów i --Klaster-Replicas 1 oznacza utworzenie jednej repliki na mistrz.

W naszej konfiguracji, która ma 6 węzłów, będziemy mieli 3 mistrzów i 3 niewolników.

Zauważ, że pierwsze 6 węzłów zostanie rozważonych Mistrzowie (M) a kolejne trzy zostaną rozważone niewolnicy (S). Pierwszy niewolnik i.mi 10.42.0.200: 6379 powtarza pierwszego mistrza i.mi 10.42.0.247: 6379, Drugi niewolnik powtarza drugiego mistrza, w tej kolejności.

Następujące polecenie jest sformatowane w sposób, w jaki wynik będzie reprezentował naszą logiczną konfigurację powyżej.

# redis-cli-klaster Utwórz 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--klaster-replic 1 
Utwórz klaster Redis

11. Po utworzeniu klastra uruchom następujące polecenie na dowolnym hoście (określ jego adres IP za pomocą -H flaga), aby wymienić wszystkie węzły klastra.

# redis -cli -h 10.42.0.247 -p 6379 Węzły klastra 

Powinieneś być w stanie zobaczyć wszystkie węzły klastra, z niewolnikami wskazującymi ich mistrzów, jak pokazano na poniższym zrzucie ekranu.

Sprawdź wszystkie węzły klastra w dowolnym węźle

Różne pola znajdują się w tej kolejności: identyfikator węzła, adres IP: port, flagi, ostatnie wysłane ping, ostatni pong otrzymany, epoka konfiguracyjna, link-state, gniazda (dla mistrzów).

Krok 4: Testowanie przełączania awaryjnego klastra Redis

12. W tej sekcji pokażemy, jak przetestować przełączanie awaryjne klastra. Najpierw zwróćmy uwagę na mistrzów.

# redis -cli -h 10.42.0.247 -p 6379 Węzły klastra | Grep Master 
List Masters Klaster Redis

Zwróć też uwagę na niewolników Redis.

# redis -cli -h 10.42.0.247 -p 6379 Węzły klastra | Grep Slave 
Wymień wszystkie niewolników klastrów Redis

13. Następnie zatrzymajmy usługę Redis na jednym z głównych węzłów E.G 10.42.0.197 i sprawdź wszystkie węzły główne w klastrze.

# Systemctl Stop Redis # Redis -cli -h 10.42.0.247 -p 6379 Węzły klastra | Grep Master 

Z poniższego zrzutu ekranu widać, że węzeł 10.42.0.197: 6367 jest w stanie upadku i jego niewolnika 10.42.0.21: 6379 został awansowany na status główny.

Sprawdź status awaryjnego klastra

14. Teraz zacznijmy Redis usługa ponownie w nieudanym węźle i sprawdź wszystkich mistrzów w klastrze.

# Systemctl start redis # redis -cli -h 10.42.0.247 -p 6379 Węzły klastra | Grep Master 
Sprawdź wszystkich stanu głównego klastra Redis

Sprawdź także niewolników klastrów, aby potwierdzić, że nieudany mistrz jest teraz niewolnikiem.

# redis -cli -h 10.42.0.247 -p 6379 Węzły klastra | Grep Slave 
Sprawdź wszystkich niewolników klastrów Redis

Krok 5: Testowanie replikacji danych w klastrze Redis

15. Ta ostatnia sekcja wyjaśnia, jak zweryfikować replikację danych klastra. Utworzymy klucz i wartość na jednym z mistrzów, a następnie spróbujemy odczytać go ze wszystkich węzłów klastrów w następujący sposób. Użyj -C Przełącz, aby włączyć obsługę klastrów w ramach danych Redis-CLI i dostęp do danych w trybie klastra.

# redis -cli -c -h 10.42.0.247 -p 6379 Ustaw nazwę 'Tecmint.com ' # redis -cli -c -h 10.42.0.247 -p 6379 Pobierz nazwę # redis -cli -c -h 10.42.0.21 -p 6379 Pobierz nazwę # redis -cli -c -h 10.42.0.132 -p 6379 Pobierz nazwę # redis -cli -c -h 10.42.0.200 -p 6379 Pobierz nazwę # redis -cli -c -h 10.42.0.197 -p 6379 Pobierz nazwę # redis -cli -c -h 10.42.0.34 -p 6379 Uzyskaj nazwę 
Sprawdź replikację danych klastra Redis

Najważniejsze jest Klaster Redis to preferowany sposób na automatyczne odchylenie, replikację i wysoką dostępność. Istnieje wiele innych dobrze udokumentowanych parametrów konfiguracyjnych w reszcie /etc/redis.conf Plik można znaleźć więcej informacji w oficjalnej dokumentacji: samouczek klastra Redis i specyfikacja klastra Redis.

To prowadzi nas do końca trzyczęściowej serii samouczków Redis. Poniższy formularz opinii można użyć do publikowania pytań lub komentarzy.