MariaDB Cluster é um sistema de replicação Multi Master construído a partir do MariaDB Server, MySQL wsrep patch e Galera wsrep Provider.
O Galera é baseado no método de replicação síncrona (ou ‘virtualmente síncrona’), que garante que os dados sejam aplicados a outros nós antes de serem confirmados. Ter os mesmos dados em todos os nós significa que as falhas dos nós podem ser facilmente toleradas e nenhum dado é perdido. Também é mais fácil fazer failover para outro nó, pois todos os nós estão atualizados com os mesmos dados. É justo dizer que o MariaDB Cluster é uma solução de alta disponibilidade que pode alcançar alto tempo de atividade para organizações com contratos de nível de serviço de banco de dados rígidos.
Além de gerenciar alta disponibilidade, também pode ser usado para dimensionar o serviço de banco de dados e expandir o serviço para várias regiões.
Implantação de cluster MariaDB
O MariaDB Cluster no ClusterControl é realmente simples e está disponível gratuitamente na Community Edition. Você pode passar por “Deploy”, escolher MySQL Galera como mostrado abaixo:
Preencha o usuário SSH e as informações de credencial, nome do cluster que você deseja usar e depois Continuar.
Escolha MariaDB como o fornecedor do banco de dados que deseja instalar. Diretório de dados do servidor, porta do servidor pode usar a configuração padrão, a menos que você defina uma configuração específica. Preencha a senha do banco de dados Admin/Root e, finalmente, Adicionar nó para adicionar os endereços IP de destino dos nós do banco de dados.
Os nós Galera requerem pelo menos 3 nós ou você pode usar 2 nós de banco de dados e o Galera Arbiter configurados em um host separado.
Após o preenchimento de todos os campos, basta implantar o cluster. Ele acionará um novo trabalho para criar cluster, conforme mostrado abaixo:
Implantação em escala máxima
Maxscale é um balanceador de carga de banco de dados, proxy de banco de dados e firewall que fica entre seu aplicativo e os nós MariaDB. Alguns dos recursos do Maxscale são:
- Failover automático para alta disponibilidade
- Balanceamento de carga de tráfego (divisão de leitura e gravação)
- Controles de tráfego para consultas e conexões.
Existem duas maneiras de passar pela implantação do balanceador de carga, você pode “Adicionar balanceador de carga” no menu do cluster conforme mostrado abaixo:
Ou você pode ir para Manage -> Load Balancer. Ele irá para a mesma página, que é a página do Load Balancer. Escolha a guia "Maxscale" para implantação do balanceador de carga Maxscale:
Escolha o endereço do servidor, defina o nome de usuário e a senha do maxscale, você pode deixar o configuração padrão para Threads e porta de leitura/gravação. Inclua também os nós MariaDB a serem adicionados ao balanceador de carga. Você pode “Implantar MaxScale” para implantar o proxy de banco de dados MaxScale e balanceamento de carga.
A prática recomendada para tornar o balanceador de carga altamente disponível é configurar pelo menos 2 instâncias MaxScale em hosts diferentes.
Implantação mantida
Keepalived é um serviço daemon no linux usado para verificações de integridade e também usado para failover se um dos servidores estiver inativo. O mecanismo está usando o VIP (Endereço IP Virtual) para obter alta disponibilidade, consistindo em um servidor atuando como Mestre e o outro atuando como Backup.
A implantação do serviço Keepalived pode ser feita em Manage -> Load Balancer.
Escolha seu tipo de balanceador de carga, que é MaxScale. Atualmente, o ClusterControl oferece suporte a HAProxy, ProxySQL e MaxScale como balanceadores de carga que podem ser integrados ao Keepalived. Defina seu IP virtual (VIP) e interface de rede para o endereço IP virtual.
Depois disso, basta clicar em Deploy Keepalived. Ele acionará um novo trabalho para implantar Keepalived em ambos os hosts MaxScale.
A arquitetura final do MariaDB Cluster for High Availability consiste em 3 nós de banco de dados, 2 nó do balanceador de carga e um serviço keepalived na parte superior de cada balanceador de carga, conforme mostrado na topologia abaixo:
Conclusão
Mostramos como podemos implantar rapidamente um cluster MariaDB de alta disponibilidade com MaxScale e Keepalived via ClusterControl. Passamos pelas configurações de nós de banco de dados e nós de proxy. Para ler mais sobre o Galera Cluster, confira nosso tutorial online. Observe que o ClusterControl também oferece suporte a outros balanceadores de carga, como ProxySQL e HAProxy. Experimente-os e deixe-nos saber se você tiver alguma dúvida.