Antes de seguir con la instalación y configuración de galera y rsync esté ultimo lo usaremos como método para las transferencias de instantáneas debe verificar que este funcionando Mariadb y luego detenerlo.
Verificar el estado de MariaDB:
systemctl status mariadb
Si tienes algún problema con MariaDB debes solucionarlo antes de seguir con este tutorial.
Detener MariaDB:
systemctl stop mariadb
INSTALAR GALERA CLUSTER Y RSYNC
yum install galera rsync
configurar galera cluster
Editamos el archivo /etc/my.cnf.d/server.cnf y agregamos las siguientes líneas:
vi /etc/my.cnf.d/server.cnf
[galera] wsrep_on=ON wsrep_provider=/usr/lib64/galera/libgalera_smm.so # Agrega los nodos involucrados en la replica wsrep_cluster_address="gcomm://[IP],[IP],[IP]" binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 # Nombre del Cluster wsrep_cluster_name="mi_cluster" # Permite al server aceptar conexiones de todas las interfaces bind-address=0.0.0.0 # Ip del nodo wsrep_node_address="[IP Maquina]" # El nombre del nodo wsrep_node_name="[Nombre Nodo]" wsrep_sst_method=rsync
Vamos a explicar la configuración:
wsrep_on | Define si se replica o no las actualizaciones en el clúster. No hace que el nodo abandone el clúster y el nodo continua comunicándose con otros nodos. Sus valores pueden ser ON o OFF y su valor por defecto es ON. |
wsrep_provider | Define la ruta de replicación del Plugin de galera para que se habiliten las funciones de replicación. |
wsrep_cluster_address | Galera Cluster utiliza este parámetro para determinar las direcciones IP y puertos de los otros nodos del clúster. «gcomm://[IP],[IP],[IP]» «gcomm://[IP]:[PORT],[IP]:[PORT],[IP]:[PORT]» Nota: el puerto es opcional. Ejemplos: wsrep_cluster_address = «gcomm://192.168.1.15,192.168.1.20,192.168.1.25» wsrep_cluster_address = «gcomm://192.168.1.15:4567,192.168.1.20:4567,192.168.1.25:4567» |
binlog_format | Se utiliza para definir un registro binario que se encarga de registrar todos los cambios en las bases de datos, tanto los datos como la estructura. Consiste en un conjunto de archivos de registro binarios y un índice. Es necesario para la replicación y también se puede utilizar para restaurar datos después de una copia de seguridad. Los valores aceptados son: STATEMENT: Registro basado en instrucciones (Por defecto) ROW: Registro basado en filas MIXED: Registro mixto Al establecer formato de registro binario para usar la replicación a nivel de fila las instrucciones DML (inserción, actualización o eliminación) se registran en un binario por separado y las instrucciones DDL(estructura de la base de datos) se siguen registrando en el registro binario. NOTA: El registro basado en filas utiliza más almacenamiento que los otros formatos de registro, pero es el más seguro de usar por favor no cambie este valor luego de definirlo, ya que afecta al rendimiento y la coherencia. |
default_storage_engine | Galera Cluster no funcionará con MyISAM ni con otros motores de almacenamiento no transaccionales. Su valor por defecto es InnoDB pero para asegurarnos lo asignamos manualmente. |
innodb_autoinc_lock_mod | Los valores permitidos para el modo de bloqueo son: 0: tradicional 1: consecutivo 2: intercalado Al establecerse en 2 cuando binlog_format es ROW junto con las instrucciones intercaladas permite que las instrucciones INSERT no utilicen el bloqueo AUTO-INC de nivel de tabla lo que posibilita que varias instrucciones puedan ejecutarse al mismo tiempo, pero como desventaja los valores generados para las filas insertadas pueden no ser consecutivos, aunque cabe recalcar que es la manera mas segura para usar con registros basados en filas ROW. |
wsrep_cluster_name | Este parámetro permite definir el nombre lógico que utiliza el nodo para el clúster. La conexión solo se realiza si los nombres coinciden en todos los nodos. Si no coinciden, la conexión falla. |
bind-address | bind-address con el valor 0.0.0.0 permite conectarse al servidor a través de cualquier interfaz de red con lo cual el servidor puede conectarse con el exterior. Nota: por defecto los motores de base de datos mencionados se conectan, por seguridad, a la interfaz de red «Loopback». De esta manera no nos podemos conectar a la base de datos desde el exterior. |
wsrep_node_address | Este parámetro se utiliza para anotar la dirección IP y el puerto del nodo el valor predeterminado es la dirección IP del servidor y el puerto 4567, en nuestro caso vamos a utilizar la dirección IP que nos asigna la VPN Zerotier. Ejemplos: wsrep_node_address=»192.168.1.15″ wsrep_node_address=»192.168.1.15:4567″ |
wsrep_node_name | Se establece el nombre lógico que utiliza el nodo en los registros y en el clúster. para identificarlo de manera fácil en el clúster por medios distintos a la dirección del nodo. De forma predeterminada, el nodo utiliza el nombre de host del servidor. |
wsrep_sst_method | Define el método o script que utiliza el nodo en una transferencia de instantáneas de estado, ósea una copia completa de datos de un nodo de clúster. De forma predeterminada se utiliza rsync, esta opción es mucho más rápida para grandes conjuntos de datos, aunque existe otras opciones que puedes profundizar en el siguiente enlace métodos admitidos en las transferencias de instantáneas de estado. |