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:
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:
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
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.
Obtiene como resultado.
Esto quiere decir SELinux está activo, edite el archivo de configuración con el siguiente comando.
Y el valor SELINUX cámbielo a disabled
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.
Se detiene el servicio.
Se verifica el estado actual
El resultado del último comando debería evidenciar que el servicio no está activo
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.
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
Este es el contenido a agregar al archivo.
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