MariaDB Cluster to system replikacji Multi Master zbudowany na bazie MariaDB Server, poprawki MySQL wsrep i dostawcy Galera wsrep.
Galera opiera się na synchronicznej (lub „wirtualnie synchronicznej”) metodzie replikacji, która zapewnia, że dane są stosowane do innych węzłów przed ich zatwierdzeniem. Posiadanie tych samych danych we wszystkich węzłach oznacza, że awarie węzłów mogą być łatwo tolerowane i żadne dane nie są tracone. Łatwiejsze jest również przełączenie awaryjne na inny węzeł, ponieważ wszystkie węzły są na bieżąco z tymi samymi danymi. Można śmiało powiedzieć, że MariaDB Cluster to rozwiązanie o wysokiej dostępności, które może zapewnić wysoki czas pracy bez przestojów dla organizacji z rygorystycznymi umowami o poziomie usług baz danych.
Oprócz zarządzania wysoką dostępnością, może być również używany do skalowania usługi bazy danych i rozszerzania usługi na wiele regionów.
Wdrożenie klastra MariaDB
Klaster MariaDB w ClusterControl jest naprawdę prosty i dostępny w bezpłatnej wersji Community Edition. Możesz przejść przez „Wdrażanie”, wybierz MySQL Galera, jak pokazano poniżej:
Wypełnij informacje o użytkowniku i poświadczeniach SSH, nazwę klastra, której chcesz użyć a następnie kontynuuj.
Wybierz MariaDB jako dostawcę bazy danych, którą chcesz zainstalować. Katalog danych serwera, Port serwera może używać konfiguracji domyślnej, chyba że zdefiniujesz konkretną konfigurację. Wpisz hasło bazy danych Admin/Root, a na końcu Dodaj węzeł, aby dodać docelowe adresy IP węzłów bazy danych.
Węzły Galera wymagają co najmniej 3 węzłów lub można użyć 2 węzłów bazy danych i arbitra Galera skonfigurowanego na osobnym hoście.
Po wypełnieniu wszystkich pól, po prostu Wdróż klaster. Spowoduje to uruchomienie nowego zadania w celu utworzenia klastra, jak pokazano poniżej:
Wdrożenie Maxscale
Maxscale to system równoważenia obciążenia bazy danych, serwer proxy bazy danych i zapora sieciowa, która znajduje się między aplikacją a węzłami MariaDB. Niektóre z funkcji Maxscale to:
- Automatyczne przełączanie awaryjne dla wysokiej dostępności
- Równoważenie ruchu (podział odczytu i zapisu)
- Kontrola ruchu dla zapytań i połączeń.
Istnieją dwa sposoby przejścia przez wdrożenie modułu równoważenia obciążenia, możesz „Dodaj moduł równoważenia obciążenia” w menu klastra, jak pokazano poniżej:
Lub możesz przejść do Zarządzaj -> Load Balancer. Przejdzie do tej samej strony, która jest stroną Load Balancer. Wybierz „kartę Maxscale” do wdrożenia systemu równoważenia obciążenia Maxscale:
Wybierz adres serwera, określ nazwę użytkownika i hasło maxscale, możesz pozostawić domyślna konfiguracja dla wątków i portu odczytu/zapisu. Uwzględnij również węzły MariaDB, które mają zostać dodane do modułu równoważenia obciążenia. Możesz „Wdróż MaxScale” w celu wdrożenia serwera proxy bazy danych MaxScale i równoważenia obciążenia.
Najlepszą praktyką, aby system równoważenia obciążenia był wysoce dostępny, jest skonfigurowanie co najmniej 2 instancji MaxScale na różnych hostach.
Utrzymane wdrożenie
Keepalived to usługa demona w Linuksie używana do kontroli stanu, a także do przełączania awaryjnego, jeśli jeden z serwerów jest wyłączony. Mechanizm wykorzystuje VIP (Virtual IP Address) do osiągnięcia wysokiej dostępności, składający się z jednego serwera pełniącego rolę Master, a drugiego pełniącego funkcję Backup.
Wdrożenie Keepalived to usługa, którą można wykonać w Zarządzaj -> Load Balancer.
Wybierz typ Load Balancer, czyli MaxScale. Obecnie ClusterControl obsługuje HAProxy, ProxySQL i MaxScale jako load balancery, które można zintegrować z Keepalived. Zdefiniuj swój wirtualny adres IP (VIP) i interfejs sieciowy dla wirtualnego adresu IP.
Następnie kliknij opcję Wdróż Keepalved. Uruchomi to nowe zadanie w celu wdrożenia Keepalive na obu hostach MaxScale.
Ostateczna architektura klastra MariaDB dla wysokiej dostępności składa się z 3 węzłów bazy danych, 2 węzły równoważenia obciążenia i usługa utrzymywania aktywności na górze każdego równoważnika obciążenia, jak pokazano w poniższej topologii:
Wnioski
Pokazaliśmy, jak możemy szybko wdrożyć klaster MariaDB o wysokiej dostępności z MaxScale i Keepalived za pośrednictwem ClusterControl. Przeszliśmy przez konfigurację węzłów bazy danych i węzłów proxy. Aby dowiedzieć się więcej o klastrze Galera, zapoznaj się z naszym samouczkiem online. Należy zauważyć, że ClusterControl obsługuje również inne systemy równoważenia obciążenia, takie jak ProxySQL i HAProxy. Wypróbuj je i daj nam znać, jeśli masz jakieś pytania.