keepalived整合lvs实现nginx高可用负载均衡
keepalived整合lvs实现nginx高可用负载均衡1.简介
LVS(Linux Virtual Server) 是Linux虚拟服务器,可以把多台服务器虚拟为一个虚拟IP,同时实现各种负载均衡算法
Keepalived是基于LVS,并与LVS高度融合的,监控LVS下所有真实服务器健康状态,并通过健康健康状态动态调整LVS的复杂均衡转发权重和规则
2,拓扑图
http://blog.运维网.com/attachment/201310/193952209.jpg
3,IP规划
名称
IP
备注
VIP
eth2:192.168.46.200/24
虚拟IP
主调度器(director server )
eth2:192.168.46.131/24负责lvs调度
辅调度器(director server )
eth2:192.168.46.132/24负责lvs调度 真实服务器1
(Real Server )
eth2:192.168.46.133/24nginx服务器
真实服务器2
(Real Server )
eth2:192.168.46.134/24nginx服务器
4,安装lvs和keepalived包
这里不在介绍了,大家可以看看我的另外的两篇文章
http://wolfword.blog.运维网.com/blog/4892126/1218416
http://wolfword.blog.运维网.com/blog/4892126/1217585
5,配置keepalived
主调度器192.168.46.131上安装keepalived,辅助调度器192.168.46.132上安装keepalived,不需要在real server上安装keepalived
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_fromroot@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL_131
}
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state MASTER //辅助调度器为BACKUP
interface eth2
virtual_router_id 51
priority 100//辅助调度器为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.46.200/24
}
}
virtual_server 192.168.46.20080{
delay_loop 6
lb_algorr
lb_kindDR
protocol TCP
real_server 192.168.46.133 80 {
weight 100
TCP_CHECK {
connect_timeout3
nb_get_retry3
delay_beforce_retry3
connect_port80
}
}
real_server 192.168.46.134 80 {
weight100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_beforce_retry3
connect_port80
}
}
}
6,配置lvs
主辅调度器上的lvs脚本
#!/bin/bash
VIP=192.168.46.200
RIP1=192.168.46.133
RIP2=192.168.46.134
case "$1" in
start)
echo "start LVS of DirectorServer DR"
/sbin/iptables -F
/sbin/ipvsadm -C
/sbin/ifconfig eth2:0 $VIPbroadcast $VIPnetmask 255.255.255.0up
/sbin/ipvsadm-A -t $VIP:80-s rr
/sbin/ipvsadm-a -t $VIP:80-r$RIP1 -g
/sbin/ipvsadm-a -t $VIP:80-r$RIP2 -g
/sbin/ipvsadm
;;
stop)
echo "stopLVS of DirectorServer DR"
echo "0" >/proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ifconfig eth2:0 down
;;
*)
echo "argements error"
;;
esac
真实服务器real server上的lvs脚本
#!/bin/bash
#DR server
VIP=192.168.46.200
case "$1" in
start)
echo "start LVS of DR"
/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
;;
stop)
echo "stop LVS of DR"
/sbin/ifconfig lo:0 down
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 "Usage:$0 {start|stop}"
esac
exit 1
7,日志讲解
Sep 30 20:50:24 test2 Keepalived_vrrp: Opening file '/etc/keepalived/keepalived.conf'.
Sep 30 20:50:24 test2 Keepalived_vrrp: Configuration is using : 65227 Bytes
Sep 30 20:50:24 test2 Keepalived_vrrp: Using LinkWatch kernel netlink reflector...
Sep 30 20:50:24 test2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
Sep 30 20:50:24 test2 Keepalived_vrrp: VRRP sockpool:
Sep 30 20:51:50 test2 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
Sep 30 20:51:50 test2 Keepalived_vrrp: VRRP_Group(VG1) Syncing instances to MASTER state
Sep 30 20:51:51 test2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
8,功能测试
停掉主调度器keepalived服务,来看看辅助调度器上的日志
Oct1 21:02:07 test2 avahi-daemon: Received response from host 192.168.139.1 with invalid source port 56132 on interface 'eth1.0'
Oct1 21:02:09 test2 avahi-daemon: Received response from host 192.168.139.1 with invalid source port 56132 on interface 'eth1.0'
Oct1 21:02:09 test2 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
Oct1 21:02:10 test2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
Oct1 21:02:10 test2 Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.
Oct1 21:02:10 test2 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth2 for 192.168.46.200
Oct1 21:02:11 test2 avahi-daemon: Received response from host 192.168.139.1 with invalid source port 56132 on interface 'eth1.0'
页:
[1]