Replikacja pozwala na łatwe zarządzanie wieloma kopiami danych MySQL. Można to osiągnąć poprzez automatyczne kopiowanie danych z kontenera master do jednej (lub wielu) bazy danych typu slave.
Przechowywanie danych w wielu kontenerach baz danych może być pomocne podczas podwyższania wydajności, tworzeniu kopii zapasowych, analizie informacji i łagodzeniu skutków awarii.
Można wskazać następujące przypadki implementacji replikacji MySQL:

  • rozwiązania scale-out – zwiększenie wydajności systemu poprzez rozłożenie obciążenia na wiele węzłów typu slave; odczyty odbywają się z węzłów slave, aktualizacje bazy danych mają miejsce na węźle master
  • kopie zapasowe – wykonywanie backupów na węźle slave, bez obciążania mastera
  • analityka – analizowanie rzeczywistych danych na węźle slave, bez wpływu na wydajność mastera
  • dystrybucja danych na duże odległości – tworzenie kopii danych używanych w zdalnej lokalizacji, bez bezpośredniego dostępu do mastera.

Zazwyczaj tworzenie optymalnej replikacji master-slave dla MySQL jest procesem dość złożonym, jednak dzięki mechanizmom stosowanym w chmurze UniCloud jest to proces całkowicie zautomatyzowany. Dzięki wykorzystaniu naszych rozwiązań możesz zaoszczędzić swój czas.

Spróbujmy prześledzić, jak wygląda proces wdrożenia pakietu w chmurze UniCloud.

Klaster MySQL – instalacja One-Click

Przygotowany pakiet instalacyjny zbudowany jest na bazie obrazu Docker devbeta/mysql57:5.7.14-latest. Domyślnie składa się z dwóch kontenerów MySQL 5.7 (master i slave). Możesz dopasować wymaganą ilość kontenerów slave zarówno na etapie tworzenia środowiska, jak i później, zmieniając jego topologię. W każdej konfiguracji pozostaje jeden kontener master, pozostałe są w statusie slave.

Każdy kontener bazy danych w pakiecie ma ustawione domyślne skalowanie pionowe w zakresie od 1 zarezerwowanego do 8 dynamicznych cloudletów (aktualnie odpowiada maszynie z 1 GB RAM i 3.2 GHz CPU). Limit zasobów można zmienić w kreatorze topologii.

Instalacja replikowanych baz MySQL

Proces wdrażania został zautomatyzowany dzięki zastosowaniu paczek JPS.

  1. Zaloguj się do platformy UniCloud i wybierz opcję Import
  2. Przełącz się do zakładki URL i wstaw poniższy link, aby pobrać wymagany plik manifest.jps:
    https://github.com/jelastic-jps/mysql-cluster/raw/master/manifest.jps
    Wybierz Import, aby kontynuować
  3. W otwartym oknie potwierdzenia należy wpisać łączną liczbę kontenerów (jeden master, pozostałe slave).
    Wpisz nazwę środowiska oraz (opcjonalnie) nazwę wyświetlaną (alias). Naciśnij Zainstaluj.

    Po zainstalowaniu i skonfigurowaniu środowiska zostanie wyświetlona ramka zawierająca dane administracyjne głównego węzła.
    Następnym krokiem będzie przetestowanie działania replikacji.

Testowanie replikacji MySQL

Aby upewnić się, że dane są replikowane do bazy slave, nawet po uruchomieniu skalowania poziomego, utworzymy nową bazę danych w kontenerze master, dodamy kolejny węzeł slave bazy MySQL i następnie porównamy dane wewnątrz kontenerów.

Tworzenie nowej bazy danych

  1. Kliknij przycisk Otwórz w przeglądarce, znajdujący się obok głównego węzła MySQL, aby uruchomić interfejs www phpMyAdmin
  2. Zaloguj się z poświadczeniami, które zostały wystawione po instalacji pakietu
    Kliknij Wykonaj, aby uzyskać dostęp do strony.
  3. Przejdź do zakładki Bazy Danych, wpisz nazwę nowej bazy i kliknij przycisk UtwórzPo utworzeniu bazy danych w węźle master, przetestujemy skalowanie środowiska oraz sprawdzimy, czy dane zostały zreplikowane w dodanych węzłach slave.

Dodawanie węzłów slave

Wszystkie kontenery dodawane po instalacji klastra działają jako slave czyli węzły podrzędne z automatycznie włączona replikacją danych z węzła master, czyli nadrzędnego. Aby dostosować liczbę kontenerów podrzędnych do naszych wymagań, należy wykonać następujące kroki:

  1. Naciśnij przycisk Zmień topologię środowiska:
  2. Dodaj w kreatorze kolejny węzeł w sekcji Skalowanie poziome:kliknij Zastosuj, aby zapisać ustawienia. Następnie, po ustawieniu wymaganej liczby węzłów slave, uruchom interfejs administratora, aby sprawdzić poprawność replikacji.

Weryfikacja replikacji

Aby upewnić się, że replikacja z pojemników master do slave odbywa się prawidłowo, należy wykonać następujące kroki:

  1. Kliknij przycisk otwórz w przeglądarce obok docelowego węzła slave MySQL, aby uruchomić interfejs phpMyAdmin 
  2. Zaloguj się do panelu administratora (korzystając z danych otrzymanych pocztą elektroniczną po instalacji pakietu):w ten sam sposób można uzyskać dostęp do interfejsu administratora nowego węzła slave, aby sprawdzić dostępność replikowanych danych:Po zalogowaniu można uzyskać dostęp do bazy danych (w naszym przykładzie unicloudDB) utworzonej wcześniej w kontenerze master i zarządzać nią.
    I o to chodziło! Replikacja master-slave jest uruchomiona i działająca, a klaster jest gotowy na przetwarzanie danych. Integracja klastra z projektem zależy od specyfiki aplikacji, odpowiednie sterowniki i biblioteki można pobrać z oficjalnej strony MySQL Connectors and APIs.