# yum install ipvsadm
Keepalived :
1. get keepalived.
# wget http://www.keepalived.org/software/keepalived-1.2.12.tar.gz
2.解压keepalived.
# tar xzvf keepalived-1.2.12.tar.gz
3. 进入目录
# cd keepalived-1.2.12
4. 安装包.
# yum install openssl-devel.x86_64 kernel-headers kernel-devel
5. 配置keepalived.
#./configure
6. 编译.
# make
7. 编译安装.
# make install
8.自启动服务.
# cd /etc/sysconfig # ln -s /usr/local/etc/sysconfig/keepalived . # cd /etc/rc3.d/ # ln -s /usr/local/etc/rc.d/init.d/keepalived S100keepalived # cd /etc/init.d/ # ln -s /usr/local/etc/rc.d/init.d/keepalived # ln -s /usr/local/sbin/keepalived /usr/sbin/ # cd /etc/keepalived # ln -s /usr/local/etc/keepalived/keepalived.conf .
keepalived.conf
! Configuration File for keepalived global_defs { router_id MYSQLD } vrrp_instance MYSQLD_3306 { state MASTER interface em2 virtual_router_id 22 priority 101 advert_int 1 mcast_src_ip 192.168.253.9 authentication { auth_type PASS auth_pass lekan } virtual_ipaddress { 192.168.253.100/24 dev em2 scope global } notify_master "/etc/keepalived/notification_email.sh master" notify_backup "/etc/keepalived/notification_email.sh backup" } virtual_server 192.168.253.100 3306 { delay_loop 2 lb_algo rr lb_kind DR persistence_timeout 10 protocol TCP real_server 192.168.253.6 3306 { weight 1 inhibit_on_failure notify_up "/etc/keepalived/mysql.sh up" notify_down "/etc/keepalived/mysql.sh down" TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } real_server 192.168.253.8 3306 { weight 1 inhibit_on_failure notify_down "/etc/keepalived/mysql.sh down" notify_up "/etc/keepalived/mysql.sh up" TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } }
mysql.sh
#!/bin/bash case $1 in up) echo "mysqld up" | mutt -s "keepalived mysqld" tong.li@mail.lekan.com ;; down) echo "mysqld down" | mutt -s "keepalived mysqld" tong.li@mail.lekan.com ;; *) echo "keepalived" >> /home/tong.li/keepalived.txt ;; esac
notification_email.sh
#!/bin/bash case $1 in master) echo "keepalived master failover" | mutt -s "keepalived" tong.li@mail.lekan.com ;; backup) echo "keepalived backup failover" | mutt -s "keepalived" tong.li@mail.lekan.com ;; *) echo "keepalived" >> /home/tong.li/keepalived.txt ;; esac
realserver.sh
#!/bin/bash #description:start realserver VIP=192.168.253.100 . /etc/rc.d/init.d/functions case "$1" in start) /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev lo:0 echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore echo "2">/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p >/dev/null 2>&1 echo "start LVS of RealServer DR" ;; stop) /sbin/ifconfig lo:0 down route del $VIP>/dev/null 2>&1 echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore echo "0">/proc/sys/net/ipv4/conf/all/arp_announce echo "close LVS of RealServer DR" ;; *) echo "Usage:$0 {start|stop}" exit 1 ;; esac
原文:http://curran.blog.51cto.com/2788306/1387497