GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come configurare il cluster Percona con HAproxy Loadbalancer su CentOS 7

In precedenza abbiamo mostrato come configurare il cluster MariaDB Galera con HAproxy e oggi eseguiremo la configurazione simile con la distribuzione di MySQL di Percona. Percona è l'azienda che ha una profonda esperienza con MySQL e MongoDB e realizza le proprie distribuzioni di tali database, nonché motori di archiviazione per entrambi i database. Oggi ci concentreremo solo su MySQL e non sull'offerta MongoDB di questa azienda.

Configurazione di host, firewall e repository

Primo avvio impostando il file hosts. Abbiamo tre nodi per il cluster Percona e un nodo per HAproxy. Il mio file hosts su tutti e 4 i server ha queste quattro righe:

10.17.0.8 centos-percona01
10.17.0.9 centos-percona02
10.17.0.10 centos-percona03
10.17.0.11 centos-haproxy

Quindi consente di configurare il firewalld su tutti gli host tranne quello di HAproxy. Quello richiederà impostazioni diverse e lo faremo. Per prima cosa avviamo il firewalld su tutti e tre i nodi percona.

systemctl start firewalld

Quindi consentiamo il servizio MySQL. Pecona è una distribuzione MySQL, quindi utilizza la stessa porta di MySQL.

firewall-cmd --zone=public --add-service=mysql --permanent

Successivamente aggiungiamo altre porte necessarie:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/udp --permanent

firewall-cmd --zone=public --add-port=9200/tcp --permanent
 

E ricarica il firewall

 firewall-cmd --reload

Al termine, dobbiamo installare epel release

yum install epel-release

Quindi installiamo socat dal repository EPEL

yum install socat

E poi rimuoviamo mariadb-libs perché è in conflitto con percona

yum remove mariadb-libs

Installazione e configurazione di Percona

Dobbiamo aggiungere un repository contenente percona

yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

Ora possiamo installare percona cluster e tutte le altre dipendenze

yum install Percona-XtraDB-Cluster-server-56 Percona-XtraDB-Cluster-client-56 Percona-XtraDB-Cluster-shared-56 percona-toolkit percona-xtrabackup Percona-XtraDB-Cluster-galera-3 rsync nc

E avvia MySQL

systemctl start mysql

La prima cosa che facciamo su tutti i server mysql è eseguire lo script mysql_secure_installation. Allora facciamolo.

mysql_secure_installation

Devi inserire la tua nuova password di root e rispondere a tutte le domande.

Al termine, accedi al tuo account root

mysql -u root -p

enter password

E crea sstuser il tuo cluster

mysql> create user sstuser@'%' identified by 'strongpassword';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on *.* to sstuser@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

Dopo questo dobbiamo fermare Mysql per modificare i file di configurazione.

systemctl stop mysql

nano /etc/my.cnf

Nella configurazione trova quelle righe e falle sembrare esattamente così, cambia semplicemente la tua password e cambia il nome del nodo e l'indirizzo del nodo con il tuo nome host per ogni server

wsrep_cluster_address = gcomm://centos-percona01,centos-percona02,centos-percona03
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so

wsrep_slave_threads = 8
wsrep_cluster_name = Cluster Percona XtraDB
wsrep_node_name = centos-percona01
wsrep_node_address = centos-percona01
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = sstuser:strongpassword

Nota che la prima riga sul primo server (centos-percona01) può essere vuota, in questo modo:

wsrep_cluster_address = gcomm://

Dopo che la configurazione è stata eseguita, è necessario eseguire il bootstrap del primo nodo, quindi normalmente avviare il secondo e il terzo.

Alla prima esecuzione del server

systemctl start mysql@bootstrap

alla seconda e terza manche

systemctl start mysql

Quindi dobbiamo verificare se il cluster funziona.

mysql -u root -p

inserisci la password

E poi esegui questi comandi:

SHOW STATUS LIKE 'wsrep_local_state_comment';

show global status like 'wsrep_cluster_size';

Dovrebbero farti ottenere un output in questo modo:

Con questo cluster la configurazione è conclusa.

Configurazione HAproxy

Innanzitutto è necessario che clustercheck sia installato su tutti i nodi del cluster in modo che il cluster sia riparabile con HAproxy. Prendiamo lo script con wget

wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck

Lo script deve essere reso eseguibile e spostato in una delle tue directory $PATH.

chmod +x clustercheck

mv clustercheck /usr/bin/

Ora abbiamo anche bisogno di mysqlchk che è incluso nel pacchetto xinetd:

yum install xinetd

Successivamente ci spostiamo per creare un utente clustercheck sul database. Possiamo digitarlo solo sul primo nodo

mysql -u root -p

mysql> GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!';

exit;

Successivamente possiamo verificare se clustercheck funziona come previsto:

[root@centos-percona01 ~]# clustercheck
HTTP/1.1 200 OK
Content-Type: text/plain
Connection: close
Content-Length: 40

Percona XtraDB Cluster Node is synced.

Quindi passiamo alla configurazione di xinetd, xinetd deve essere aggiunto all'elenco dei servizi.

nano /etc/services

Usiamo CTRL-W per trovare la parte in cui si trova la porta 9200, quindi elogiamo i servizi che utilizzano quella porta e aggiungiamo invece una nuova riga. Deve assomigliare a questo:

mysqlchk 9200/tcp # mysqlchk
#wap-wsp 9200/tcp # WAP connectionless session service
#wap-wsp 9200/udp # WAP connectionless session service

Dopo aver finito salviamo. Nota che tutti i nodi del cluster eccetto HAproxy devono eseguire questa operazione.

Ora è il momento di accedere al nostro server HAporoxy. Per prima cosa dobbiamo eseguire il backup della configurazione haproxy.

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk

Quindi ne faremo uno nuovo da tabula rasa

nano /etc/haproxy/haproxy.cfg

Possiamo copiare la configurazione di HAproxy da qui, tranne per il fatto che queste tre righe devono essere modificate:

server centos-percona01 10.132.84.186:3306 check port 9200 inter 12000 rise 3 fall 3
server centos-percona02 10.132.84.141:3306 check port 9200 inter 12000 rise 3 fall 3
server centos-percona03 10.132.84.67:3306 check port 9200 inter 12000 rise 3 fall 3

Le parti evidenziate devono essere modificate con i tuoi nomi host e i tuoi indirizzi. Quindi dobbiamo avviare firewalld sul server haproxy e avere le porte consentite che dobbiamo usare

systemctl start firewalld
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=3030/tcp

Dopodiché dobbiamo ricaricare il firewall

firewall-cmd --reload

Infine, avvia haproxy

systemctl start haproxy

L'installazione è stata completata, ora dobbiamo testare.

Test di HAproxy

Puntiamo semplicemente il browser all'indirizzo IP pubblico del server HAproxy sulla porta 9000:

Tutti i nodi sono online. Quindi installiamo il client percona sul server haproxy in modo da poter provare a interrogare il cluster da lì.

yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

yum install Percona-XtraDB-Cluster-client-56

E proviamo a vedere se possiamo avere una query da questo server haproxy:

mysql -u root -p -h 10.132.83.13 -P 3306 -e "select Host, User, Password from mysql.user"

Conclusione

Abbiamo impostato il cluster a 3 nodi di carico Percona XtraDB bilanciato da HAproxy. È una configurazione simile all'articolo della scorsa settimana con MariaDB e Galera, ma con il motore di archiviazione Percona e senza WordPress. Questa configurazione di Percona può essere utilizzata per ospitare un'ampia varietà di set di dati, tra le altre cose puoi riutilizzarla con WordPress, come nel nostro articolo precedente. Con ciò concludiamo questo articolo, grazie per la lettura e buona giornata.


Cent OS
  1. Come installare il cluster Percona XtraDB su CentOS 7

  2. Come installare Percona Server su CentOS 7

  3. Come configurare Pure-FTPD con MySQL su CentOS e RedHat

  4. Come configurare Opencart su Rocky Linux/Centos 8 con Apache, PHP, Mysql (stack LAMP)

  5. Come sostituire MySQL con MariaDB su CentOS 6

Come configurare MariaDB Galera Cluster con HAproxy su CentOS 7

Come configurare MySQL con Docker in Linux

Come costruire un cluster attivo-attivo-attivo con RHEL 8 e Percona MySQL

Come impostare la replica MySQL in RHEL/Centos

Come configurare un cluster Redis in CentOS 8 – Parte 3

Come configurare HAProxy su CentOS 8