Sua arquitetura de cluster me confunde, pois parece que você está executando serviços que devem ser gerenciados em cluster (como o Varnish) autônomo em dois nós ao mesmo tempo e deixar o gerenciador de recursos de cluster (CRM) manipular apenas os endereços IP.
O que você deseja alcançar com sua configuração de cluster? Tolerância ao erro? Balanceamento de carga? Ambos? Lembre-se, estou falando sobre os recursos do cluster (verniz, endereços IP, etc.), não os servidores de backend para os quais o Varnish distribui a carga.
Para mim, parece que você quer um cluster ativo-passivo de dois nós, que fornece tolerância a falhas. Um nó está ativo e executa Varnish, os endereços IP virtuais e possivelmente outros recursos, e o outro nó é passivo e não faz nada até que o gerenciador de recursos do cluster mova os recursos para o nó passivo, quando fica ativo. Essa é uma arquitetura testada e verdadeira que é tão antiga quanto o próprio tempo. Mas para que isso funcione, você precisa dar ao CRM controle total sobre os recursos. Recomendo seguir os Clusters do Scratch e modelar seu cluster depois disso .
Editar após sua pergunta atualizada: seu CIB parece ser bom, e uma vez que você corrigiu o script init para que as chamadas repetidas para "start" retornem 0, você deve poder adicionar o seguinte primitivo (ajustar os tempos limite e intervalos ao seu gosto):
primitive p_varnish lsb:varnish \
op monitor interval="10s" timeout="15s" \
op start interval="0" timeout="10s" \
op stop interval="0" timeout="10s"
Não se esqueça de adicioná-lo ao grupo de balanceadores (o último elemento da lista):
group balancer eth0_gateway eth1_iceman_slider eth1_iceman_slider_ts \
eth1_iceman_slider_pm eth1_iceman_slider_jy eth1_iceman eth1_slider \
eth1_viper eth1_jester p_varnish
Editar 2 : para diminuir o limite de migração, adicione uma seção de padrões de recursos no final do seu CIB e defina a propriedade migration-threshold
como um número baixo. Configurar para 1 significa que o recurso será migrado após uma única falha. Também é uma boa ideia definir a rigidez do recurso para que um recurso que tenha sido migrado devido à falha do nó (reinicialização ou desligamento) não seja automaticamente migrado de volta mais tarde quando o nó estiver disponível novamente.
rsc_defaults $id="rsc-options" \
resource-stickiness="100" \
migration-threshold="1"