GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So richten Sie Percona-Cluster mit HAproxy Loadbalancer unter CentOS 7 ein

Wir haben zuvor gezeigt, wie man den MariaDB Galera-Cluster mit HAproxy einrichtet, und heute werden wir ein ähnliches Setup mit der MySQL-Distribution von Percona durchführen. Percona ist das Unternehmen, das über umfassende Erfahrung mit MySQL und MongoDB verfügt und eigene Distributionen dieser Datenbanken sowie Speicher-Engines für beide Datenbanken erstellt. Heute konzentrieren wir uns nur auf MySQL und nicht auf das MongoDB-Angebot dieser Firma.

Hosts, Firewall und Repositories einrichten

Erster Start durch Einstellen der Hosts-Datei. Wir haben drei Knoten für den Percona-Cluster und einen Knoten für HAproxy. Meine Hosts-Datei auf allen 4 Servern hat diese vier Zeilen:

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

Als nächstes richten wir die Firewall auf allen Hosts außer HAproxy ein ein. Dieser erfordert andere Einstellungen und wir werden letzteres tun. Lassen Sie uns zuerst Firewalld auf allen drei Percona-Knoten starten.

systemctl start firewalld

Dann erlauben wir den MySQL-Dienst. Pecona ist eine MySQL-Distribution, also verwendet sie denselben Port wie mysql.

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

Als nächstes fügen wir weitere benötigte Ports hinzu:

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
 

Und die Firewall neu laden

 firewall-cmd --reload

Wenn das erledigt ist, müssen wir als nächstes epel release

installieren

yum installiere epel-release

Als nächstes installieren wir socat aus dem EPEL-Repository

yum install socat

Und dann entfernen wir mariadb-libs, weil es mit percona in Konflikt steht

yum remove mariadb-libs

Percona installieren und einrichten

Wir müssen ein Repository hinzufügen, das Percona enthält

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

Jetzt können wir den Percona-Cluster und alle anderen Abhängigkeiten installieren

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

Und starte mysql

systemctl start mysql

Als erstes führen wir auf allen MySQL-Servern das Skript mysql_secure_installation aus. Also lass es uns tun.

mysql_secure_installation

Sie müssen Ihr neues Root-Passwort eingeben und alle Fragen mit y beantworten.

Wenn Sie fertig sind, melden Sie sich bei Ihrem Root-Konto an

mysql -u root -p

enter password

Und erstellen Sie sstuser Ihren 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)

Danach müssen wir Mysql stoppen, um die Konfigurationsdateien zu bearbeiten.

systemctl stop mysql

nano /etc/my.cnf

Suchen Sie in der Konfiguration nach diesen Zeilen und lassen Sie sie genau so aussehen, ändern Sie einfach Ihr eigenes Passwort und ändern Sie den Knotennamen und die Knotenadresse für jeden Server in Ihren Hostnamen

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

Beachten Sie, dass die erste Zeile auf dem ersten Server (centos-percona01) wie folgt leer sein kann:

wsrep_cluster_address = gcomm://

Nachdem die Konfiguration abgeschlossen ist, müssen wir den ersten Knoten booten und dann normalerweise den zweiten und dritten starten.

Beim ersten Serverstart

systemctl start mysql@bootstrap

im zweiten und dritten Lauf

systemctl start mysql

Als nächstes müssen wir testen, ob der Cluster funktioniert.

mysql -u root -p

Passwort eingeben

Führen Sie dann diese Befehle aus:

SHOW STATUS LIKE 'wsrep_local_state_comment';

show global status like 'wsrep_cluster_size';

Sie sollten folgende Ausgabe erhalten:

Damit ist die Cluster-Einrichtung abgeschlossen.

HAproxy-Setup

Zuerst müssen wir clustercheck auf allen Cluster-Knoten installieren, damit der Cluster mit HAproxy bedienbar ist. Holen wir uns das Skript mit wget

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

Das Skript muss ausführbar gemacht und in eines Ihrer $PATH-Verzeichnisse verschoben werden.

chmod +x clustercheck

mv clustercheck /usr/bin/

Jetzt brauchen wir auch mysqlchk, das im xinetd-Paket enthalten ist:

yum install xinetd

Als nächstes verschieben wir den Clustercheck-Benutzer auf die Datenbank. Wir können dies nur auf dem ersten Knoten eingeben

mysql -u root -p

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

exit;

Als nächstes können wir testen, ob Clustercheck wie erwartet funktioniert:

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

Percona XtraDB Cluster Node is synced.

Als nächstes gehen wir zur Konfiguration von xinetd, xinetd muss zur Dienstliste hinzugefügt werden.

nano /etc/services

Wir verwenden STRG-W, um den Teil mit Port 9200 zu finden, dann empfehlen wir Dienste, die diesen Port verwenden, und fügen stattdessen eine neue Zeile hinzu. Es muss so aussehen:

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

Nachdem wir fertig sind, speichern wir. Beachten Sie, dass dies für alle Cluster-Knoten außer HAproxy erforderlich ist.

Jetzt ist es an der Zeit, sich bei unserem HAporoxy-Server anzumelden. Zuerst müssen wir die Haproxy-Konfiguration sichern.

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

Dann machen wir ein neues aus reinem Schiefer

nano /etc/haproxy/haproxy.cfg

Wir können die HAproxy-Konfiguration von hier kopieren, außer dass diese drei Zeilen geändert werden müssen:

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

Die hervorgehobenen Teile müssen mit Ihren Hostnamen und Ihren Adressen geändert werden. Als nächstes müssen wir firewalld auf dem Haproxy-Server starten und Ports zulassen, die wir verwenden müssen

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

Danach müssen wir die Firewall neu laden

firewall-cmd --reload

Starten Sie zuletzt haproxy

systemctl start haproxy

Die Einrichtung ist erledigt, die wir nun testen müssen.

HAproxy testen

Lassen Sie uns einfach den Browser auf die öffentliche IP-Adresse des HAproxy-Servers auf Port 9000 verweisen:

Alle Knoten sind online. Als nächstes installieren wir den Percona-Client auf dem Haproxy-Server, damit wir versuchen können, den Cluster von dort aus abzufragen.

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

Und versuchen wir zu sehen, ob wir eine Abfrage von diesem Haproxy-Server haben können:

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

Schlussfolgerung

Wir haben den 3-Knoten-Cluster von Percona XtraDB mit Lastausgleich durch HAproxy eingerichtet. Es ist ein ähnliches Setup wie der Artikel von letzter Woche mit MariaDB und Galera, aber mit Percona-Speicher-Engine und ohne WordPress. Dieses Percona-Setup kann verwendet werden, um eine Vielzahl von Datensätzen zu hosten, unter anderem können Sie es wieder mit WordPress verwenden, wie in unserem vorherigen Artikel. Damit schließen wir diesen Artikel ab, vielen Dank fürs Lesen und einen schönen Tag noch.


Cent OS
  1. So installieren Sie den Percona XtraDB-Cluster unter CentOS 7

  2. So installieren Sie Percona Server auf CentOS 7

  3. So richten Sie Pure-FTPD mit MySQL unter CentOS und RedHat ein

  4. So ersetzen Sie MySQL durch MariaDB unter CentOS 6

  5. So richten Sie die MySQL-Replikation unter CentOS ein

So richten Sie MariaDB Galera Cluster mit HAproxy unter CentOS 7 ein

So richten Sie MySQL mit Docker unter Linux ein

So erstellen Sie einen Aktiv-Aktiv-Aktiv-Cluster mit RHEL 8 und Percona MySQL

So richten Sie die MySQL-Replikation in RHEL/Centos ein

So richten Sie einen Redis-Cluster in CentOS 8 ein – Teil 3

So richten Sie HAProxy unter CentOS 8 ein