Miesięcznik informatyków i menedżerów IT sektora publicznego

Artur Pęczak

Wysoka dostępność z Percona XtraDB

Dostępnych jest wiele technologii wysokiej dostępności (high availability, HA) baz danych MySQL. Implementacja Percona XtraDB rozwijana jest pod kątem stabilności oraz użyteczności, rozumianej jako możliwość łatwego dodawania nowych funkcji.

Yves Trudeau, główny konsultant w Percona, opublikował na firmowym blogu serię trzech artykułów, w których omówił wszystkie najważniejsze rozwiązania wysokiej dostępności dla MySQL z podziałem na mniej lub bardziej przestarzałe technologie (Trudeau nazywa je The Elders), dojrzałe rozwiązania (The Adults) oraz takie, które nadal są w fazie początkowego rozwoju (The Babies). W gronie obiecujących technologii najbliższej przyszłości znalazły się grupy replikacji (replication group), serwery pośredniczące (proxies) oraz rozproszone pamięci masowe (distributed storage).

Technologie HA dla MySQL

Do grupy „staruszków” Trudeau zaliczył technologie wysokiej dostępności stosowane w świecie MySQL w ciągu ostatnich dziesięciu lat. Znalazły się w niej: mechanizm replikacji asynchronicznej wbudowany w serwer MySQL, rozwiązania oparte o pamięć współdzieloną (shared storage) oraz klastry NDB. Z kolei w gronie cieszących się dzisiaj największym zainteresowaniem dojrzałych rozwiązań Trudeau zebrał wszelkie implementacje protokołu Galera, a więc Galera Cluster, MariaDB Cluster i przedmiot niniejszego artykułu – Percona XtraDB Cluster. Oddzielnie sklasyfikowane zostało zaś rozwiązanie RDS Aurora, będące zamkniętą technologią HA dla baz danych uruchamianych w chmurze Amazonu.

Galera to protokół replikacji rozwijany w ramach biblioteki o tej samej nazwie przez fińską firmę Codership. Sposób włączenia biblioteki do kodu programu MySQL stanowi implementację środowiska wysokiej dostępności dla danego rozwiązania. Percona XtraDB Cluster jest jedną z takich właśnie implementacji, która – jak zauważa Trudeau – skupia się na stabilności oraz użyteczności rozumianej jako możliwość łatwego dodawania nowych funkcji.

Charakterystyka ogólna

Percona XtraDB Cluster to rozwiązanie klastra MySQL tworzone na zasadach licencji open source. Klaster działa w trybie active/active, zapewniając wysoką dostępność (high availability) oraz skalowalność (high scalability) środowiska bazodanowego. Percona XtraDB Cluster bazuje na bibliotece Codership Galera, serwerze baz danych Percona Server oraz rozwiązaniu do tworzenia kopii zapasowych Percona XtraBack­up. Całość dostępna jest w formie pojedynczego pakietu, dzięki czemu wdrożenie systemu baz danych wysokiej dostępności jest prostsze niż kiedykolwiek wcześniej.

Rozwiązanie oferuje synchroniczną replikację typu multi-master. Po pierwsze, oznacza to, że transakcja musi zostać zatwierdzona na wszystkich węzłach w klastrze albo zostanie odwołana. Po drugie zaś, operacje zapisu mogą być wykonywane na dowolnym węźle, po czym w formie aktualizacji zostają rozpropagowane przez sieć na pozostałe węzły w klastrze. To istotna różnica w stosunku do klasycznej replikacji asynchronicznej, w której dodatkowe węzły (slaves) wdrażane są w trybie tylko do odczytu.

Wdrożenie klastra nie wymaga zmian w bazie danych. Percona XtraDB Cluster może być poprawnie uruchamiany dla baz danych utworzonych w MySQL, MariaDB oraz Percona Server for MySQL. Nie ma również potrzeby (lub tylko w minimalnym stopniu) wprowadzania zmian w kodzie istniejących aplikacji, które z takich baz danych korzystają.

Instalacja

Percona dostarcza pakiety .rpm dla 64-bitowych wersji Red Hat Enterprise Linux 6 i 7 oraz jego pochodnych, w tym CentOS, Oracle Linux, Amazon Linux AMI i innych. Dwie pierwsze dystrybucje są oficjalnie wspierane. Pakiety .deb z Percona XtraDB Cluster są wydawane i testowane dla dystrybucji Debian oraz Ubuntu. Dokumentacja Percony zaleca wyłączenie mechanizmów zabezpieczeń SELinux (dystrybucje RPM) oraz AppArmor (Deb), które mogłyby blokować lub utrudniać komunikację między węzłami klastra. W SELinux wystarczy zmiana trybu działania z enforcing na permissive. Wymaga to modyfikacji zmiennej SELINUX=permissive w pliku /ect/selinux/config. AppArmor możemy po prostu wygodnie odinstalować za pomocą menedżera pakietów apt-get remove apparmor.

Zalecaną metodą wdrażania Percona XtraDB Cluster jest instalacja oprogramowania z pakietów dostępnych w repozytoriach danej dystrybucji. W tym celu dodajemy do yuma informacje o repozytorium Percony, a następnie instalujemy wymagane oprogramowanie. Instalator automatycznie usunie (zastąpi) niekompatybilną bibliotekę mariadb-libs oraz doda wszystkie wymagane narzędzia, takie jak lsof, qpress, rsync i socat.

# yum install http://www.percona.com/downloads/percona-release/\
redhat/0.1-4/percona-release-0.1-4.noarch.rpm
# yum install Percona-XtraDB-Cluster-57

W repozytoriach dostępny jest również metapakiet Percona-XtraDB-Cluster-full-57 zawierający biblioteki devel, debugowania oraz komponent Garbd. Instalację oprogramowania należy powtórzyć na każdym węźle w klastrze. Ostatnim krokiem będzie wystartowanie serwera oraz zabezpieczenie go poprzez nadanie nowego hasła dla konta root oraz ustalenie reguł dostępu.

[...]

Autor zawodowo zajmuje się informatyką. Publikuje w magazynach komputerowych i serwisach internetowych.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma. Zapraszamy do składania zamówień na prenumeratę i numery archiwalne.
 
 

Polecamy

Biblioteka Informacja Publiczna

Specjalistyczne publikacje książkowe dla pracowników administracji publicznej

więcej