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

[经验分享] 负载均衡之LVS学习小结

[复制链接]

尚未签到

发表于 2019-1-5 12:44:43 | 显示全部楼层 |阅读模式
  负载均衡的解决方案有硬件解决方案和软件解决方案。主流的硬件解决方案是:
  F5   BIG-IP
  Citrix  Netscalar
  A10    A10
  Array
  Redware
        LVS(Linux Virtual Server)是工作在网络四层交换或路由软件解决方案。它通过内核框架模块ipvs及配置在该框架之上的一组规则来实现交换或路由。ipvsadm则是配置路由规则的工具。ipvs基于内核的netfilter框架模块,工作在其INPUT链上,将到达INPUT链的需要转发的包路由至Real Server。因此,ipvs功能会与netfilter的filter和nat表的功能有冲突。最好不要在部署了ipvs规则的主机上配置iptables的filter和nat规则。LVS有四种模型:NAT, DR, TUN, FULLNAT。
  NAT模型的特征:
  1.  RS应该使用私有地址。
  2.  RS的网关必须指向Director的DIP。
  3.  RS的RIP和DIP必须在同一网段内。
  4.  请求和响应的报文都经过Director,在高负载的场景中,Director可能成为系统性能瓶颈。
  5.  支持端口映射。
  6.  RS可以使用任意支持集群服务的操作系统。
  
  DR模型的特征:
  1.  RS可以使用私有地址,也可以使用公网地址。
  2.  RS的网关一定不能指向DIP
  3.  RS和Director要在同一物理网络内(不能有路由器分割)
  4.  请求报文经过Director,但响应报文一定不经过Director
  5.  不支持端口映射
  6.  RS可以使用大多数的操作系统
  
  TUN模型的特征:
  1.  RIP、DIP和VIP都必须是公网地址
  2.  RS的网关一定不会指向DIP
  3.  请求报文经过Director,但响应报文一定不经过Director
  4.  不支持端口映射
  5.  RS的操作系统必须支持IP隧道技术
  
LVS支持的10种调度策略
  静态策略


  •   rr:         Round Robin
  •   wrr:      Weight Round Robin
  •   sh:        Source Hashing
  •   dh:       Destination Hashing

动态策略

  •   lc:           Least Connection            Overhead=Active*256+Inactive,选择负载值最小进行调度。
  •   wlc:        Weight Least Connection       Overhead=(Active*256+Inactive)/weight
  •   sed:       Shortest Expect Delay              Overhead=(Active+1)*256/weight
  •   nq:         Nerver Queue                           
  •   lblc:       Locality-based Least Connection      dh+lc
  •   lblcr:      Replicated and Locality-based Least Connection
  
Session持久机制

  •   session绑定:始终将同一个请求者的连接定向至同一个RS(第一次请求时仍由调度方法选择);没有容错能力,有损均衡效果。
  •   session复制:在RS之间同步session,因此,每个RS持集群中所有的session;对于大规模集群环境不适用。
  •   session服务器:利用单独部署的服务器来统一管理session。
  
ipvs命令工具常用选项和参数

集群服务相关
  ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask]
  ipvsadm -D -t|u|f service-address
  ipvsadm -C
  -A: 添加一个集群服务
  -t: tcp
  -u: udp      
-f: firewall mark,通常用于将两个或以上的服务绑定为一个服务进行处理时使用;

  service-address:      
      -t IP:port        
      -u ip:port        
      -f firewall_mark

  -s 调度方法,默认为wlc
  -p timeout: persistent connection, 持久连接
  
  -E:修改定义过的集群服务
  -D -t|u|f service-address:删除指定的集群服务
RS相关
  ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]
  ipvsadm -d -t|u|f service-address -r server-address
  -a:向指定的CS中添加RS      
            -t|-u|-f service-address:指明将RS添加至哪个Cluster Service中

              -r: 指定RS,可包含{IP[:port]},只有支持端口映射的LVS类型才允许此处使用跟集群服务中不同的端口
              LVS类型:      
                -g: Gateway, DR        
                -i: ipip, TUN        
                -m: masquerade, NAT

  -e: 修改指定的RS属性
  -d -t|u|f service-address -r server-address:从指定的集群服务中删除某RS
保存规则:(使用输出重定向)
  ipvsadm-save
  ipvsadm -S
载入指定的规则:(使用输入重定向)
  ipvsadm -R
  ipvsadm-restore
查看ipvs规则
  -L [options]      
            -n: 数字格式显示IP地址        
            -c: 显示连接数相关信息        
            --stats: 显示统计数据        
            --rate: 速率        
            --exact:显示统计数据的精确值

  
LVS持久连接
  PCC:将来自于同一个客户端发往VIP的所有请求统统定向至同一个RS。
  PPC:将来自于一个客户端发往某VIP的某端口的所有请求统统定向至同一个RS。
  PFMC: 端口绑定,port affinity。基于防火墙标记,将两个或以上的端口绑定为同一个服务。
  举例:
  # iptables -t mangle -A PREROUTING -d VIP -p tcp --dport CS_Port -j MARK --set-mark num   (num取0-99之间的值)
  # ipvsadm -A -f num

LVS的DR模型配置实例
        假定用3台主机配置一个web集群。一台Director,2台Real Server。VIP:192.168.100.185,DIP:192.168.100.105,RS1的RIP:192.168.100.107,RS1的RIP:192.168.100.108 。3台主机都连接在同一交换机上,2台Real Server上web服务都已安装配置完成。以下主要给出LVS集群相关的配置过程。
  RS1的配置:
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
#
# ifconfig lo:0 192.168.100.185 netmask 255.255.255.255 broadcast 192.168.100.185 up
# route add -host 192.168.100.185 dev lo:0
#
  RS2的配置:
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
#
# ifconfig lo:0 192.168.100.185 netmask 255.255.255.255 broadcast 192.168.100.185 up
# route add -host 192.168.100.185 dev lo:0
  Director的配置:
  安装ipvsadm
         # yum install ipvsadm
# ifconfig eth0:0 192.168.100.185 netmask 255.255.0.0 broadcast up
# route add -host 192.168.100.185 dev eth0:0
#
# iptables -t filter -F
# ipvsadm -A -t 192.168.100.185:80 -s rr
# ipvsadm -a -t 192.168.100.185:80 -r 192.168.100.107 -g
# ipvsadm -a -t 192.168.100.185:80 -r 192.168.100.108 -g




运维网声明 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-659666-1-1.html 上篇帖子: LVS负载均衡配置 下篇帖子: Redhat5.8 64位LVS实例环境讲解【二】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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