O ClusterControl facilita a implantação de uma configuração de banco de dados - basta preencher alguns valores (fornecedor do banco de dados, diretório de dados do banco de dados, senha e nomes de host) no assistente de implantação e pronto. As demais opções de configuração serão determinadas automaticamente (e calculadas) com base nas especificações do host (núcleos de CPU, memória, endereço IP etc.) e aplicadas ao arquivo de modelo que acompanha o ClusterControl. Nesta postagem de blog, veremos como o ClusterControl usa arquivos de modelo padrão e como os usuários podem personalizá-los de acordo com suas necessidades.
Arquivos de modelo básico
Todos os serviços configurados pelo ClusterControl usam um modelo de configuração base disponível em /usr/share/cmon/templates no nó ClusterControl. A seguir estão os arquivos de modelo fornecidos pelo ClusterControl v1.4.0:
Nome do arquivo | Descrição |
---|---|
config.ini.mc | Arquivo de configuração do cluster MySQL. |
haproxy.cfg | Modelo de configuração HAProxy para Galera Cluster. |
haproxy_rw_split.cfg | Modelo de configuração HAProxy para divisão de leitura-gravação. |
garbd.cnf | Arquivo de configuração do Galera arbitrator daemon (garbd). |
keepalived-1.2.7.conf | Arquivo de configuração keepalived legado (pré 1.2.7). Isso está obsoleto. |
keepalived.conf | Arquivo de configuração mantido. |
keepalived.init | Script de inicialização mantido. |
MaxScale_template.cnf | Modelo de configuração MaxScale. |
mongodb-2.6.conf.org | Modelo de configuração do MongoDB 2.x. |
mongodb.conf.org | Modelo de configuração do MongoDB 3.x. |
mongodb.conf.percona | Modelo de configuração do MongoDB 3.x para Percona Server para MongoDB. |
mongos.conf.org | Modelo de configuração do roteador Mongo (mongos). |
my.cnf.galera | Modelo de configuração MySQL para Galera Cluster. |
my57.cnf.galera | Modelo de configuração do MySQL para Galera Cluster no MySQL 5.7. |
my.cnf.grouprepl | Modelo de configuração MySQL para replicação de grupo MySQL. |
my.cnf.gtid_replication | Modelo de configuração do MySQL para replicação do MySQL com GTID. |
meu.cnf.mysqlcluster | Modelo de configuração MySQL para MySQL Cluster. |
my.cnf.pxc55 | Modelo de configuração MySQL para Percona XtraDB Cluster v5.5. |
my.cnf.repl57 | Modelo de configuração MySQL para MySQL Replication v5.7. |
my.cnf.replication | Modelo de configuração do MySQL para MySQL/MariaDB sem o GTID do MySQL. |
mysqlchk.galera | Modelo de script de verificação de integridade do MySQL para Galera Cluster. |
mysqlchk.mysql | Modelo de script de verificação de integridade do MySQL para replicação do MySQL. |
mysqlchk_xinetd | Modelo de configuração Xinetd para verificação de integridade do MySQL. |
mysqld.service.override | Modelo de arquivo de unidade do Systemd para serviço MySQL. |
proxysql_template.cnf | Modelo de configuração ProxySQL. |
A lista acima depende do conjunto de recursos fornecido pela versão do ClusterControl instalada. Em uma versão mais antiga, você pode não encontrar alguns deles. Você pode modificar esses arquivos de modelo diretamente, embora não recomendemos conforme explicado nas próximas seções.
Gerenciador de configuração
Dependendo do tipo de cluster, o ClusterControl importará o arquivo de modelo base necessário para o banco de dados CMON e acessível por meio de Gerenciar -> Configurações -> Modelos assim que a implantação for bem-sucedida. Por exemplo, considere o seguinte modelo de configuração para um MariaDB Galera Cluster:
O ClusterControl carregará o conteúdo do modelo base do modelo de configuração do Galera de /usr/share/cmon/templates/my.cnf.galera no banco de dados CMON (dentro da tabela cluster_configuration_templates) após a implantação ser bem-sucedida. Você pode personalizar seu próprio arquivo de configuração diretamente na interface do usuário do ClusterControl. Sempre que você clicar no botão Salvar, a nova versão do modelo de configuração será armazenada no banco de dados CMON, sem sobrescrever o arquivo de modelo base.
Depois que o cluster estiver implantado e em execução, o modelo na interface do usuário terá precedência. O arquivo de modelo base é usado apenas durante a implantação inicial do cluster via ClusterControl -> Deploy -> Deploy Database Cluster. Durante o estágio de implantação, o ClusterControl usará um diretório temporário localizado em /var/tmp/ para preparar o conteúdo, por exemplo:
/var/tmp/cmon-003862-6a7775ca76c62486.tmp
Variáveis dinâmicas
Existem várias variáveis de configuração que podem ser configuradas dinamicamente pelo ClusterControl. Essas variáveis são representadas com letras maiúsculas entre o sinal ‘@’, por exemplo @[email protected] Para obter detalhes completos sobre as variáveis suportadas, consulte esta página. As variáveis dinâmicas são configuradas automaticamente com base na entrada especificada durante a implantação do cluster, ou o ClusterControl executa a detecção automática com base no nome do host, endereço IP, RAM disponível, número de núcleos de CPU e assim por diante. Isso simplifica a implantação onde você só precisa especificar opções mínimas durante o estágio de implantação do cluster
Se a variável dinâmica for substituída por um valor (ou indefinido), o ClusterControl a ignorará e usará o valor configurado. Isso é útil para usuários avançados, onde geralmente têm seu próprio conjunto de opções de configuração personalizadas para cargas de trabalho de banco de dados específicas.
Exemplo de modelo de configuração de pré-implantação
Em vez de depender da variável dinâmica do ClusterControl no número de max_connections para nossos nós de banco de dados, podemos alterar a seguinte linha dentro de /usr/share/cmon/templates/my57.cnf.galera, de:
[email protected]@sqldat.com
Para:
max_connections=50
Salve o arquivo de texto e, na caixa de diálogo Deploy Database Cluster, verifique se o ClusterControl usa o arquivo de modelo base correto:
Clique no botão Deploy para iniciar a implantação do cluster de banco de dados.
Exemplo de modelo de configuração pós-implantação
Após a conclusão da implantação do cluster de banco de dados, você pode ter feito alguns ajustes nos servidores em execução antes de decidir escalá-la. Ao expandir, o ClusterControl usará o modelo de configuração dentro do banco de dados CMON (aquele preenchido em ClusterControl -> Configurações -> Modelos) para implantar os novos nós. Portanto, lembre-se de aplicar a modificação feita no servidor de banco de dados ao arquivo de modelo.
Antes de adicionar um novo nó, é uma boa prática revisar o modelo de configuração para garantir que o novo nó obtenha o que esperávamos. Em seguida, vá para ClusterControl -> Add Node e certifique-se de que o arquivo de modelo MySQL correto esteja selecionado:
Em seguida, clique no botão “Add Node” para iniciar a implantação.
É isso. Embora o ClusterControl faça vários trabalhos de automação quando se trata de implantação, ele ainda oferece liberdade para os usuários personalizarem a implantação de acordo. Boa aglomeração!