MariaDB Cluster je multimaster replikační systém vytvořený ze serveru MariaDB, opravy MySQL wsrep a poskytovatele wsrep Galera.
Galera je založena na synchronní (neboli ‚virtuálně synchronní‘) metodě replikace, která zajišťuje, že data aplikovaná na jiné uzly, než jsou potvrzena. Mít stejná data na všech uzlech znamená, že selhání uzlů lze snadno tolerovat a žádná data se neztratí. Je také snazší převzetí služeb při selhání na jiný uzel, protože všechny uzly jsou aktuální se stejnými daty. Je spravedlivé říci, že MariaDB Cluster je řešení s vysokou dostupností, které může organizacím dosáhnout vysoké doby provozuschopnosti s přísnými dohodami o úrovni služeb databáze.
Kromě správy vysoké dostupnosti jej lze také použít ke škálování databázové služby a rozšíření služby do více oblastí.
Nasazení clusteru MariaDB
MariaDB Cluster v ClusterControl je opravdu přímočarý a je k dispozici v bezplatné verzi Community Edition. Můžete projít „Deploy“, vybrat MySQL Galera, jak je znázorněno níže:
Vyplňte informace o uživateli a pověření SSH, název clusteru, který chcete použít a poté Pokračovat.
Vyberte MariaDB jako dodavatele databáze, kterou chcete nainstalovat. Server Data Directory, Server Port může používat výchozí konfiguraci, pokud nedefinujete konkrétní konfiguraci. Vyplňte heslo Admin/Root databáze a nakonec Add Node pro přidání cílové IP adresy databázových uzlů.
Uzly Galera vyžadují alespoň 3 uzly nebo můžete použít 2 databázové uzly a arbitra Galera nakonfigurované na samostatném hostiteli.
Po vyplnění všech polí stačí nasadit cluster. Spustí novou úlohu pro vytvoření clusteru, jak je znázorněno níže:
Maxscale Deployment
Maxscale je nástroj pro vyrovnávání zatížení databáze, proxy databáze a firewall, který je umístěn mezi vaší aplikací a uzly MariaDB. Některé z funkcí Maxscale jsou:
- Automatické převzetí služeb při selhání pro vysokou dostupnost
- Vyrovnávání zatížení provozu (rozdělení čtení a zápisu)
- Řízení provozu pro dotazy a připojení.
Existují dva způsoby, jak projít zavedením nástroje Load Balancer, můžete „Přidat nástroj pro vyrovnávání zatížení“ v nabídce clusteru, jak je znázorněno níže:
Nebo můžete přejít na Spravovat -> Load Balancer. Přejde na stejnou stránku, což je stránka Load Balancer. Vyberte „kartu Maxscale“ pro nasazení nástroje pro vyrovnávání zatížení Maxscale:
Vyberte adresu serveru, definujte uživatelské jméno a heslo maxscale, můžete ponechat výchozí konfigurace pro vlákna a port pro čtení/zápis. Zahrňte také uzel MariaDB, který se má přidat do nástroje pro vyrovnávání zatížení. Můžete „Nasadit MaxScale“ pro nasazení databázového proxy serveru MaxScale a vyvažování zátěže.
Osvědčeným postupem, jak zajistit vysokou dostupnost nástroje pro vyrovnávání zatížení, je nastavit alespoň 2 instance MaxScale na různých hostitelích.
Keepalived Deployment
Keepalived je služba démona v linuxu, která se používá pro kontroly stavu a také se používá pro převzetí služeb při selhání, pokud je jeden ze serverů mimo provoz. Mechanismus využívá VIP (virtuální IP adresu) k dosažení vysoké dostupnosti, sestávající z jednoho serveru fungujícího jako Master a druhého jako Backup.
Nasazení služby Keepalived je možné provést v nabídce Správa -> Load Balancer.
Vyberte prosím typ Load Balanceru, což je MaxScale. V současné době ClusterControl podporuje HAProxy, ProxySQL a MaxScale jako nástroje pro vyrovnávání zatížení, které lze integrovat s Keepalived. Definujte svou virtuální IP (VIP) a síťové rozhraní pro virtuální IP adresu.
Poté stačí kliknout na Deploy Keepalived. Spustí novou úlohu pro nasazení Keepalived na obou hostitelích MaxScale.
Konečná architektura pro MariaDB Cluster pro vysokou dostupnost se skládá ze 3 databázových uzlů, 2 uzel nástroje pro vyrovnávání zatížení a služba pro udržování stavu na vrcholu každého nástroje pro vyrovnávání zatížení, jak je znázorněno na topologii níže:
Závěr
Ukázali jsme, jak můžeme rychle nasadit High Availability MariaDB Cluster s MaxScale a Keepalived přes ClusterControl. Prošli jsme nastavení pro uzly databáze a uzly proxy. Chcete-li si přečíst více o Galera Cluster, podívejte se na náš online tutoriál. Všimněte si, že ClusterControl také podporuje další nástroje pro vyrovnávání zatížení, jako je ProxySQL a HAProxy. Vyzkoušejte je a dejte nám vědět, pokud máte nějaké dotazy.