MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Implantação do MySQL Galera Cluster 4.0 no Amazon AWS EC2

O Galera Cluster é uma das soluções de alta disponibilidade mais populares para MySQL. É um cluster virtualmente síncrono, o que ajuda a manter o atraso de replicação sob controle. Graças ao controle de fluxo, o cluster Galera pode acelerar a si mesmo e permitir que mais nós carregados alcancem o restante do cluster. O lançamento recente do Galera 4 trouxe novos recursos e melhorias. Nós os abordamos na postagem do blog falando sobre o MariaDB 10.4 Galera Cluster e uma postagem no blog discutindo os recursos existentes e futuros do Galera 4.

Como funciona o Galera 4 quando usado no Amazon EC2? Como você provavelmente sabe, a Amazon oferece serviços de banco de dados relacionais, projetados para fornecer aos usuários uma maneira fácil de implantar banco de dados MySQL altamente disponível. Meu colega, Ashraf Sharif, comparou os tempos de failover para o RDS MySQL e o RDS Aurora em sua postagem no blog. Os tempos de failover para Aurora parecem realmente ótimos, mas existem mass. Em primeiro lugar, você é forçado a usar o RDS. Você não pode implantar o Aurora nas instâncias que gerencia. Se os recursos e opções existentes disponíveis no Aurora não forem suficientes para você, você não terá outra opção a não ser implantar algo por conta própria. Aqui entra Galera. Galera, ao contrário de Aurora, não é uma caixa preta proprietária. Ao contrário, é um software de código aberto, que pode ser usado livremente em todos os ambientes suportados. Você pode instalar o Galera Cluster no AWS Elastic Computing Cloud (EC2) e, por meio disso, construir um ambiente altamente disponível onde o failover é quase instantâneo:assim que detectar a falha do nó, você poderá se reconectar ao outro nó do Galera. Como implantar o Galera 4 no EC2? Neste post do blog, vamos dar uma olhada nisso e forneceremos um guia passo a passo mostrando qual é a maneira mais simples de fazer isso.

Implantando um cluster Galera 4 no EC2

O primeiro passo é criar um ambiente que usaremos para nosso cluster Galera. Vamos com as máquinas virtuais Ubuntu 18.04 LTS.

Vamos usar o tamanho da instância t2.medium para este blog publicar. Você deve dimensionar suas instâncias com base na carga esperada.

Vamos implantar três nós no cluster. Por que três? Temos um blog que explica como o Galera mantém a alta disponibilidade.

Vamos configurar o armazenamento para essas instâncias.


Também escolheremos o grupo de segurança adequado para os nós. Novamente, no nosso caso, o grupo de segurança é bastante aberto. Você deve garantir que o acesso seja limitado o máximo possível - apenas os nós que precisam acessar bancos de dados devem ter permissão para se conectar a eles.



Por fim, escolhemos um par de chave existente ou criamos um novo. Após esta etapa, nossas três instâncias serão lançadas.

Depois que estiverem ativos, podemos nos conectar a eles via SSH e começar a configurar o banco de dados.

Decidimos usar a convenção de nomenclatura 'node1, node2, node3', portanto, tivemos que editar /etc/hosts em todos os nós e listá-los ao lado de seus respectivos IPs locais. Também fizemos a mudança em /etc/hostname para usar o novo nome para nós. Feito isso, podemos começar a configurar nosso cluster Galera. No momento em que escrevo, o único fornecedor que fornece a versão GA do Galera 4 é o MariaDB com sua versão 10.4, portanto, usaremos o MariaDB 10.4 para nosso cluster. Vamos prosseguir com a instalação usando as sugestões e guias do site MariaDB.

Implantando um MariaDB 10.4 Galera Cluster

Começaremos preparando os repositórios:

wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup

bash ./mariadb_repo_setup

Nós baixamos o script que se destina a configurar os repositórios e o executamos para garantir que tudo esteja configurado corretamente. Isso configurou os repositórios para usar a versão mais recente do MariaDB, que, no momento da escrita, é 10.4.

[email protected]:~# apt update

Hit:1 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease

Hit:2 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease

Hit:3 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease

Hit:4 http://downloads.mariadb.com/MariaDB/mariadb-10.4/repo/ubuntu bionic InRelease

Ign:5 http://downloads.mariadb.com/MaxScale/2.4/ubuntu bionic InRelease

Hit:6 http://downloads.mariadb.com/Tools/ubuntu bionic InRelease

Hit:7 http://downloads.mariadb.com/MaxScale/2.4/ubuntu bionic Release

Hit:8 http://security.ubuntu.com/ubuntu bionic-security InRelease

Reading package lists... Done

Building dependency tree

Reading state information... Done

4 packages can be upgraded. Run 'apt list --upgradable' to see them.

Como você pode ver, os repositórios para MariaDB 10.4 e MaxScale 2.4 foram configurados. Agora podemos prosseguir e instalar o MariaDB. Faremos isso passo a passo, nó por nó. MariaDB fornece guia sobre como você deve instalar e configurar o cluster.

Precisamos instalar os pacotes:

apt-get install mariadb-server mariadb-client galera-4 mariadb-backup

Este comando instala todos os pacotes necessários para a execução do MariaDB 10.4 Galera. MariaDB cria um conjunto de arquivos de configuração. Adicionaremos um novo, que conterá todas as configurações necessárias. Por padrão, ele será incluído no final do arquivo de configuração, de modo que todas as configurações anteriores das variáveis ​​que definimos serão substituídas. Idealmente, depois, você editaria os arquivos de configuração existentes para remover as configurações que colocamos no galera.cnf para evitar confusão onde determinada configuração está configurada.

[email protected]:~# cat /etc/mysql/conf.d/galera.cnf

[mysqld]

bind-address=10.0.0.103

default_storage_engine=InnoDB

binlog_format=row

innodb_autoinc_lock_mode=2



# Galera cluster configuration

wsrep_on=ON

wsrep_provider=/usr/lib/galera/libgalera_smm.so

wsrep_cluster_address="gcomm://10.0.0.103,10.0.0.130,10.0.0.62"

wsrep_cluster_name="Galera4 cluster"

wsrep_sst_method=mariabackup

wsrep_sst_auth='sstuser:pa55'



# Cluster node configuration

wsrep_node_address="10.0.0.103"

wsrep_node_name="node1"

Quando a configuração estiver pronta, podemos começar.

[email protected]:~# galera_new_cluster

Isso deve inicializar o novo cluster no primeiro nó. Em seguida, devemos prosseguir com etapas semelhantes nos nós restantes:instale os pacotes necessários e configure-os tendo em mente que o IP local muda, então temos que alterar o arquivo galera.cnf de acordo.

Quando os arquivos de configuração estiverem prontos, temos que criar um usuário que será usado para o Snapshot State Transfer (SST):

MariaDB [(none)]> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'pa55';

Query OK, 0 rows affected (0.022 sec)

MariaDB [(none)]> GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';

Query OK, 0 rows affected (0.022 sec)

Devemos fazer isso no primeiro nó. Os nós restantes ingressarão no cluster e receberão o instantâneo de estado completo para que o usuário seja transferido para eles. Agora a única coisa que temos a fazer é iniciar os nós restantes:

[email protected]:~# service mysql start

[email protected]:~# service mysql start

e verifique se o cluster realmente foi formado:

MariaDB [(none)]> show global status like 'wsrep_cluster_size';

+--------------------+-------+

| Variable_name      | Value |

+--------------------+-------+

| wsrep_cluster_size | 3     |

+--------------------+-------+

1 row in set (0.001 sec)

Tudo está bem, o cluster está ativo e consiste em três nós Galera. Conseguimos implantar o MariaDB 10.4 Galera Cluster no Amazon EC2.