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

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


基本Load Balancer结构:

125116210.png

三阶段的Load Balancer结构:

125134765.png

路由法则:

1、NAT路由

125212223.png

2、直接路由DR

125234768.png


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 为轮循算法

 
 

添加后端真实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,balancer,load,RHEL6,ipvsadm,LVS实现,系统负载均衡)