CMAN: usando SBD (Storage Based Death) e watchdog como STONITH

1

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:

  1. carrega o módulo do kernel - modprobe softdog
  2. iniciar o SBD - 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).

    
por Pavel A 15.01.2013 / 15:22

0 respostas