Instalación de Percona Cluster en RedHat 7 - Parte I

Con este artículo damos inicio a una serie de cuatro en donde aprenderemos como instalar un cluster de base de datos en alta disponibilidad, este modelo resulta muy interesante para sitios de alto tráfico.

Generalidades y preparación de máquinas

La agrupación en clústeres se utiliza para lograr una alta disponibilidad (HA) en muchas formas y se usa ampliamente en tecnologías de bases de datos para cumplir con el tiempo de actividad del servicio y equilibrar la carga de las solicitudes de los clientes. 

En la siguiente serie de artículos les presentaremos como instalar y configurar un Clúster de base de datos MYSQL bajo la tecnología Galera, que nos permite tener más de un servidor que admita lectura y escritura y de esta forma reducir el cuello de botella en aquellas aplicaciones que tienen escritura intensiva en base de datos, para este caso haremos uso de Percona XtraDB Cluster sobre una distribución RedHat 7 de Linux y un servidor HAProxy para balancear la carga entre todos los nodos.

Percona XtraDB Cluster es una solución de código abierto optimizada por la compañía Percona y tiene la bondad de estar diseñada para ofrecer un buen rendimiento además que es totalmente compatible con MYSQL y MariaDB.

En la siguiente gráfica se da una idea de lo que se quiere lograr:

Imagen blog

Podemos observar cómo un grupo de servidores Web se conectan a un grupo de servidores de bases de datos en MYSQL a través de un balanceador de carga, de tal forma que una sentencia INSERT podría caer en cualquiera de ellos y el resto se sincronizará con este, así evitamos el común cuello de botella de los modelos PRINCIPAL-SECUNDARIO.

En esta serie de artículos se asume que ya cuenta con unos servidores web configurados así que nos concentraremos en el cluster de base de datos y su balanceador.

Infraestructura usada

Si bien, esta es la infraestructura que hemos usado para esta instalación, esta puede variar de acuerdo a sus requerimientos en cuanto a Hardware, en software si es necesario que se mantenga en las mismas para evitar incompatibilidades, quizá solo se espera compatibilidad entre Redhat y Centos en sus versiones equivalentes.

  • Cuatro (4) máquinas Linux
  • RAM: 4 GB
  • Core CPU: 4
  • Disco:
    • 50 GB para Sistema operativo y aplicaciones base
    • 50 GB para base de datos y logs
  • Comunicación de alta velocidad vía Red local entre las máquinas (Recomendado 1 Gbps)
  • Acceso como root a las máquinas

Resolución de las máquinas por nombre

Para los servidores de bases de datos vamos a asignar un nombre que nos permita identificarlas fácilmente en las tareas que se van a realizar, si en su red ya cuenta con un DNS interno, este paso puede que no sea necesario.

En cada una de las máquinas se edita el archivo /etc/hosts y se agregan las siguientes líneas:

Imagen codiga 1

Imagen codiga 2

Instalación de repositorio EPEL

EPEL es necesario para poder contar con algunos paquetes. Ejecute los siguientes comandos en cada una de las máquinas

Imagen codiga 3

Desactivar SELinux

Si bien en este escenario vamos a desactivar SELinux por practicidad en esta demostración, es sabido que en términos de seguridad es mejor mantenerlo habilitado estableciendo las reglas necesarias a fin de encapsular las aplicaciones, hecha esta salvedad, continuamos.

Realicé esta tarea en cada una de las cuatro máquinas.

Imagen codiga 5

Obtiene como resultado.

Imagen codiga 6

Esto quiere decir SELinux está activo, edite el archivo de configuración con el siguiente comando.

Imagen codiga 7

Y el valor SELINUX cámbielo a disabled

Imagen codiga 8

Reinicie la máquina y continúe con el siguiente paso.

Desactivación de firewall

Al igual que con SELINUX, para efectos de esta demostración, deshabilitamos el firewall de las máquinas, sin embargo nuestra recomendación es mantenerlo activo para mantener un perímetro de seguridad desde la misma máquina.

En las tres máquinas. Se desactiva el firewall por defecto para facilitar la comunicación entre ellas. 


Se desactiva el servicio de arranque.

Imagen codiga 9

Se detiene el servicio.

Imagen codiga 10

Se verifica el estado actual

Imagen codiga 11

El resultado del último comando debería evidenciar que el servicio no está activo

Imagen codiga 12

Eliminación de paquetes MariaDB por defecto

El sistema operativo puede traer instalado por defecto un MariaDB desde los repositorios de la distribución, en las tres máquinas vamos a removerlo.

Imagen codiga 13

Instalación de repositorio de Centos

En este caso no estamos usando un RedHat con soporte registrado por lo que se tiene acceso a repositorios limitados, requerimos algunos paquetes de esos repositorios por lo tanto para solucionarlo haremos uso del repositorio de centos

Agregamos el repositorio en cada una de las máquinas

Imagen codiga 14

Este es el contenido a agregar al archivo.

Imagen codiga 15

De esta forma tenemos listos los repositorios necesarios para proceder con la instalación.

Este es solo el principio, en la siguiente entrega veremos la Instalación de Percona XtraDB Cluster.

Si desea leer la segunda y tercera  parte de este artículo le dejamos aquí los links:

https://www.seedem.co/es/blog/instalacion-de-percona-cluster-en-redhat-7-parte-ii

https://www.seedem.co/es/blog/instalacion-de-percona-cluster-en-redhat-7-parte-iii

https://www.seedem.co/es/blog/instalacion-de-percona-cluster-en-redhat-7-parte-iv

 

Aldibier_Morales