GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar Percona Cluster con HAproxy Loadbalancer en CentOS 7

Anteriormente mostramos cómo configurar el clúster MariaDB Galera con HAproxy, y hoy haremos una configuración similar con la distribución de MySQL de Percona. Percona es la empresa que tiene una gran experiencia con MySQL y MongoDB, y hacen sus propias distribuciones de esas bases de datos, así como motores de almacenamiento para ambas bases de datos. Hoy solo nos concentraremos en MySQL, y no en la oferta de MongoDB de esta empresa.

Configuración de hosts, cortafuegos y repositorios

Primero comience configurando el archivo de hosts. Tenemos tres nodos para el clúster de Percona y un nodo para HAproxy. Mi archivo de hosts en los 4 servidores tiene esas cuatro líneas:

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

A continuación, configuremos el cortafuegos en todos los hosts excepto en HAproxy uno. Ese requerirá diferentes configuraciones y lo haremos después. Primero, iniciemos firewalld en los tres nodos de percona.

systemctl start firewalld

Entonces permitimos el servicio mysql. Pecona es una distribución mysql, por lo que usa el mismo puerto que mysql.

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

A continuación, agregamos otros puertos necesarios:

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
 

Y recargar el cortafuegos

 firewall-cmd --reload

Cuando haya terminado, a continuación, debemos instalar epel release

yum instalar epel-release

A continuación instalamos socat desde el repositorio de EPEL

yum install socat

Y luego eliminamos mariadb-libs porque entra en conflicto con percona

yum remove mariadb-libs

Instalación y configuración de Percona

Necesitamos agregar un repositorio que contenga percona

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

Ahora podemos instalar percona cluster y todas las demás dependencias

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 inicie mysql

systemctl start mysql

Lo primero que hacemos en todos los servidores mysql es ejecutar el script mysql_secure_installation. Así que hagámoslo.

mysql_secure_installation

Debe ingresar su nueva contraseña raíz y responder y a todas las preguntas.

Cuando haya terminado, inicie sesión en su cuenta raíz

mysql -u root -p

enter password

Y crea sstuser tu clúster

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)

Luego de esto debemos detener Mysql para editar los archivos de configuración.

systemctl stop mysql

nano /etc/my.cnf

En la configuración, encuentre esas líneas y haga que se vean exactamente así, simplemente cámbielas por su propia contraseña y cambie el nombre del nodo y la dirección del nodo a su nombre de host para cada servidor

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

Tenga en cuenta que la primera línea en el primer servidor (centos-percona01) puede estar vacía, así:

wsrep_cluster_address = gcomm://

Una vez realizada la configuración, necesitamos arrancar el primer nodo y luego, normalmente, iniciar el segundo y el tercero.

En la primera ejecución del servidor

systemctl start mysql@bootstrap

en la segunda y tercera carrera

systemctl start mysql

A continuación, debemos probar si el clúster está funcionando.

mysql -u raíz -p

ingrese la contraseña

Y luego ejecute estos comandos:

SHOW STATUS LIKE 'wsrep_local_state_comment';

show global status like 'wsrep_cluster_size';

Deberían obtener un resultado como este:

Con esta configuración del clúster se concluye.

Configuración de proxy HA

Primero, necesitamos que se instale clustercheck en todos los nodos del clúster para que el clúster pueda repararse con HAproxy. Obtengamos el script con wget

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

El script debe convertirse en ejecutable y moverse a uno de sus directorios $PATH.

chmod +x clustercheck

mv clustercheck /usr/bin/

Ahora también necesitamos mysqlchk que está incluido en el paquete xinetd:

yum install xinetd

A continuación, movemos crear un usuario de verificación de clúster en la base de datos. Podemos escribir esto solo en el primer nodo

mysql -u root -p

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

exit;

A continuación, podemos probar si clustercheck funciona como se esperaba:

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

Percona XtraDB Cluster Node is synced.

A continuación, pasamos a la configuración de xinetd, xinetd debe agregarse a la lista de servicios.

nano /etc/services

Usamos CTRL-W para encontrar la parte donde está el puerto 9200, luego recomendamos los servicios que usan ese puerto y en su lugar agregamos una nueva línea. Tiene que verse así:

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

Después de que hayamos terminado guardamos. Tenga en cuenta que todos los nodos del clúster, excepto HAproxy, deben tener esto hecho.

Ahora es el momento de iniciar sesión en nuestro servidor HAporoxy. Primero necesitamos hacer una copia de seguridad de la configuración de haproxy.

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

Luego haremos uno nuevo desde cero

nano /etc/haproxy/haproxy.cfg

Podemos copiar la configuración de HAproxy desde aquí, excepto que estas tres líneas deben cambiarse:

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

Las partes resaltadas deben cambiarse con sus nombres de host y sus direcciones. A continuación, debemos iniciar firewalld en el servidor haproxy y permitir los puertos que necesitamos usar

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

Después de eso necesitamos recargar el firewall

firewall-cmd --reload

Por fin, inicia haproxy

systemctl start haproxy

La configuración ha terminado, ahora tenemos que probar.

Probando HAproxy

Apuntemos el navegador a la dirección IP pública del servidor HAproxy en el puerto 9000:

Todos los nodos están en línea. A continuación, instalemos el cliente percona en el servidor haproxy para que podamos intentar consultar el clúster desde allí.

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 intentemos ver si podemos tener una consulta de este servidor haproxy:

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

Conclusión

Hemos configurado el clúster de 3 nodos de Percona XtraDB balanceado por HAproxy. Es una configuración similar a la del artículo de la semana pasada con MariaDB y Galera, pero con el motor de almacenamiento Percona y sin WordPress. Esta configuración de Percona se puede usar para alojar una gran variedad de conjuntos de datos, entre otras cosas, puede volver a usarla con WordPress, como en nuestro artículo anterior. Con eso concluimos este artículo, gracias por leer y que tenga un buen día.


Cent OS
  1. Cómo instalar el clúster Percona XtraDB en CentOS 7

  2. Cómo instalar el servidor Percona en CentOS 7

  3. Cómo configurar Pure-FTPD con MySQL en CentOS y RedHat

  4. Cómo configurar Opencart en Rocky Linux/Centos 8 con Apache, PHP, Mysql (LAMP Stack)

  5. Cómo configurar la replicación de MySQL en CentOS

Cómo configurar MariaDB Galera Cluster con HAproxy en CentOS 7

Cómo configurar MySQL con Docker en Linux

Cómo construir un clúster activo-activo-activo con RHEL 8 y Percona MySQL

Cómo configurar la replicación de MySQL en RHEL/Centos

Cómo configurar un clúster de Redis en CentOS 8 - Parte 3

Cómo configurar HAProxy en CentOS 8