Importância do arquivo ha.cf em um ambiente heartbeat / pacemaker?

3

Estou tendo alguns problemas tentando entender o ha.cf e como o cluster recebe atualizações.

Por exemplo, ao criar um novo cluster, geralmente:

  1. Defina algumas opções padrão no ha.cf no nó 1 - nó x
  2. Inicie o cluster.
  3. Execute crm em qualquer nó, configure recursos.

Embora eu normalmente faça up / down de nós, recursos up / down, eu nunca adicionei um novo nó em uma data posterior.

Apenas por "diversão", decidi executar um novo servidor que apenas especificou um nó no cluster em seu ha.cf e, em seguida, inicie a pulsação.

Esta máquina juntou-se ao cluster com sucesso e se agregou a todos os outros nós no cluster .... Onde fico confuso é que mesmo que eu desligue todos os nós e reinicie os 2 nós originais, eles ainda têm o terceiro servidor como no cluster, mas off-line, apesar de o terceiro não estar no arquivo ha.cf original de 2 nós.

Mesmo se eu editar o ha.cf e alterar algum valor sem sentido / ou tocar no arquivo, reinicialize o servidor e o cluster, ele ainda estará lá. Então, minha conclusão é que o CIB tem preferência sobre o ha.cf, mas o que eu não entendo é por que / como.

Estou realmente procurando por práticas recomendadas - se alguma máquina tiver o suficiente no ha.cf para "gerá-la", faça tudo no CRM? Ha.cf é uma perda de tempo, ou devo usá-lo muito mais?

Tentando não ser tão vago - estou apenas procurando o que devo fazer no CRM e o que devo fazer no ha.cf?

Obrigado,

Wil

    
por William Hilsum 11.07.2014 / 17:32

2 respostas

0

Eu realmente esperava ver uma boa resposta.

Tudo o que posso realmente fazer é endossar suas experiências: que a única função real do heartbeat nessas circunstâncias é iniciar o pacemakerd, o subsistema CRM. Isso (como você sabe) mantém seu próprio banco de dados de nós e estados, que em meus sistemas é /var/lib/heartbeat/crm/cib.xml . Os arquivos em /etc/ha.d informa heartbeat , mas não crm .

Estou executando vários pares de failover fazendo várias coisas, a maioria dos quais está ativa há mais de 500 dias e alguns deles estão próximos a 1.000 dias, e a maioria deles sobreviveu a qualquer número de failovers e failbacks; então eu só posso supor que estou fazendo algo certo. Minha prática é não mentir em ha.cf , mas colocar quase nada lá além do que é necessário para fazer o HA iniciar o CRM.

Me desculpe, eu não tenho nada mais concreto para apontar você.

    
por 22.07.2014 / 11:40
0

Aparentemente, você executa o Pacemaker, um Cluster Resource Manager, em cima do Heartbeat v3, uma camada de mensagens do cluster. Você pode encontrar mais informações aqui . Por exemplo, versões mais antigas do Heartbeat exigiram que os usuários adicionassem a configuração do nó ping ao ha.cf, isso não é mais necessário com o agente pingd de recursos no Pacemaker.

O papel de um agente de recursos é abstrair o serviço que ele fornece e apresentar uma visão consistente para o cluster, o que permite que o cluster seja agnóstico sobre os recursos que gerencia. O cluster não precisa entender como o recurso funciona porque ele depende do agente de recursos para fazer a coisa certa quando recebe um comando start, stop ou monitor.

Portanto, você deve distinguir as configurações e verificar o seguinte na sua

/etc/ha.d/ha.cf

mcast ...
bcast eth..
#disables automatic joining <== Do you have "autojoin any", here ?
autojoin none
node node1 node2
# for enabling Pacemaker under Heartbeat 3.04
pacemaker respawn
#and check manpage to track deprecated directives (baud, auto_failback, stonith, etc.)

Deixe-me também sugerir os seguintes testes:

  • Você relê o bom serviço de pulsação?

    kill -HUP $ GoodHeartbeatPID

  • O CRM precisa de um commit (o cib.xml (também conhecido como Base de Informações do Cluster) é gerado por este comando)

    crm_verify -L -V

    cib commit $ yourconf

  • Verifique também seus hosts / etc / hosts, DNS, etc.

Tenha cuidado com reiniciar o pedido

no seu nó ainda ativo. Isso encerrará seus recursos de cluster.

 /etc/init.d/heartbeat stop 

no seu nó de espera (aquele em que você criou o seu CIB). Isso iniciará a instância Heartbeat local e o Pacemaker e aguardará o check-in de outros nós do cluster.

/etc/init.d/heartbeat start 

no seu outro nó. Isso iniciará a instância Heartbeat local e o Pacemaker, buscará o CIB automaticamente e iniciará os aplicativos.

/etc/init.d/heartbeat start 

Atenciosamente

    
por 22.07.2014 / 13:31