Solução
Graças às pessoas que investigaram comigo, consegui encontrar a solução para o meu problema e agora tenho uma configuração de trabalho. Se você se sentir corajoso o suficiente, você pode ler os comentários sobre a pergunta original, mas aqui está um resumo dos passos que me ajudaram a resolver o meu problema.
Leia a fonte
A primeira coisa a fazer ao configurar recursos de alta disponibilidade será o típico, mas RTFM . Não a sério, saiba como funciona o software que você está planejando usar. Nesse caso em particular, meu primeiro erro foi não ler e compreender cuidadosamente como funciona o agente de recursos (RA). Como eu estava usando o mysql
RA fornecido por Heartbeat
, o script de origem do RA estava disponível em Repo GitHub dos agentes de recursos do ClusterLabs .
Do not forget to read the source of included files!
Verifique se o seu software está atualizado
Não foi claramente identificado como um problema em meu caso específico, mas como @gf_ & @remote mind sugerido, é sempre bom ter uma versão do RA que funcione com a versão do software .
Preencha o maldito params
Number one rule in HA: do not rely on default values.
Isso não é verdade, às vezes você pode, mas honestamente, se eu tivesse fornecido todos os parâmetros opcionais que eu pudesse para o RA, eu teria corrigido meu problema muito mais rápido .
Este é o lugar onde a parte Leia a fonte é importante, pois permitirá que você realmente entenda porque existem parâmetros necessários. No entanto, como elas geralmente são descritas resumidamente, talvez seja necessário ir além do meta-data
e descobrir onde estão os parâmetros usados. No meu caso, a coisa não funcionou por várias razões:
- Eu não forneci o caminho do soquete e o padrão para o script não corresponde ao padrão para o meu sistema (Debian 8).
- Eu não forneci
test_user
,test_passwd
: estes estavam presentes nometa-data
, mas achei que não precisava disso. Depois que decidi procurar o que era usado, descobri que esses parâmetros eram usados para executar um simplesselect count(*)
no banco de dados. E como os padrões estão definidos para usar o usuárioroot
sem senha, ele não funcionou no meu caso (porque nos meus bancos de dados,root
precisa de uma senha para conectar o banco de dados). Esse passo em particular impedia que o RA executasse a verificação se o nó atual era escravo ou não. - Alguns outros parâmetros também estavam faltando, e eu sabia que precisava deles apenas depois de descobrir onde as configurações padrão estavam escondidas .
Palavra final
Mais uma vez, muito obrigado a @gf_ por reservar um tempo para investigar comigo e fornecer leads para depurar minha configuração.
Boas configurações de HA não são tão fáceis de alcançar (especialmente ao começar do zero), mas se bem configuradas podem ser realmente poderosas e proporcionam paz de espírito.
Note: peace of mind not guaranteed ;)