De tudo que li e da minha experiência limitada com pulsação, tudo o que você precisa fazer para fazer o failover manualmente de um servidor para outro é emitir o
service heartbeat stop
comando
. Tudo o que está no seu arquivo de origem é controlado por pulsação. Caso em questão, eu tenho um cluster que estou configurando que precisa executar os seguintes serviços:
snmpd
mysql
Aqui está a configuração de haresources
localhost00 \
drbddisk::home \
Filesystem::/dev/drbd0::/opt/local::ext3::defaults \
drbddisk::perf \
Filesystem::/dev/drbd1::/opt/local/perf::ext3::noatime,data=writeback \
IPaddr::1.1.1.1/24 \
mysqld \
snmpd
e aqui estão os resultados que obtenho (minhas desculpas se for uma bagunça, não consigo quebras de linha no ponto certo):
[root@localhost00 ~]# service snmpd status
snmpd (pid 18558) is running...
[root@localhost00 ~]# service mysqld status
mysqld (pid 18509) is running...
[root@localhost00 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17
m:res cs st ds p mounted fstype
0:home Connected Primary/Secondary UpToDate/UpToDate C /opt/local ext3
1:perf Connected Primary/Secondary UpToDate/UpToDate C /opt/local/perf ext3
[root@localhost00 ~]# service heartbeat stop
Stopping High-Availability services:
[ OK ]
[root@localhost00 ~]# service snmpd status
snmpd is stopped
[root@localhost00 ~]# service mysqld status
mysqld is stopped
[root@localhost00 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17
m:res cs st ds p mounted fstype
0:home Connected Secondary/Secondary UpToDate/UpToDate C
1:perf Connected Secondary/Secondary UpToDate/UpToDate C
[root@localhost00 ~]#
[root@zenoss00 ~]# service heartbeat start
Starting High-Availability services:
[ OK ]
[root@zenoss00 ~]# service snmpd status
snmpd is stopped
[root@zenoss00 ~]# service mysqld status
mysqld is stopped
[root@zenoss00 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-bu
m:res cs st ds p mounted fstype
0:zenhome Connected Secondary/Secondary UpToDate/UpToDate C
1:zenperf Connected Secondary/Secondary UpToDate/UpToDate C
[root@zenoss00 ~]# service snmpd status
snmpd (pid 23055) is running...
[root@zenoss00 ~]# service mysqld status
mysqld (pid 23006) is running...
[root@zenoss00 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17
m:res cs st ds p mounted fstype
0:zenhome Connected Primary/Secondary UpToDate/UpToDate C /opt/zenoss ext3
1:zenperf Connected Primary/Secondary UpToDate/UpToDate C /opt/zenoss/perf ext3
[root@zenoss00 ~]#
observe que parar a pulsação parou todos os serviços designados ao heartbeat (mysqld, snmpd); Observe também que o drbd ainda está em execução e o heartbeat NÃO o interrompeu. O DRBD precisa estar em execução o tempo todo para que o failover funcione.
Teste seu failover novamente, mas não execute os comandos drbd, e acho que você evitará a corrupção de dados.