Featured image of post OpenSuSE Galera Cluster

OpenSuSE Galera Cluster

How to galera cluster

Configurazione di un cluster di database multi-master sincrono galera basato su openSuSE Leap 15.6

Primo nodo

Aggiungere il repository server:database da OBS e installare i pacchetti necessari; questa operazione deve essere eseguita per tutti i server del cluster.

sudo zypper addrepo https://download.opensuse.org/repositories/server:database/openSUSE_Leap_15.6/server:database.repo
sudo zypper refresh
sudo zypper install mysql mariadb-galera galera-3

Avviare e proteggere l’installazione di mariadb

sudo systemctl start mariadb
sudo mysql_secure_installation

Dopo aver risposto alle domande del prompt, è possibile disattivare mariadb e modificare la configurazione del file galera in /etc/my.cnf.d/50-galera.cnf modificandolo in questo modo:

# Whether or not wsrep replication is enabled
wsrep_on=ON
# Full path to wsrep provider library or 'none'
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
# Logical cluster name. Should be the same for all nodes.
wsrep_cluster_name="my_cluster"
# Group communication system handle
wsrep_cluster_address="gcomm://"
# Human-readable node name (non-unique). Hostname by default.
wsrep_node_name="node1"

una volta terminata la modifica del file, dopo averlo salvato, avviare mariadb in questo modo:

sudo galera_new_cluster

Ora è possibile accedere a mariadb e verificare che il cluster (con un solo server abilitato) sia attivo e funzionante:

MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+
1 row in set (0.00 sec)

Questa variabile indica il numero di nodi connessi al cluster. È il momento di aprire le porte del firewall per consentire la connessione di altri nodi.

sudo firewall-cmd --zone=public --add-service=mysql --permanent
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4567/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4568/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4444/tcp --permanent
sudo firewall-cmd --reload

Nodi aggiuntivi

Ripetere le stesse operazioni eseguite sul nodo 1 fino al momento di modificare il file /etc/my.cnf.d/50-galera.cnf.

# Whether or not wsrep replication is enabled
wsrep_on=ON
# Full path to wsrep provider library or 'none'
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
# Logical cluster name. Should be the same for all nodes.
wsrep_cluster_name="my_cluster"
# Group communication system handle
wsrep_cluster_address="gcomm://<node1.ip.address>,<node2.io.address>"
# Human-readable node name (non-unique). Hostname by default.
wsrep_node_name="node2"

Impostare wsrep\_cluster\_address=“gcomm://\<node1.ip.address\>,\<node2.ip.address\>" con gli indirizzi ip corretti, aprire le porte del firewall e avviare mariadb.

sudo firewall-cmd --zone=public --add-service=mysql --permanent
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4567/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4568/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4444/tcp --permanent
sudo firewall-cmd --reload
sudo systemctl start mariadb

È possibile verificare l’ingresso del nodo2 nel cluster allo stesso modo di prima:

MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+
1 row in set (0.00 sec)

Una volta che i nodi sono stati sincronizzati, è necessario tornare al nodo1 per modificare wsrep\_cluster\_address="gcomm://\<node1.ip.address\>,\<node2.ip.address\>"con gli indirizzi IP corretti.

Ripetere le operazioni eseguite sul nodo2 per aggiungere altri nodi.

comments powered by Disqus
Realizzato con Hugo
Tema Stack realizzato da Jimmy