Fichier ha.cf :
udpport 694
ucast eth0 debian01
ucast eth0 debian02
debugfile /var/log/ha.debug
logfile /var/log/ha.log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
node debian01
node debian02
auto_failback off
respawn hacluster /usr/lib/heartbeat/ipfail
# ping sur la gateway
ping 192.168.1.1
Fichier haresource :
debian01 drbddisk::res0 Filesystem::/dev/drbd0::/data::ext3 \
tomcat \
debian02
Fichier drbd.conf
global {
usage-count yes;
}
common {
syncer {
rate 10M;
}
}
resource mail {
protocol C;
handlers {
# a activer si dopd utilisé
# outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";
}
startup {
degr-wfc-timeout 120; # 2 minutes.
}
disk {
# a activer si dopd utilisé
# fencing resource-only;
on-io-error detach;
on-io-error detach;
}
net {
cram-hmac-alg "sha1";
shared-secret "blablabla";
after-sb-0pri disconnect;
# pas de disconnect sur rr-conflict sinon la resolution manuelle ne passe pas
# rr-conflict disconnect;
}
syncer {
rate 10M;
al-extents 257;
}
on debian01 {
device /dev/drbd0;
disk /dev/sda4;
address 192.168.1.11:7788;
meta-disk internal;
}
on debian02 {
device /dev/drbd0;
disk /dev/sda2;
address 192.168.1.12:7788;
meta-disk internal;
}
}
Quelques commandes utiles :
Afficher l’état de drbd :
drbd-overview
ou
cat /proc/drbd
Restaurer des données apres un split brain
(les 2 noeuds sont secondaires et standalone) sur le noeud ayant les dernières données :
drbdadm primary res0
sur le noeud desynchro :
drbdadm secondary res0
drbdadm -- --discard-my-data connect res0
Si le noeud valide est standalone, lancer sur le noeud valide :
drbdadm connect res0
Si les 2 nœuds sont primaires, repasser en secondaire/secondaire et régler le conflit.
Invalider un noeud :
drbdadm invalidate res0
attention cela entraine une resynchro complète avec le noeud primaire.
Notes :
les uid et gid doivent correspondre entre les noeuds sinon les accès aux répertoires sur le disque drbd vont planter apres un fail-over.
Le site drbd :
resoudre un split brain manuellement