安装约定
LVS-VIP:192.168.1.4
LVS-MASTER:192.168.1.10
LVS-BACKUP:192.168.1.11
WEB-1-REAL_SERVER:192.168.1.20
WEB-2-REAL-SERVER:192.168.1.21
在LVS-MASTER服务器上配置keepalived.conf
# vim /etc/keepalived/keepalived.conf
添加如下内容
! Configuration File for keepalived global_defs { notification_email { example@163.com #failover@firewall.loc #sysadmin@firewall.loc } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_MASTER } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 #nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.4 } } virtual_server 192.168.1.4 80 { delay_loop 6 lb_algo wrr lb_kind DR #persistence_timeout 50 protocol TCP real_server 192.168.1.20 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.1.21 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
在LVS-BACKUP服务器上配置keepalived.conf
# vim /etc/keepalived/keepalived.conf
添加如下内容
! Configuration File for keepalived global_defs { notification_email { example@163.com #failover@firewall.loc #sysadmin@firewall.loc } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_BACKUP } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 99 advert_int 1 #nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.4 } } virtual_server 192.168.1.4 80 { delay_loop 6 lb_algo wrr lb_kind DR #persistence_timeout 50 protocol TCP real_server 192.168.1.20 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.1.21 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
在每台web服务器上配置realserver启动脚本
# vim /usr/local/sbin/realserver
作用是防arp抵制功能,内容如下:
#!/bin/bash #description: Config realserver VIP=192.168.1.4 . /etc/rc.d/init.d/functions case "$1" in start) /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /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 "RealServer Start OK" ;; stop) /sbin/ifconfig lo:0 down /sbin/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 "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
启动集群
分别启动主备服务器的keepalived服务
# service keepalived start
分别启动web服务器的realserver脚本
# /usr/local/sbin/realserver start
将realserver脚本加到开机启动文件里
# vim /etc/rc.local
在最后面添加如下:
/usr/local/sbin/realserver start