keepalived
Um einen Cluster mit DRBD und OCFS sinnvoll einsetzen zu können benötigen wir einen weiteren Clusterservice wie keepalived oder Pacekeeper.
In unserem Beispiel beschränken wir uns aber auf keepalived da die Configuration sehr einfach ist und denoch wirkungsvoll.
Wir haben hier je eine MASTER und eine BACKUP Config. Zeilen auf welche besonders zu achten sind wurden hervorgehoben.
MASTER :: /etc/keepalived/keepalived.conf
## Unique identifier for every router global_defs { router_id 4lords-share smtp_server localhost smtp_connect_timeout 30 } vrrp_script chk_mountpoint { ## THIS IS AN EXAMPLE BY USING AUTOMOUNTER WHICH I RECOMMEND WITH APACHE AND OCFS OVER DRBD script "[[ -h /var/www ]] && ls /mnt/www/*" ## DOES MOUNTPOINT EXISTS interval 10 ## CHECK INTERVALL 10 SEC weight 2 } vrrp_script chk_apache { script "killall -0 apache2" ## CHEAPER THAN PIDOF interval 10 ## CHECK EVERY 10 SEC weight 2 ## WEGHTS 2 POINTS IF OK } ## INTERNAL INTERFACE vrrp_instance VI_0 { state MASTER interface eth0 virtual_router_id 17 priority 100 advert_int 1 smtp_alert peempt_delay 300 garp_master_delay 1 authentication { auth_type PASS auth_pass <YOUR_PASSPHRASE> } virtual_ipaddress { 192.168.1.10 } track_script { chk_mountpoint chk_apache } }
Zur Erklärung: In die Configurationen wurden zwei vrrp_scripts eingebaut, welche beispielhaft zu betrachten sind. Hie könnten auch externe Scripte mit entsprechendne RETURN CODES eingepflegt werden.
Wir beschränken uns aber auf einfache Einzeiler.
Script 1:
vrrp_script chk_mountpoint { ## THIS IS AN EXAMPLE BY USING AUTOMOUNTER WHICH I RECOMMEND WITH APACHE AND OCFS OVER DRBD script "[[ -h /var/www ]] && ls /mnt/www/*" ## DOES MOUNTPOINT EXISTS interval 10 ## CHECK INTERVALL 2 SEC weight 2 }
Diese Script prüft ob ein Mountpoint vohanden ist oder nicht. Ist dieser nicht verfügbar wird die Gewichtung um 2 erhöht. Das heisst, wenn wir Zeile 27 betrachten, so ist die Priority auf MASTER 100 und BACKUP 99. Mit weight 2 wird die PRIORITY 99 auf Backup um 2 angehoben und ist damit höher als 100. Somit wird der BACKUP sofort MASTER.
Interval 10 heisst nur dass das Script alle 10 Sec ausgeführt wird.
Analog verhält sich dies mit Script 2
BACKUP :: /etc/keepalived/keepalived.conf
## Unique identifier for every router global_defs { router_id 4lords-share smtp_server localhost smtp_connect_timeout 30 } vrrp_script chk_mountpoint { ## THIS IS AN EXAMPLE BY USING AUTOMOUNTER WHICH I RECOMMEND WITH APACHE AND OCFS OVER DRBD script "[[ -h /var/www ]] && ls /mnt/www/*" ## DOES MOUNTPOINT EXISTS interval 10 ## CHECK INTERVALL 2 SEC weight 2 } vrrp_script chk_apache { script "killall -0 apache2" ## CHEAPER THAN PIDOF interval 10 ## CHECK EVERY 2 SEC weight 2 ## WEGHTS 2 POINTS IF OK } ## INTERNAL INTERFACE vrrp_instance VI_0 { state BACKUP interface eth0 virtual_router_id 17 priority 99 advert_int 1 smtp_alert peempt_delay 300 garp_master_delay 1 authentication { auth_type PASS auth_pass <YOUR_PASSPHRASE> } virtual_ipaddress { 192.168.1.10 } track_script { chk_mountpoint chk_apache } }