GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit Percona Cluster s HAproxy Loadbalancer na CentOS 7

Dříve jsme si ukázali, jak nastavit cluster MariaDB Galera s HAproxy, a dnes provedeme podobné nastavení s distribucí MySQL společnosti Percona. Percona je společnost, která má hluboké zkušenosti s MySQL a MongoDB a vyrábí své vlastní distribuce těchto databází, stejně jako úložiště pro obě databáze. Dnes se zaměříme pouze na MySQL, nikoli na nabídku MongoDB této společnosti.

Nastavení hostitelů, firewallu a úložišť

První spuštění nastavením souboru hosts. Máme tři uzly pro cluster Percona a jeden uzel pro HAproxy. Můj soubor hostitelů na všech 4 serverech má tyto čtyři řádky:

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

Dále umožňuje nastavit firewall na všech hostitelích kromě HAproxy. Ten bude vyžadovat jiná nastavení a my uděláme to druhé. Nejprve spusťte firewall na všech třech percona uzlech.

systemctl start firewalld

Poté povolíme službu mysql. Pecona je distribuce mysql, takže používá stejný port jako mysql.

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

Dále přidáme další potřebné porty:

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
 

A znovu načtěte firewall

 firewall-cmd --reload

Až to bude hotové, dále musíme nainstalovat epel release

yum install epel-release

Dále nainstalujeme socat z úložiště EPEL

yum install socat

A pak odstraníme mariadb-libs, protože je v konfliktu s percona

yum remove mariadb-libs

Instalace a nastavení Percona

Potřebujeme přidat úložiště obsahující percona

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

Nyní můžeme nainstalovat percona cluster a všechny ostatní závislosti

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

A spusťte mysql

systemctl start mysql

První věc, kterou děláme na všech serverech mysql, je spuštění skriptu mysql_secure_installation. Tak pojďme na to.

mysql_secure_installation

Musíte zadat své nové root heslo a odpovědět y na všechny otázky.

Po dokončení se přihlaste ke svému účtu root

mysql -u root -p

enter password

A vytvořte sstuser svůj 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)

Poté musíme zastavit Mysql, abychom mohli upravit konfigurační soubory.

systemctl stop mysql

nano /etc/my.cnf

V konfiguraci najděte tyto řádky a upravte je, aby vypadaly přesně takto, pouze změňte své vlastní heslo a změňte název uzlu a adresu uzlu na název hostitele pro každý 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

Všimněte si, že první řádek na prvním serveru (centos-percona01) může být prázdný, například takto:

wsrep_cluster_address = gcomm://

Po dokončení konfigurace musíme zavést první uzel a pak normálně spustit druhý a třetí.

Při prvním spuštění serveru

systemctl start mysql@bootstrap

při druhém a třetím spuštění

systemctl start mysql

Dále musíme otestovat, zda cluster funguje.

mysql -u root -p

zadejte heslo

A pak spusťte tyto příkazy:

SHOW STATUS LIKE 'wsrep_local_state_comment';

show global status like 'wsrep_cluster_size';

Měli by vám poskytnout výstup takto:

Tímto je nastavení clusteru dokončeno.

Nastavení HAproxy

Nejprve potřebujeme nainstalovat clustercheck na všechny uzly clusteru, aby byl cluster provozuschopný pomocí HAproxy. Pojďme získat skript pomocí wget

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

Skript musí být proveden jako spustitelný a přesunut do jednoho z vašich adresářů $PATH.

chmod +x clustercheck

mv clustercheck /usr/bin/

Nyní také potřebujeme mysqlchk, který je součástí balíčku xinetd:

yum install xinetd

Dále přesuneme vytvoření uživatele clustercheck na databázi. Můžeme to zadat pouze na prvním uzlu

mysql -u root -p

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

exit;

Dále můžeme otestovat, zda clustercheck funguje podle očekávání:

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

Percona XtraDB Cluster Node is synced.

Dále se přesuneme do konfigurace xinetd, xinetd je třeba přidat do seznamu služeb.

nano /etc/services

Použijeme CTRL-W k nalezení části, kde je port 9200, poté chválíme služby, které tento port používají, a místo toho přidáme nový řádek. Musí to vypadat takto:

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

Po dokončení uložíme. Všimněte si, že to musí mít všechny uzly clusteru kromě HAproxy.

Nyní je čas se přihlásit na náš server HAporoxy. Nejprve musíme zálohovat konfiguraci haproxy.

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

Poté vyrobíme nový z čisté břidlice

nano /etc/haproxy/haproxy.cfg

Můžeme odtud zkopírovat konfiguraci HAproxy, kromě toho, že je třeba změnit tyto tři řádky:

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

Zvýrazněné části je třeba změnit s vašimi názvy hostitelů a vašimi adresami. Dále musíme spustit firewalld na haproxy serveru a povolit porty, které potřebujeme použít

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

Poté musíme znovu načíst firewall

firewall-cmd --reload

Konečně začněte haproxy

systemctl start haproxy

Nastavení je hotové, nyní musíme otestovat.

Testování HAproxy

Ukažme prohlížeč na veřejnou IP adresu HAproxy serveru na portu 9000:

Všechny uzly jsou online. Dále nám umožní nainstalovat klienta percona na haproxy server, abychom se odtud mohli pokusit dotazovat na cluster.

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

A zkusme zjistit, jestli můžeme mít dotaz z tohoto haproxy serveru:

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

Závěr

Nastavili jsme 3 uzlový cluster zátěže Percona XtraDB vyváženou pomocí HAproxy. Je to podobné nastavení jako minulý týden v článku s MariaDB a Galera, ale s úložištěm Percona a bez WordPressu. Toto nastavení Percona lze použít k hostování velmi široké škály datových sad, mimo jiné jej můžete opět použít s WordPress, jako v našem předchozím článku. Tímto uzavíráme tento článek, děkujeme za přečtení a přejeme hezký den.


Cent OS
  1. Jak nainstalovat Percona XtraDB Cluster na CentOS 7

  2. Jak nastavit Opencart na Rocky Linux/Centos 8 s Apache, PHP, Mysql (LAMP Stack)

  3. Jak nahradit MySQL za MariaDB na CentOS 6

  1. Jak nainstalovat Percona Server na CentOS 7

  2. Jak nastavit Pure-FTPD s MySQL na CentOS a RedHat

  3. Jak nastavit replikaci MySQL na CentOS

  1. Jak nastavit FTP server s VSFTPD na CentOS 7

  2. Jak nastavit FTP server s VSFTPD na CentOS 8

  3. Jak nastavit Riak KV NoSQL Database Cluster na CentOS 7