LVS+Keepalived负载均衡

Posted 夕颜@伤雨痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS+Keepalived负载均衡相关的知识,希望对你有一定的参考价值。

DR模式工作流程图

  

 

实验环境:

部署keepalived高可用

[root@LVS-keep-backup ~]# yum install -y openssl-devel kernel-devel 

# wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz

# tar zxvf keepalived-1.2.24.tar.gz

# cd keepalived-1.2.24
 ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-696.10.2.el6.x86_64/

 # make 

# make install

# chkconfig --add keepalived
[root@LVS-keep-backup keepalived-1.2.24]# chkconfig keepalived on
[root@LVS-keep-backup keepalived-1.2.24]# chmod +x /etc/init.d/keepalived
[root@LVS-keep-backup keepalived-1.2.24]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@LVS-keep-backup keepalived-1.2.24]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
notification_email {
acassen@firewall.loc
}
notification_email_from keepalived@localhost
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state MASTER                  [MASTER|BACKUP]
interface eth0
virtual_router_id 51
priority 100                              [100|90]

#noreepmpt        #不抢占功能,ps:一般配置在BACKUP状态下
advert_int 1
authentication {
auth_type PASS

auth_pass 1111
}
virtual_ipaddress {
192.168.2.200            #设置虚拟IP 
}
}

virtual_server 192.168.2.200 80 {     #设置虚拟服务器,需要指定虚拟IP地址和服务,端口,IP之间要用空格隔开
delay_loop 6      #设置运行检查时间
lb_algo rr    #设置负载调度算法,这里设置RR。即轮询算法,
lb_kind DR      #设置负载均衡模式,这里是DR模式
persistence_timeout 50         #会话保持时间,单位秒
protocol TCP            #指定转发类型,TCP和UDP两种

real_server 192.168.2.138 80 {        #配置服务节点,需要指定Real Server的真实IP地址和端口
weight 1               #配置服务节点权重,不同性能服务器分配不同负载,而性能较低的服务器自然分配的权重值要小,这样才能更好的利用和分配系统资源
TCP_GET {        #Real  Server的状态检测设置部分,
connect_timeout 3         #表示3秒无响应超时
nb_get_retry 3         #重试次数
delay_before_retry 3    #表示重试时间间隔

connect_port 80    #   健康检查的端口,如果不指定,默认是real_server制定的端口

}
}
real_server 192.168.2.139 80 {
weight 1
TCP_GET {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3

connect_port 80    #   健康检查的端口,如果不指定,默认是real_server制定的端口
}

}
}

部署LVS

[root@LVS-keep-master ~]# yum install -y ipvsadm 

[root@LVS-keep-master ~]# ipvsadm -v
ipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)

################可省略~~~~~

[root@LVS-keep-master ~]# ipvsadm -A -t 192.168.2.200:80 -s wrr

[root@LVS-keep-master ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.138 -g -w 100
[root@LVS-keep-master ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.139 -g -w 100

[root@LVS-keep-master ~] ipvsadm-save > /etc/sysconfig/ipvsadm    #保存LVS配置信息,以便随时恢复

###############

[root@LVS-keep-master ~]# ipvsadm -Ln

在后端Realserver web上绑定虚拟VIP并且抑制ARP响应(因为用户在请求VIP的同时,默认绑定在 real-server后端真实IP服务器上的VIP也会响应,这样会冲突)

[root@HTTP-web1 ~]# VIP=192.168.2.200
[root@HTTP-web1 ~]# ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

[root@HTTP-web1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@HTTP-web1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@HTTP-web1 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@HTTP-web1 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@HTTP-web2 ~]# VIP=192.168.2.200
[root@HTTP-web2 ~]# ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

[root@HTTP-web2 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@HTTP-web2 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@HTTP-web2 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@HTTP-web2 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore

在后端WEB服务简单配置一下,便于负载区分即可

[root@HTTP-web1 ~]# echo "Server Name WEB 1111" >/var/www/html/index.html

[root@HTTP-web2 ~]# echo "Server Name web 2222" > /var/www/html/index.html

-A 增加一台虚拟服务器VIP地址。

-t  虚拟服务器提供的是tcp服务。

-s  使用的调度算法

-a  在虚拟服务器中增加一台后端真实服务器。

-r  指定真实服务器地址。

-m 设置当前转发方式为NAT模式;-g为直接路由模式;-i  模式为隧道模式

-w 后端真实服务器的权重。

查看LVS转发列表命令为:ipvsadm –Ln

实现结果:LVS负载均衡高可用

 

以上是关于LVS+Keepalived负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

LVS负载均衡与keepalived架构

LVS+Keepalived负载均衡配置

Keepalived + LVS 实现负载均衡

LVS和keepalived负载均衡lvs主备机测试

LVS基础及LVS+Keepalived实现双主高可用负载均衡

LVS(DR) + Keepalived 实现负载均衡