一、LVS 是一直ip负载均衡技术
二、lvs负载均衡环境的监控内容
1.负载均衡器和真实服务器
2.真实服务器上运行的服务
3.lvs公用的vip
三、安装lvs+keepalived
yum 安装 libnl* popt*
内核满足:2.6.28 以后
# ln -s /usr/src/kernels/2.6.32-279.el6.i686/ /usr/src/linux/
#cd ipvsadm-1.26
# make && make install
安装keepalived
安装keepalived 必须指定内核,不然发现不了真实机
# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.i686/
# make && make install
# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
test@163.com
}
notification_email_from test@126.com
smtp_server stmp.126.com
# smtp_connect_timeout 30
router_id LVS_DEVEl
}
# VIP1
vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 60 #默认51 主从都修改为60
priority 100
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.222
}
}
virtual_server 192.168.1.222 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.1.123 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.121 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
#backup keepalived file
! Configuration File for keepalived
global_defs {
notification_email {
test@163.com
}
notification_email_from test@126.com
smtp_server stmp.126.com
# smtp_connect_timeout 30
router_id LVS_DEVEl
}
# VIP1
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 60 #默认51 主从都修改为60
priority 90
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.222
}
}
virtual_server 192.168.1.222 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 5
protocol TCP
real_server 192.168.1.123 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_beforce_retry 3
connect_port 80
}
}
real_server 192.168.1.121 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_beforce_retry 3
connect_port 80
}
}
}
真实机脚本
# vim /etc/init.d/realserver.sh
#!/bin/bash
SNS_VIP=192.168.1.222
. /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 "RealServr Start OK"
;;
stop)
ifconfig lo:0 down
/sbin/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 "RealServr Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
1.启动真实机脚本
2.启动主keepalived
3.启动从keepalived