Fichier de configuration drbd et heartbeat
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.