`
兰迪RANDY
  • 浏览: 97468 次
文章分类
社区版块
存档分类
最新评论

LVS+Keepalived负载均衡安装配置笔记

阅读更多
背景:

服务器环境:CentOS 6.4 x86_64

一个虚拟IP:
192.168.11.180

两台WEB服务器:
192.168.11.184
192.168.11.185

#安装LVS
yum -y install kernel-devel popt popt-devel libnl libnl-devel popt-static
ln -s /usr/src/kernels/2.6.32-431.20.3.el6.x86_64/ /usr/src/linux
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
tar zxf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26
make && make install


#安装keeplived
wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
tar zxf keepalived-1.2.13.tar.gz
cd keepalived-1.2.13
./configure --prefix=/usr/local/keepalived
make && make install

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
mkdir /etc/keepalived


#192.168.11.184 MASTER配置文件
vim /etc/keepalived/keepalived.conf
global_defs {
	notification_email {
               hongmingwei@pinganfang.com    #email 通知
        }
        notification_email_from hongmingwei@pinganfang.com
        smtp_server 127.0.0.1
        smtp_connect_timeout 30
        router_id LVS1	# 设置lvs的id,在一个网络内应该是唯一的
}

vrrp_sync_group test {           #设置vrrp组
	group {
		loadbalance
	}
}
 
vrrp_instance loadbalance {
        state MASTER       #设置lvs的状态,报错MASTER和BACKUP两种,必须大写
        interface eth0     #设置对外服务的接口
        lvs_sync_daemon_inteface eth0   #设置lvs监听的接口
        virtual_router_id 180                     #设置虚拟路由表示
        priority 180            #设置优先级,数值越大,优先级越高
        advert_int 5           #设置同步时间间隔
	authentication {                    #设置验证类型和密码
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {                #设置lvs vip
		192.168.11.180
	}
}
 
virtual_server 192.168.11.180 80 {
        delay_loop 6          #健康检查时间间隔
        lb_algo rr               #负载均衡调度算法
        lb_kind DR            #负载均衡转发规则
        #persistence_timeout 20  #设置会话保持时间,对bbs等很有用
        protocol TCP                #协议
        real_server 192.168.11.184 80 {
		weight 3                #设置权重
		TCP_CHECK {
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
			connect_port 80
		}
	}
        real_server 192.168.11.185 80 {
		weight 3
		TCP_CHECK {
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
			connect_port 80
		}
	}
}


#192.168.11.185 BACKUP配置文件:
vim /etc/keepalived/keepalived.conf
global_defs {
	notification_email {
               hongmingwei@pinganfang.com
        }
        notification_email_from hongmingwei@pinganfang.com
        smtp_server 127.0.0.1
        smtp_connect_timeout 30
        router_id LVS2
}

vrrp_sync_group test {
	group {
		loadbalance
	}
}

vrrp_instance loadbalance {
        state BACKUP
        interface eth0
        lvs_sync_daemon_inteface eth0
        virtual_router_id 180
        priority 150
        advert_int 5
	authentication {
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {
		192.168.11.180
	}
}
 
virtual_server 192.168.11.180 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        #persistence_timeout 20
        protocol TCP
        real_server 192.168.11.184 80 {
		weight 3
		TCP_CHECK {
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
			connect_port 80
		}
	}
        real_server 192.168.11.185 80 {
		weight 3
		TCP_CHECK {
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
			connect_port 80
		}
	}
}


#两个服务器上都添加下面脚本:
vim /etc/init.d/lvs_real
#!/bin/bash
# description: Config realserver lo and apply noarp
 
SNS_VIP=192.168.11.180
 
/etc/rc.d/init.d/functions
 
case "$1" in
start)
       ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
       /sbin/route add -host $SNS_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)
       ifconfig lo:0 down
       route del $SNS_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
/etc/init.d/keepalived start
#启动lvs
/etc/init.d/lvs_real start
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics