O ambiente consiste em duas máquinas virtuais 2012R2 executando o RabbitMQ em alta disponibilidade (ha-all) em suas filas. Eu uso o Veeam para criar backups de snapshots enviados externamente como parte da política de recuperação de desastres.
O que estou vendo são falhas intermitentes do cluster quando o backup Veeam ocorre. Quando o cluster é interrompido, isso faz com que os eventos do Mnesia sejam registrados ou às vezes faz com que um nó seja desativado completamente. Eu acredito que o problema é como a VM é varrida pela Veeam, onde essencialmente pausa a VM por um breve momento e depois continua. Quando este blip ocorre, os dois Nodes vêem o outro desaparecer e o secundário promove-se a dominar imediatamente. Com dois mestres correndo assim que se vêem (literalmente segundos depois) eles batem cabeças e o cacho quebra.
Eu li sobre net_ticktime
aqui e implementei 300 segundos pensando que isso ajudaria a tornar o cluster mais resiliente ao curto Veeam blips, mas não parece ter ajudado. Quando um nó vê o outro desaparecer, o secundário promove-se para dominar imediatamente e parece não utilizar a configuração net_ticktime
.
Exemplo de erro da Mnesia:
Mnesia('rabbit@Node01'): ** ERROR ** mnesia_event got {inconsistent_database, running_partitioned_network, 'rabbit@Node02'}
Alguém mais experimentou isso ou algo semelhante? Existe configuração adicional de configuração com RabbitMQ ou Erlang que pode ajudar a tornar o cluster mais resiliente a pequenos pontos de perda de conectividade entre os nós?