码迷,mamicode.com
首页 > 其他好文 > 详细

LVS 负载均衡集群

时间:2015-05-30 18:29:11      阅读:186      评论:0      收藏:0      [点我收藏+]

标签: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 负载均衡集群

标签:lvs 负载均衡

原文地址:http://noican.blog.51cto.com/4081966/1656576

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!