Eu presumo que, como você tem heartbeat
controlando failover, está executando um cluster DRBD ativo / passivo. Como tal, no momento do failover heartbeat
no passivo detecta que deve se promover para ativo. Neste processo, ele (geralmente) transmite o fato de que está assumindo o VIP do primário e monta o disco do DRBD. Isso torna o disco acessível ao sistema de arquivos e, finalmente, heartbeat
traz o software necessário (MySQL, Apache, etc) como por haresources
.
Você deve adicionar todos os serviços extras necessários para iniciar após o failover no arquivo /etc/ha.d/haresources
no formato:
#node1 10.0.0.170 Filesystem::/dev/sda1::/data1::ext2
db1 192.168.100.200/24/eth0 drbddisk::mysql Filesystem::/dev/drbd0::/drbd::ext3::defaults mysql
com o script de inicialização apropriado em /etc/ha.d/resource.d/mysql
(ou nomeado em relação à função do script!) - mais detalhes em Configurando os recursos de haresources , o manual do drbd e OpenVZ wiki
O cerne da questão é que não há efetivamente nenhum disco para svnserve
ler seus repositórios até que ele seja ativado como ativo, pois o processo drbd
o bloqueia quando está no modo passivo. É possível executar o DRBD ativo / ativo, mas é um recurso relativamente novo e não é algo que eu tentei!
Uma pegadinha que não está bem documentada: em vez de usar os scripts hb_takeover para testar o failover, basta encerrar o heartbeat
service no primário e aguardar o secundário assumir, assistindo nos dois servidores com tail -f /var/log/ha-log
. Isso tem a vantagem adicional de testar os parâmetros deadtime
, warntime
e initdead
de ha.cf
, que são importantes em um failover do mundo real.