LVS(Linux virtual server)集群种类通常是通过LVS Director中继到集群节点的请求的方法来形容的,目前有三种可用的方法:
百兆网卡时可拥有的节点数
网络地址转换(LVS-NAT) 不同网络 10~20
直接路由(LVS-DR)(调度器) 同一网络 high(100)
ip隧道(LVS-TUN)支持广域网 high(100)
基本Load Balancer结构:
三阶段的Load Balancer结构:
路由法则:
1、NAT路由
2、直接路由DR
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的健康状况