设为首页 收藏本站
查看: 950|回复: 0

[经验分享] LVS 负载均衡集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-1 09:02:21 | 显示全部楼层 |阅读模式
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一样。否则测试不会成功。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-72651-1-1.html 上篇帖子: LVS 的web工具Piranha和节点监控工具Ldirector 下篇帖子: Linux集群之LVS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表