Base de Conhecimento

Configurar MariaDB + Galera Cluster imprimir

  • 0

O que é o MariaDB Galera Cluster?

MariaDB Galera Cluster é um cluster multi-master síncrono para MariaDB. Está disponível somente para o sistema operacional Linux e até a versão atual (10.1) somente suporta a engine de armazenamento XtraDB/InnoDB.

Cenário

No tutorial a seguir será utilizado:

  • A versão 10.1 do MariaDB;
  • 3 Servidores com CentOS 7 e 1GB de RAM para os nós do cluster;
    • MariaDB-01: 192.168.1.1/24
    • MariaDB-02: 192.168.1.2/24
    • MariaDB-03: 192.168.1.3/24

Nada impede que a configuração seja feita em outra versão de sistema operacional.

Pre-requisitos

  • Desative o SElinux abrindo o arquivo /etc/selinux/config e alterando a linha SELINUX=xxxx para SELINUX=disabled.
  • Desativar o Firewall ou crie as regras necessárias.
  • Atualize o sistema operacional com yum update.
  • Adicione um IP Fixo na máquina editando o arquivo /etc/sysconfig/network-scripts/ifcfg-XXXConforme abaixo:
DEVICE=eth0
TYPE=Ethernet
IPADDR=192.168.1.1
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
ONBOOT=yes
  • Altere o hostname da máquina seguindo suas configurações de DNS ou arquivo /etc/hosts/ (Teste a conectividade entre os nós com pings). Utilize o comando hostname set-hostname NOME_DO_SERVER
  • Caso exista o MySQL instalado siga os passos abaixo.
    • Desinstale os bancos existentes com sudo yum erase mysql-server mysql mysql-devel
    • Apague a pasta do mysql com sudo rm –rf /var/lib/mysql/
    • Mate os processos do mysql (caso existam).

Instalando e configurando o MariaDB

  • Todos os comandos abaixo devem ser executados nos 3 nós do cluster como root.
  • Adicione o repositório do MariaDB para a versão do seu sistema operacional (O mesmo pode ser conseguido na neste link). Neste tutorial utilizaremos o sistema operacional CentOS 7 com MariaDB 10.1, por isso devemos prosseguir da seguinte forma:
    • Crie o arquivo de repositório /etc/yum.repos.d/MariaDB.repo e insira o conteúdo abaixo:

# MariaDB 10.1 CentOS repository list - created 2016-07-22 17:17 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

  • Instale o MariaDB com o comando yum install MariaDB-server MariaDB-client rsync galera
  • Inicie o serviço do MariaDB com /etc/init.d/mysql start
  • Realize as configurações iniciais com o comando /usr/bin/mysql_secure_installation

Configurando o Galera Cluster

  • Pare o serviço do MySQL com service mysql stop
  • Edite as configurações do Galera com vi /etc/my.cnf.d/server.cnfInsira as configurações abaixo:

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.1,192.168.1.2,192.168.1.3"
wsrep_cluster_name="My_Galera_Cluster"
wsrep_node_address="192.168.1.1"
wsrep_node_name="MariaDB-01"
wsrep_sst_method=rsync

 

binlog_format=row
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
datadir=/var/lib/mysql
innodb_log_file_size=100M
innodb_file_per_table
innodb_flush_log_at_trx_commit=2

  • Altere a linha wsrep_cluster_address para todos os IPS dos nós do cluster, separados por “,”.
  • Altere a linha wsrep_cluster_name para o nome que deseja dar ao cluster.
  • As linhas wsrep_node_name e wsrep_node_address devem ser alteradas de acordo com o nó em que as configurações estão sendo feitas.
  • Por último a linha wsrep_sst_auth deve ter o usuário e a senha criada para o galera, separados por “:”.
  • Com a linha wsrep_sst_method=rsync informamos que iremos utilizar o rsync para efetuar a sincronização. Desta forma iremos obter uma sincronização muito mais rápida e nao haverá a necessidade de utilizar usuário de replicação.

Iniciando o Cluster

  • Inicie o primeironó do cluster com MySQL com o comandogalera_new_cluster, os demais nós podem ser iniciados normalmente com systemctl start mariadb
  • Para checar se o host está no cluster digite o comando mysql –u root –p –e “show status like ‘wsrep%’”Busque pelas linhaswsrep_incoming_addresses e wsrep_ready.
  • Vale ressaltar que quando um nó é iniciado ele não permite qualquer conexão com o banco até que a sincronização esteja terminada.
  • Podemos verificar se a sincronização está ocorrendo com o comandotop e verificando um consumo elevado de processamento pelo processo rsync

Dica

  • O Galera Cluster irá replicar somente tabelas que utilizam a engine InnoDB. Para verificar se as tabelas de uma determinada database estão em InnoDB utilize o comando

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'NOME_DO_DB';

Pronto


Esta resposta lhe foi útil?
« Retornar