Estou criando um cluster de dois nós com base na pilha de clusters CMAN + Pacemaker, mas não tenho dispositivos STONITH de hardware. No entanto, os dois nós estão conectados a um armazenamento compartilhado por meio do iSCSI e eu gostaria de usá-lo para cercar o SBD.
O SBD é suportado pelo openAIS e pelo Heartbeat, e já usei o SBD com a pilha de clusters do Heartbeat + Pacemaker, mas agora preciso fazê-lo funcionar com o CMAN. Portanto, adicionei pouco código ao script de inicialização do CMAN para iniciar / parar o SBD e parece funcionar bem.
Em relação ao watchdog: é altamente recomendável executar o SBD com watchdog. O SBD é um serviço crítico em um cluster e deve estar em execução o tempo todo em que o software de cluster está ativo. O watchdog ajuda a garantir que - se por algum motivo o processo SBD for encerrado inesperadamente, o cão não é mais alimentado e reinicia o nó. Então eu obtenho o módulo do kernel watchdog softdog
para ser carregado logo antes de iniciar o SBD (como é no Heartbeat por exemplo).
Resumidamente, faço o seguinte em /etc/init.d/cman:
modprobe softdog
sbd -d <device> -D -W watch
E aqui está o problema:
quando eu começo o cman pela mão
service cman start
está tudo bem, mas quando o cman inicia automaticamente durante a inicialização, o nó é reinicializado.
Parece que o watchdog não é alimentado, porque o nó é protegido exatamente <watchdog timeout>
segundos (5s) depois dele (o watchdog) é inicializado pelo SBD (14:21:29), no entanto, os logs (/ var / log / syslog) são controversos, dizendo que o SBD está em execução:
Jan 15 14:21:28 cs-node1 kernel: [ 12.341755] softdog: Software Watchdog Timer: 0.08 initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
...
Jan 15 14:21:29 cs-node1 sbd: [1200]: notice: Using watchdog device:/dev/watchdog
Jan 15 14:21:29 cs-node1 sbd: [1200]: info: Set watchdog timeout to 5 seconds.
...
Jan 15 14:21:30 cs-node1 sbd: [1202]: info: Latency: 1 on disk /dev/iscsi/disk2/part1
Jan 15 14:21:34 sbd: last message repeated 3 times
...
Jan 15 14:21:34 cs-node1 sbd: [1202]: info: Latency: 1 on disk /dev/iscsi/disk2/part1
Alguma ideia? Obrigado!
p.s. Qualquer pessoa com reputação acima de 300 pontos, por favor, considere criar as seguintes tags: sbd ou death baseado em armazenamento, stonith e cman.
Editar 1:
Agora eu criei um script init separado para gerenciar o SBD, que começa logo antes do CMAN, mas tudo permanece o mesmo - ele só funciona, quando iniciado manualmente após o login. O que há de tão especial no processo de inicialização que eu não sei?
Editar 2:
Recentemente, notei que não há mensagens desse tipo nos registros:
Jan 15 14:21:30 cs-node1 sbd: [1202]: info: Latency: 1 on disk /dev/iscsi/disk2/part1
Jan 15 14:21:34 sbd: last message repeated 3 times
...
Jan 15 14:21:34 cs-node1 sbd: [1202]: info: Latency: 1 on disk /dev/iscsi/disk2/part1
e o nó pode ser reinicializado não exatamente após 5 segundos após inicializar o watchdog, mas com mais freqüência após 12, mas toda vez exatamente como o prompt de login aparece. Embora o SBD esteja sendo executado mesmo quando não há mensagens no syslog (adicionei um processo em segundo plano que começa junto com o SBD e monitora seu processo).