Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Alta disponibilidade em um orçamento apertado - Implantando um cluster MySQL Galera mínimo de dois nós


Recebemos regularmente perguntas sobre como configurar um cluster Galera com apenas 2 nós.

A documentação afirma claramente que você deve ter pelo menos 3 nós Galera para evitar o particionamento da rede. Mas há alguns motivos válidos para considerar uma implantação de 2 nós, por exemplo, se você deseja obter alta disponibilidade de banco de dados, mas tem um orçamento limitado para gastar em um terceiro nó de banco de dados. Ou talvez você esteja executando o Galera em um ambiente de desenvolvimento/sandbox e prefira uma configuração mínima.

Galera implementa um algoritmo baseado em quorum para selecionar um componente primário através do qual impõe consistência. O componente primário precisa ter a maioria dos votos, portanto, em um sistema de 2 nós, não haveria maioria resultando em cérebro dividido. Felizmente, é possível adicionar um garbd (Galera Arbitrator Daemon), que é um daemon sem estado leve que pode atuar como um nó ímpar. A falha do árbitro não afeta as operações do cluster e uma nova instância pode ser reanexada ao cluster a qualquer momento. Pode haver vários árbitros no cluster.

O ClusterControl tem suporte para implantar garbd em hosts que não são de banco de dados.

Normalmente, um cluster Galera precisa de pelo menos três hosts para ser totalmente funcional, no entanto, no momento da implantação, dois nós seriam suficientes para criar um componente primário. Aqui estão os passos:
  1. Implante um cluster Galera de dois nós,
  2. Depois que o cluster for implantado pelo ClusterControl, adicione garbd no nó ClusterControl.

Você deve terminar com a configuração abaixo:

Implantar o Galera Cluster


Vá para a seção Implementação do ClusterControl para implementar o cluster.

Após selecionar a tecnologia que queremos implantar, devemos especificar Usuário, Chave ou Senha e porta para conectar por SSH aos nossos hosts. Também precisamos do nome do nosso novo cluster e se queremos que o ClusterControl instale o software e as configurações correspondentes para nós.

Após configurar as informações de acesso SSH, devemos selecionar o fornecedor/versão e devemos definir a senha de administrador do banco de dados, datadir e porta. Também podemos especificar qual repositório usar.

Mesmo que o ClusterControl avise que um cluster Galera precisa de um número ímpar de nós, adicione apenas dois nós ao cluster.

A implantação de um cluster Galera acionará um trabalho ClusterControl que pode ser monitorado na página Trabalhos.

Instalar Garbd


Quando a implantação estiver concluída, instale o garbd no host ClusterControl. Temos a opção de implantar garbd do ClusterControl, mas essa opção não funcionará se quisermos implantá-lo no mesmo servidor ClusterControl. Isso é para evitar alguns problemas relacionados às versões do banco de dados e dependências de pacotes.

Portanto, devemos instalá-lo manualmente e, em seguida, importar o garbd para o ClusterControl.

Vamos ver a instalação manual do Percona Garbd no CentOS 7.

Crie o arquivo de repositório Percona:
$ vi /etc/yum.repos.d/percona.repo
[percona-release-$basearch]
name = Percona-Release YUM repository - $basearch
baseurl = http://repo.percona.com/release/$releasever/RPMS/$basearch
enabled = 1
gpgcheck = 0
[percona-release-noarch]
name = Percona-Release YUM repository - noarch
baseurl = http://repo.percona.com/release/$releasever/RPMS/noarch
enabled = 1
gpgcheck = 0
[percona-release-source]
name = Percona-Release YUM repository - Source packages
baseurl = http://repo.percona.com/release/$releasever/SRPMS
enabled = 0
gpgcheck = 0

Em seguida, instale o pacote garbd do Percona XtraDB Cluster:
$ yum install Percona-XtraDB-Cluster-garbd-57

Agora, precisamos configurar o garbd. Para isso, precisamos editar o arquivo /etc/sysconfig/garb:
$ vi /etc/sysconfig/garb
# Copyright (C) 2012 Codership Oy
# This config file is to be sourced by garb service script.
# A comma-separated list of node addresses (address[:port]) in the cluster
GALERA_NODES="192.168.100.192:4567,192.168.100.193:4567"
# Galera cluster name, should be the same as on the rest of the nodes.
GALERA_GROUP="Galera1"
# Optional Galera internal options string (e.g. SSL settings)
# see http://galeracluster.com/documentation-webpages/galeraparameters.html
# GALERA_OPTIONS=""
# Log file for garbd. Optional, by default logs to syslog
# Deprecated for CentOS7, use journalctl to query the log for garbd
# LOG_FILE=""

Altere o parâmetro GALERA_NODES e GALERA_GROUP de acordo com a configuração dos nós Galera. Também precisamos remover a linha # REMOVER ISTO APÓS A CONFIGURAÇÃO antes de iniciar o serviço.

E agora, podemos iniciar o serviço de vestimenta:
$ service garb start
Redirecting to /bin/systemctl start garb.service

Agora, podemos importar o novo garbd para o ClusterControl.

Vá para ClusterControl -> Selecionar Cluster -> Adicionar Balanceador de Carga.

Em seguida, selecione a seção Garbd e Importar Garbd.

Aqui só precisamos especificar o nome do host ou endereço IP e a porta do novo Garbd.

A importação do garbd acionará um trabalho do ClusterControl que pode ser monitorado na página Trabalhos. Depois de concluído, você pode verificar se o garbd está sendo executado com um ícone de visto verde na barra superior:

É isso!

Nosso cluster Galera mínimo de dois nós está pronto!