Como "desligar" com segurança / reiniciar um cluster Galera?

1

Primeira vez que configuramos o Galera (Ubuntu 14.04) e não consigo reiniciar o cluster após reiniciar meus nós. Estou seguindo o este guia e ele não menciona exatamente como lidar um desligamento ou reinicialização (para patches de kernel, atualizações de hipervisor, manutenção de rotina).

Eu encontrei um pouco de informação aqui que explica como encontrar o nó que é "safe_to_bootstrap", mas eu acho que isso está descrevendo um nó com falha. O link acima descreve isso como um nó com falha, aparentemente com pouca sorte para a recuperação:

# cat /var/lib/mysql/grastate.dat
# GALERA saved state
version: 2.1
uuid:    a4f9af07-f235-11e7-a0c0-233dd732dc29
seqno:   -1
safe_to_bootstrap: 1

Quando eu tento iniciar o nó, no entanto, recebo um erro em daemon.log :

'WSREP: failed to open gcomm backend connection: 110: failed to reach primary view: 110 (Connection timed out)'

Qual é a melhor maneira de desligar o cluster e como reiniciá-lo com segurança? Estou assumindo que o comando usual reboot não é adequado para encerrar de maneira limpa o cluster Galera.

    
por Server Fault 05.01.2018 / 17:49

2 respostas

0

Para um desligamento normal do cluster, primeiro verifique o status do seu cluster. Para cada nó, verifique o status. Então, se o status for sincronizado, você poderá encerrar o nó um por vez. O que é complicado é que ao iniciar os nós de volta, ele precisa recriar o cluster, pois o encerramento destrói o cluster. Se todos os nós no cluster estiverem sincronizados (ou seja, contiverem os mesmos valores "seqno" positivos), qualquer nó poderá iniciar o novo cluster. Se possível eu testaria isso pesadamente antes de rodar em produção.

    
por 09.01.2018 / 11:06
0

Eu sei que é tarde resposta a esta pergunta. Mas apenas no caso de alguém procurando a resposta exata sobre como encerrar com segurança e reiniciar o cluster mariadb galera.

Por exemplo, temos três nós mariadb galera (1,2,3) rodando em servidores Ubuntu. Para parar / desligar o cluster de maneira segura sem destruir o cluster:

  1. Verifique se não há transações ou conexões ativas nos nós do cluster.
  2. No node3, execute o seguinte comando para verificar se o nó está atualizado: SHOW STATUS LIKE 'wsrep_local_state_comment'; você deve ver "sincronizado" como valor de retorno 3- execute o seguinte comando para parar o serviço do mariadb: sudo systemctl parar mariadb
  3. No node2 e node1, repita as mesmas etapas, primeiro no node2 e, em seguida, no node1.

Agora você parou o cluster galera da melhor maneira e para começar de novo a partir do node1 da seguinte forma:

1- no Node1 execute o seguinte comando: galera_new_cluster 2- Então no Node2 sudo systemctl start mariadb 3- no node3 sudo sytsemctl iniciar mariadb

    
por 29.11.2018 / 16:00