Pravidelně dostáváme dotazy, jak nastavit cluster Galera s pouhými 2 uzly.
Dokumentace jasně uvádí, že byste měli mít alespoň 3 uzly Galera, abyste se vyhnuli rozdělení sítě. Existuje však několik oprávněných důvodů pro zvážení nasazení 2 uzlů, například pokud chcete dosáhnout vysoké dostupnosti databáze, ale máte omezený rozpočet na utracení třetího databázového uzlu. Nebo možná používáte Galeru ve vývojovém/sandboxovém prostředí a dáváte přednost minimálnímu nastavení.
Galera implementuje algoritmus založený na kvoru pro výběr primární komponenty, jejímž prostřednictvím vynucuje konzistenci. Primární složka musí mít většinu hlasů, takže v systému 2 uzlů by neexistovala žádná většina, což by vedlo k rozdělení mozku. Naštěstí je možné přidat garbd (Galera Arbitrator Daemon), což je lehký bezstavový démon, který může fungovat jako lichý uzel. Selhání arbitra nemá vliv na operace clusteru a nová instance může být ke clusteru kdykoli znovu připojena. V clusteru může být několik rozhodců.
ClusterControl má podporu pro nasazení garbd na nedatabázové hostitele.
Klastr Galera normálně potřebuje alespoň tři hostitele, aby byl plně funkční, nicméně v době nasazení by dva uzly stačily k vytvoření primární komponenty. Zde jsou kroky:
- Nasaďte shluk Galera se dvěma uzly,
- Po nasazení clusteru pomocí ClusterControl přidejte garbd do uzlu ClusterControl.
Měli byste skončit s níže uvedeným nastavením:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214271898.png)
Nasazení Galera Cluster
Přejděte do části ClusterControl Deploy a nasaďte cluster.
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214271990.png)
Po výběru technologie, kterou chceme nasadit, musíme zadat uživatele, klíč nebo heslo a port pro připojení pomocí SSH k našim hostitelům. Potřebujeme také název našeho nového clusteru a pokud chceme, aby ClusterControl nainstaloval odpovídající software a konfigurace za nás.
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214271947.png)
Po nastavení přístupových informací SSH musíme vybrat dodavatele/verzi a musíme definovat heslo správce databáze, datadir a port. Můžeme také určit, které úložiště použít.
I když vás ClusterControl varuje, že cluster Galera potřebuje lichý počet uzlů, přidejte do clusteru pouze dva uzly.
Nasazení clusteru Galera spustí úlohu ClusterControl, kterou lze sledovat na stránce Úlohy.
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214272058.jpg)
Nainstalovat Garbd
Po dokončení nasazení nainstalujte garbd na hostitele ClusterControl. Máme možnost nasadit garbd z ClusterControl, ale tato možnost nebude fungovat, pokud jej chceme nasadit na stejný server ClusterControl. Je to proto, aby se předešlo problémům souvisejícím s verzemi databáze a závislostmi balíčků.
Musíme jej tedy nainstalovat ručně a poté importovat garbd do ClusterControl.
Podívejme se na ruční instalaci Percona Garbd na CentOS 7.
Vytvořte soubor úložiště Percona:
$ vi /etc/yum.repos.d/percona.repo
[percona-release-$basearch]
name = Percona-Release YUM repository - $basearch
baseurl = http://repo.percona.com/release/$releasever/RPMS/$basearch
enabled = 1
gpgcheck = 0
[percona-release-noarch]
name = Percona-Release YUM repository - noarch
baseurl = http://repo.percona.com/release/$releasever/RPMS/noarch
enabled = 1
gpgcheck = 0
[percona-release-source]
name = Percona-Release YUM repository - Source packages
baseurl = http://repo.percona.com/release/$releasever/SRPMS
enabled = 0
gpgcheck = 0
Poté nainstalujte balíček Percona XtraDB Cluster garbd:
$ yum install Percona-XtraDB-Cluster-garbd-57
Nyní musíme nakonfigurovat garbd. K tomu potřebujeme upravit soubor /etc/sysconfig/garb:
$ vi /etc/sysconfig/garb
# Copyright (C) 2012 Codership Oy
# This config file is to be sourced by garb service script.
# A comma-separated list of node addresses (address[:port]) in the cluster
GALERA_NODES="192.168.100.192:4567,192.168.100.193:4567"
# Galera cluster name, should be the same as on the rest of the nodes.
GALERA_GROUP="Galera1"
# Optional Galera internal options string (e.g. SSL settings)
# see http://galeracluster.com/documentation-webpages/galeraparameters.html
# GALERA_OPTIONS=""
# Log file for garbd. Optional, by default logs to syslog
# Deprecated for CentOS7, use journalctl to query the log for garbd
# LOG_FILE=""
Změňte parametry GALERA_NODES a GALERA_GROUP podle konfigurace uzlů Galera. Před spuštěním služby také musíme odstranit řádek # REMOVE THIS AFTER CONFIGURATION.
A nyní můžeme spustit službu garb:
$ service garb start
Redirecting to /bin/systemctl start garb.service
Nyní můžeme importovat nový garbd do ClusterControl.
Přejděte do ClusterControl -> Vybrat Cluster -> Přidat Load Balancer.
Poté vyberte sekci Garbd a importovat Garbd.
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214272293.jpg)
Zde potřebujeme pouze zadat název hostitele nebo IP adresu a port nového Garbd.
Import garbd spustí úlohu ClusterControl, kterou lze sledovat na stránce Úlohy. Po dokončení můžete ověřit, že garbd běží, pomocí zelené ikony zaškrtnutí v horní liště:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214272273.jpg)
To je ono!
Náš minimální dvouuzlový cluster Galera je nyní připraven!