标签:lvs 负载均衡
LVS 负载均衡集群
说明:在学习LVS负载均衡集群时,最好对网络通信原理,尤其是ARP通信原理有所了解,否则,将无法理解LVS的工作原理。
LVS工作原理和安装配置
#################工作模式及其原理##################
##VS/NAT模式(即Virtual Server via Network Address Translation):
此种模式是通过网络地址转换技术来实现虚拟服务器。
##实现原理:
1.请求: 客户端发送请求到调度器,调度器将请求报文的目的地址(即虚拟IP地址)及其端口,改写成选定的Real Server地址和端口,然后把请求报文发送给Real Server。
2.应答: Server将应答的数据报文返回用户时,在经过调度器时,将数据报文的源地址和端口改成虚拟IP地址和相应端口,最后将数据发送给客户端,负载调度完成。
注:这种模式可以既可以节省公司购买公网IP的开销,也可以提高安全性。
##VS/TUN模式(即Virtual Server via IP Tunneling):
此种模式是通过IP隧道技术来实现虚拟服务器。
##实现原理:
1.请求与应答:
客户端发送请求到调度器,调度器将请求报文通过Ip隧道技术转发到Real Server,并由隧道网卡tunl0(此网卡配置了VIP)接收并处理。最后,应答数据由Real Server直接返回给客户端。
注:此种模式中的RealServer既可以和调度器(DirectorServer)在同一网段也可以在不同的网段。
##VS/DR模式(即Virtual Server via Direct Routing)
此种模式是通过直接路由技术来实现虚拟服务器。
##实现原理:
1.请求与应答:
客户端发送请求到调度器,调度器将请求报文的目的MAC地址由DIP_MAC改成RIP_MAC,但源MAC地址不变,还是CIP_MAC。然后,请求报文被转发给 Real Server。最后,应答数据由 Real Server直接返回给客户端。
注:在此过程中,因为是在请求报文到达调度器后,所有的通信都是局域网通信,所以请求报文的源IP,目的IP(即VIP)始终未变。并且由于LVS内部的实现机制,实现了源MAC地址不变,目的MAC地址改为RealServer的MAC地址,从而实现了数据的转发。而在数据回应时,因为应答数据都是通过配置特定的路由在VIP的网口发送出去的,因此也就避免了源IP是RIP的问题。
2.疑问:
如何防止客户端下次请求,不经过调度器,直接访问RealServer的情况?
答:1.因为一台计算机加入网络中的时候,首先都会向网络中的所有设备通告自己的所有的网口上的IP地址和对应的MAC地址,因此需要避免RealServer将自己的VIP通告给其他联网设备。所以要设置:
arp_announce #此参数可以定义向联网设备中发送ARP通告的网络接口所要通告的自己的IP地址的限制级别。比如,值:2——只通告对应网口所在的ip地址;值:0——通告计算机上所有网口上所有IP地址;值:1——尽量避免通告其他网口上的IP地址。
2.其次是其他主机在发送数据给RealServer时,会发送ARP请求给RealServer。因此要避免RealServer中的VIP端口来响应其他联网设备发来的ARP请求。所以要设置:
arp_ignore #此参数可以定义网络接口响应ARP请求的不同的应答模式,以至于可以解析目的IP地址。例如:值:0——响应配置在本地网口上所在的所有IP地址;值:1——仅回应接收到ARP请求的所在的网口上的IP地址;值:2——仅回应接收到ARP请求的所在的网口上的IP地址,并且来访IP地址必须和本地的IP地址在同一个子网内。
注:此种模式中的RealServer和调度器(DirectorServer)必须在同一网段。并且这种模式是三种模式性能最好的。
#####################LVS各种模式的配置#####################
##VS/NAT模式
1.网络环境:
主机 ip地址
Direct Server: D1 eth0: 192.168.1.104/255.255.255.0
eth1: 10.0.0.1/255.255.255.0
Real Server : R1 eth0: 10.0.0.11/255.255.255.0
Real Server : R2 eth0: 10.0.0.12/255.255.255.0
2.配置Direct Server
1.echo 1 >/proc/sys/net/ipv4/ip_forward #开启linux路由管道
2.ipvadm -At 192.168.1.104:80 -s rr #添加虚拟服务,-s表示指定调度算法;
3.ipvdam -at 192.168.1.104:80 -r 10.0.0.11 -m
ipvdam -at 192.168.1.104:80 -r 10.0.0.12 -m #添加真实服务器,-m表示NAT模式
4. service ipvadm save
注意,Direct Server上的网卡不需要配置网关地址。
3.配置Real Server
1.配置网关为10.0.0.1
2.安装httpd服务进行测试
注:当然在生产环境中,并没有这么简单。还需要配置共享存储、DirectServer的高可用、以及存储高可用等。
##VS/TUN模式
1.网络环境:
主机 ip地址
Direct Server: D1 eth0: 192.168.1.101/255.255.255.0
tunl0: 192.168.1.104/255.255.255.255
Real Server : R1 eth0: 192.168.1.102/255.255.255.0
tunl0:: 192.168.1.104/255.255.255.255
Real Server : R2 eth0: 192.168.1.103/255.255.255.0
tunl0:: 192.168.1.104/255.255.255.255
2.配置Direct Server
1.ifconfig tunl0 192.168.1.104 netmask 255.255.255.255 up
2.route add -host 192.168.1.104 dev tunl0
3.ipvadm -At 192.168.1.104:80 -s rr #添加虚拟服务,-s表示指定调度算法;
4.ipvdam -at 192.168.1.104:80 -r 10.0.0.11 -i
ipvdam -at 192.168.1.104:80 -r 10.0.0.12 -i #添加真实服务器
5. service ipvadm save
3.配置Real Server
1. echo 1 >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
2.ifconfig tunl0 192.168.1.104 netmask 255.255.255.255
route add -host 192.168.1.104 dev tunl0
3.安装httpd服务进行测试
##VS/DR模式
1.网络环境:
主机 ip地址
Direct Server: D1 eth0: 192.168.1.101/255.255.255.0
lo:0: 192.168.1.104/255.255.255.255
Real Server : R1 eth0: 192.168.1.102/255.255.255.0
lo:0: 192.168.1.104/255.255.255.255
Real Server : R2 eth0: 192.168.1.103/255.255.255.0
lo:0: 192.168.1.104/255.255.255.255
2.配置Direct Server
1.ifconfig eth0:0 192.168.1.104 netmask 255.255.255.255 up
2.route add -host 192.168.1.104 dev eth0:0
3.ipvadm -At 192.168.1.104:80 -s rr #添加虚拟服务,-s表示指定调度算法;
4.ipvdam -at 192.168.1.104:80 -r 10.0.0.11 -g
ipvdam -at 192.168.1.104:80 -r 10.0.0.12 -g #添加真实服务器
5. service ipvadm save
3.配置Real Server
1.ifconfig lo:0 192.168.1.104 netmask 255.255.255.255 up
route add -host 192.168.1.104 dev lo:0
2. 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
3.安装httpd服务进行测试
注:在设置VIP地址,其所在的网络分类(A类,B类,C类)应该和DIP一样。否则测试不会成功。
本文出自 “一切皆有可能” 博客,请务必保留此出处http://noican.blog.51cto.com/4081966/1656576
标签:lvs 负载均衡
原文地址:http://noican.blog.51cto.com/4081966/1656576