红联Linux门户
Linux帮助

RHEL6平台LVS实现负载均衡Load Balancer

发布时间:2015-05-01 11:01:54来源:linux网站作者:ty1992

LVS(Linux virtual server)集群种类通常是通过LVS Director中继到集群节点的请求的方法来形容的,目前有三种可用的方法:
百兆网卡时可拥有的节点数
网络地址转换(LVS-NAT) 不同网络 10~20
直接路由(LVS-DR)(调度器) 同一网络 high(100)
ip隧道(LVS-TUN)支持广域网 high(100)


基本Load Balancer结构:

RHEL6平台LVS实现负载均衡Load Balancer

三阶段的Load Balancer结构:

RHEL6平台LVS实现负载均衡Load Balancer

路由法则:
1、NAT路由

RHEL6平台LVS实现负载均衡Load Balancer

2、直接路由DR

RHEL6平台LVS实现负载均衡Load Balancer

LVS-DR配置:

        vip    vip
        |      |
clients——DR————RS——clients
                |
              noARP

DR:Direct Routing
RS:Real Server


负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。调度器和服务器组都必须在物理上有一个网卡通过不分断的局域网相连,如通过交换机或者高速的 HUB 相连。VIP 地址为调度器和服务器组共享,调度器配置的 VIP 地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把 VIP 地址配置在各自的 Non-ARP 网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP 的网络请求。

VIP 虚拟ip
调度器DR上的vip,对外响应,clients直接访问,通过此vip连接到RS;
RS 上也要有VIP(和DR同)但不对外响应,noarp(即将arp解析关掉),否则一个局域网两个相同ip会冲突,如果RS上不建vip,则clients访问DR上的vip就无法连接到后端真实的服务器RS。

DR:ty1.org
RS:ty2.org、ty3.org


DR上的操作:

yum install ipvsadm -y

ifconfig eth0:0 192.168.1.30 netmask 255.255.255.0 up          //DR添加vip
ipvsadm -A -t 192.168.1.30:80 -s rr

-A 添加一个service
-t tcp

192.168.1.30 vip

-s 指定调度算法 rr 为轮循算法
1

添加后端真实server

ipvsadm -a -t 192.168.1.30:80 -r 192.168.1.13:80 -g
ipvsadm -a -t 192.168.1.30:80 -r 192.168.1.14:80 -g

-a添加真实server

-r 指定real server
-g 直连,直接路由

/etc/init.d/ipvsadm save //保存ipvsadm的规则至/etc/sysconfig/ipvsadm

ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ]

ipvsadm -l //查看ipvs转发表

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port          Forward Weight ActiveConn InActConn
TCP  192.168.0.112:http rr
-> ty2.org:http                Route  1      0          0
-> ty3.org:http                Route  1      0          0

RS上的操作:

yum install httpd -y
/etc/init.d/httpd start
echo `hostname` > /var/www/html/index.html

ifconfig eth0:0 192.168.0.112 netmask 255.255.255.255 up  //添加vip


RS上的noARP设置:

yum install arptables_jf -y

arptables -A IN -d 192.168.0.112 -j DROP      //进来的,目标为112的数据包扔掉
arptables -A OUT -s 192.168.0.112 -j mangle --mangle-ip-s 192.168.0.140      //出去时,源地址为112的用ip为140的送出去

--mangle-ip-s IP address
// Change the source IP address of the packet to the specified value.

/etc/init.d/arptables_jf save //将设置保存至/etc/sysconfig/arptables

Saving current rules to /etc/sysconfig/arptables:          [  OK  ]

现在就可以通过web页面访问vip 192.168.0.112,按F5刷新会看到两个Real Server实现了负载均衡,但是此时不能检测后端RS的健康状况。


相关文章:
Linux双网卡绑定实现负载均衡(Bonding双网卡绑定):http://www.linuxdiyf.com/linux/11452.html

Debian/Ubuntu下Nginx的安装、反向代理和负载均衡的基本配置:http://www.linuxdiyf.com/linux/11079.html

CentOS+Nginx一步一步开始配置负载均衡:http://www.linuxdiyf.com/linux/10205.html