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

[经验分享] LVS集群之DR模型

[复制链接]

尚未签到

发表于 2019-1-4 13:38:41 | 显示全部楼层 |阅读模式
  
  LVSLinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
  LVS十种调度算法:

    静态(fixed method):
  
   rr, wrr, sh, dh
     rr: 轮叫(Round Robin) 调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
  wrr: 加权轮叫(Weighted Round Robin)调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
     sh: Source Hashing  源地址哈希,实现LVS持久性.基于client地址的来源区分。(用的很少)
     dh: Destination Hashing realserver中绑定两个ip,ld判断来者的ISP商,将其转到相应的IP
  

   动态(Dynamic method):
  lc, wlc, sed, nq, lblc, lblcr
     lc: Least Connection 最少链接,调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。  Overhead=Active*256+Inactive 根据结果得出下一个
     wlc: Weighted 加权最少链接(Weighted Least Connections)默认算法,负载均衡最理想.在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。  Overhead=(Active*256+Inactive)/Weight
     sed: Shortest Expect Delay(最短期望延迟)是wlc改进版 Overhead=(Active+1)*256/Weight
  基于wlc算法。这个必须举例来说:
  ABC三台机器分别权重123,连接数也分别是123.那么如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个.
       使用sed算法后会进行这样一个运算
         A:(1+1)/1
       B:(1+2)/2
       C:(1+3)/3    根据运算结果,把连接交给C
     nq: Never Queue无需队列,如果有台realserver的连接数=0就直接分配,不需要在进行sed运算.
     lblc: (dh+lc) Locality-based Least Connection 缓存服务器集群,基于本地的最小连接。把请求传递到负载小的服务器上.
     lblcr: Replicated and  Locality-based Least Connection (带复制功能基于本地的最小连接) 带复制调度的缓存服务器集群。某页面缓存在服务器A上,被访问次数极高,而其他缓存服务器负载较低,监视是否访问同一页面,如果是访问同一页面则把请求分到其他服务器.
  

  LVS工作模式主要有4种:
   NAT 源地址转换模式
    请求过程: CIP请求至DIP,DIP转发至RIP由RIP响应通过DIP将源址转换成VIP交付至CIP
    NAT模式下网络报文进出都要经过DIP处理,无论客户端请求还是服务器响应都必须经过DIP,DIP需要作为RIP的网关,如果后端RealServer过多,调度器很可能成为系统瓶颈
  要求:
       1、RealServer应该使用私有IP地址
  2、RealServer的网关应该指向DIP
  3、RIP和DIP应该在同一个网段内
  4、进出的报文都得经过Directory,在高负载下Directory会成为系统性能瓶颈
  5、支持端口映射
  6、RealServer可以使用任意OS
  

   DR 直接路由模式
  请求过程: CIP请求至DIP,DIP转发修改数据帧,将目标MAC指向RIP,由RIP直接通过其它路由响应用户,不能用原路由出去。DR模式是性能最好的一种模式
    要求:
       1、RealServer可以使用私有地址
       2、RealServer的网关一定不能指向DIP
       3、RealServer和Director要在同一物理网络内;DIP和RIP应该在同一网段
       4、入站报文经过Directory,出站则由RealServer直接响应Client
       5、不能做端口映射
       6、RealServer可以为大多数常见OS
  

   TUNNEL 基于IP隧道模式
  请求过程: CIP请求至RIP,需要封装额外源DIP、目标RIP报文.由RIP直接通过其它路由响应用户,不能用原路由出去。
  要求:
       1、RIP、DIP不能是私有地址
       2、RealServer的网关不能指向DIP
       3、入站报文经过Directory,出站则由RealServer直接响应Client
       4、不支持端口映射
       5、支持IP tunneling的OS才能用于RealServer
  

   FullNAT 源、目标地址转换模式 属于淘宝研发
   主要的思想是把网关和其下机器的通信,改为了普通的网络通信,从而解决了跨VLAN的问题。采用这种方式,DIP和RIP的部署在VLAN上将不再有任何限制,大大提高了运维部署的便利性
  

   调度器类型: Director, Dispatcher, Load Balancer
  
     Client IP       客户端请求IP         此处简称为CIP
     Directory       LVS集群调度器        此处简称为DIP
     RealServer      LVS集群后端主机       此处简称为RIP
     Virtual Host IP   LVS集群虚拟主机IP     此处简称为VIP
  
   LVS DR 模型实现过程:
     实验环境:相同物理网络    不同物理网络需将RIP网关指向不同路由
        环境:DIP 172.18.20.126    VIP 172.18.20.128
         RIP1 172.18.20.124   RIP2 172.18.20.125
        前提: RIP已经启用http服务,打开DIP主机端口转发功能
RIP1配置:
[root@Demo1~]#service httpd start          启动httpd服务,或者设置为自动启动
[root@Demo1~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore  
        定义lo网卡arp通告响应级别 1表示仅响应通过本地接口
[root@Demo1~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 定义所有网卡arp通告响应级别
[root@Demo1~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce  定义lo网卡arp通告限制级别     
  0是默认级别,通告所有网卡MAC信息  1是不把地址通告给非本地网络 2是只通告属于本地网络
[root@Demo1~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce  定义所有网卡arp通告限制
[root@Demo1~]#ifconfig lo:0 172.18.20.128 broadcast 172.18.20.128 netmask 255.255.255.255 up
        将arp响应配置在本地回环接口别名上,配置广播地址、子网掩码,只响应VIP请求        
[root@Demo1~]#route add -host 172.18.20.1 dev lo:0    添加一条主机路由在别名网卡上RIP2配置:
[root@Demo1~]#service httpd start          启动httpd服务,或者设置为自动启动
[root@Demo2~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore  
        定义lo网卡arp通告响应级别 1表示仅响应通过本地接口
[root@Demo2~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 定义所有网卡arp通告响应级别
[root@Demo2~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce  定义lo网卡arp通告限制级别     
  0是默认级别,通告所有网卡MAC信息  1是不把地址通告给非本地网络 2是只通告属于本地网络
[root@Demo2~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 定义所有网卡arp通告限制
[root@Demo2~]#ifconfig lo:0 172.18.20.128 broadcast 172.18.20.128 netmask 255.255.255.255 up
        将arp响应配置在本地回环接口别名上,配置广播地址、子网掩码,只响应VIP请求     
[root@Demo2~]#route add -host 172.18.20.1 dev lo:0    添加一条主机路由在别名网卡上DIP配置:
[root@Demo3~]#echo 1 > /proc/sys/net/ipv4/ip_forward     打开DIP主机端口转发功能
[root@Demo3~]#ifconfig eth0:0 172.18.20.128 broadcast 172.18.20.128 netmask 255.255.255.255 up
        将arp响应配置在eth0别名上,配置广播地址、子网掩码,只响应VIP请求
[root@Demo3~]#route add -host 172.18.20.1 dev eth0:0   添加一条主机路由在别名网卡上
[root@Demo3~]#ipvsadm -A -t 172.18.20.128:80 -s wlc     创建http集群,指定集群算法
[root@Demo3~]#ipvsadm -a -t 172.18.20.128:80 -r 172.18.20.124 -g -w 1 为集群添加RIP1,指定模型及权重
[root@Demo3~]#ipvsadm -a -t 172.18.20.128:80 -r 172.18.20.125 -g -w 2 为集群添加RIP2,指定模型及权重


  

  

  一般DR模型使用较多,至此LVS集群DR模型完成,如有错误请大家指教!

  




运维网声明 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.iyunv.com/thread-659354-1-1.html 上篇帖子: 六十二、负载均衡集群介绍、LVS介绍、LVS的调度算法、LVS NAT模式搭建 下篇帖子: 负载均衡LVS本介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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