Instalar Percona XtraDB Cluster 5.6

24 Marzo 2014 at 12:23 by Adrián Pérez

percona

Hace un tiempo, escribí sobre cómo instalar Percona XtraDB Cluster 5.5, de cara a tener una solución tipo cluster para MySQL basada en Galera. Los últimos días, he estado testeando la nueva versión de Percona XtraDB Cluster 5.6, y me he encontrado con algunas diferencias respecto a la instalación/configuración de la versión 5.5.

Requisitos

Para empezar, de cara a instalar Percona XtraDB Cluster 5.6, es necesario contar con socat instalado en todos los nodos del cluster antes de empezar a instalar Percona. En mi caso, en un Centos 6.5, me ha dado problemas la instalación desde sources, y finalmente lo he instalado desde un repositorio externo.

[root@myServer1]# cd /etc/yum.repos.d
[root@myServer1]# wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo

Fuente: http://www.convirture.com/wiki/index.php?title=C2_fedora_installation

Tras contar con socat, he podido instalar el cluster, igual que en la versión 5.5.

Configuración

Respecto a la configuración, en mi caso ha sido necesario añadir una nueva sección "client" al my.cnf de los tres servidores, además de mantener las secciones "mysql" y "mysqld" ya existentes y explicadas en el artículo de la versión 5.5:

[client]
 
# CLIENT #
port = 3306
socket = /data/mysql/mysql.sock

En realidad, en mi caso particular, he necesitado introducir esta sección porque no uso el datadir por defecto. Es probable que si estás usando el datadir por defecto (/var/lib/mysql) y el socket por defecto, no necesites añadir esta sección.

En mi caso, además, he modificado el parámetro wsrep_sst_method pasando de ser "xtrabackup" a "xtrabackup-v2"

wsrep_sst_method                = xtrabackup-v2

Con ésto, ya he podido trabajar con la versión 5.6 de Percona XtraDB Cluster.

Árbitro (garbd)

Finalmente, decir que la configuración que me funcionaba con un árbitro en la versión de Percona XtraDB Cluster 5.5, no me ha funcionado con el árbitro de la versión 5.6. Concretamente, con la siguiente versión de garbd he tenido problemas:

[root@myserver]# garbd --version
INFO: 3.3.r172

Para solucionarlo, he tenido que llegar a este bug, donde comentan qué hacer. La solución pasa por, en lugar de ejecutar el árbitro tal y como se indicaba en el artículo de la versión 5.5, así...

[root@myserver]# /usr/bin/garbd --cfg /etc/default/garb.cfg --daemon

... debemos ejecutarlo con el parámetro gmcast.listen_addr indicando la IP:puerto por la que escuchará el árbitro, tal que así:

[root@myserver]# /usr/bin/garbd --cfg /etc/default/garb.cfg --daemon -o gmcast.listen_addr=tcp://192.168.0.23:4567

Con ésto, tendremos nuestro árbitro (si es que lo necesitábamos porqué no hemos podido conseguir un número impar de servidores para el cluster) corriendo y funcionando.
¡Ah! Para finalizar un apunto que no tiene que ver con la versión 5.6: también he aprovechado para configurar el cifrado de los datos que se replican, siguiendo éste fantástico manual: http://www.mysqlperformanceblog.com/2013/05/03/percona-xtradb-cluster-for-mysql-and-encrypted-galera-replication/