Zorgen dat de andere fileserver alle taken overneemt is op dit moment nog niet helemaal triviaal. Door een bug in de kernel gaat er van alles mis als je heartbeat zomaar stopt. Ook bij een reboot/shutdown gaat dit mis, let hier dus even goed op!!!
Een manual failover levert 10-30 seconden downtime op, afhankelijk van hoe snel je werkt. Hier moet je even rekening mee houden. Er is trouwens niks aan te doen om dit korter te maken, het netjes stoppen van de services en unmounten van de filesystems kost wat tijd. Ook het starten van al die dingen op de andere server duurt een tijdje.
Zorg er voor dat er niemand meer van /home gebruik maakt, als je zelf ingelogd bent moet je even cd / doen zodat je current dir niet meer in /home is (denk er aan om dit ook in je eigen shell te doen, niet alleen in je root-shell). Doe je dit niet dan kan je /home niet unmounten. Om te kijken of nog iemand het in gebruik heeft doe je lsof /home
Stop eerst de services die draaien:
/etc/init.d/mysql stop /etc/init.d/nfs-kernel-server stop /etc/init.d/nfs-common stop /etc/init.d/proftpd stop /etc/init.d/quota stop
Vervolgens moeten de filesystems geunmount worden, volgorde maakt niet zo veel uit:
umount /home umount /usr/local umount /var/www umount /var/lib/mysql/ umount /var/data
Dan moet DRBD alle schijven vrijgeven:
drbdadm secondary all
En die status kan je dan controleren met:
cat /proc/drbd
Dit moet bij alle schijven secondary/secondary geven!
Vervolgens kan je heartbeat stoppen waarmee de IP's vrijgegeven worden, de fileserver-cronjobs uitgeschakeld worden en de andere server het over kan nemen:
/etc/init.d/heartbeat stop
Vergeet niet om later heartbeat weer te starten anders wordt er niks meer overgenomen na een uitval… Na een reboot gaat dit trouwens vanzelf.
Als je deze handleiding volgt gaat alles wel goed, hopelijk is dit “gedoe” niet meer nodig na de volgende kernel-upgrade…