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

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-6-21 09:21:28 | 显示全部楼层 |阅读模式
LVS是Linux 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主机端口转发功能
1
2
3
4
5
6
7
8
9
10
11
RIP1配置:
[iyunv@Demo1~]#service httpd start          启动httpd服务,或者设置为自动启动
[iyunv@Demo1~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore  
        定义lo网卡arp通告响应级别 1表示仅响应通过本地接口
[iyunv@Demo1~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 定义所有网卡arp通告响应级别
[iyunv@Demo1~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce  定义lo网卡arp通告限制级别     
  0是默认级别,通告所有网卡MAC信息  1是不把地址通告给非本地网络 2是只通告属于本地网络
[iyunv@Demo1~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce  定义所有网卡arp通告限制
[iyunv@Demo1~]#ifconfig lo:0 172.18.20.128 broadcast 172.18.20.128 netmask 255.255.255.255 up
        将arp响应配置在本地回环接口别名上,配置广播地址、子网掩码,只响应VIP请求        
[iyunv@Demo1~]#route add -host 172.18.20.1 dev lo:0    添加一条主机路由在别名网卡上



1
2
3
4
5
6
7
8
9
10
11
RIP2配置:
[iyunv@Demo1~]#service httpd start          启动httpd服务,或者设置为自动启动
[iyunv@Demo2~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore  
        定义lo网卡arp通告响应级别 1表示仅响应通过本地接口
[iyunv@Demo2~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 定义所有网卡arp通告响应级别
[iyunv@Demo2~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce  定义lo网卡arp通告限制级别     
  0是默认级别,通告所有网卡MAC信息  1是不把地址通告给非本地网络 2是只通告属于本地网络
[iyunv@Demo2~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 定义所有网卡arp通告限制
[iyunv@Demo2~]#ifconfig lo:0 172.18.20.128 broadcast 172.18.20.128 netmask 255.255.255.255 up
        将arp响应配置在本地回环接口别名上,配置广播地址、子网掩码,只响应VIP请求     
[iyunv@Demo2~]#route add -host 172.18.20.1 dev lo:0    添加一条主机路由在别名网卡上



1
2
3
4
5
6
7
8
DIP配置:
[iyunv@Demo3~]#echo 1 > /proc/sys/net/ipv4/ip_forward     打开DIP主机端口转发功能
[iyunv@Demo3~]#ifconfig eth0:0 172.18.20.128 broadcast 172.18.20.128 netmask 255.255.255.255 up
        将arp响应配置在eth0别名上,配置广播地址、子网掩码,只响应VIP请求
[iyunv@Demo3~]#route add -host 172.18.20.1 dev eth0:0   添加一条主机路由在别名网卡上
[iyunv@Demo3~]#ipvsadm -A -t 172.18.20.128:80 -s wlc     创建http集群,指定集群算法
[iyunv@Demo3~]#ipvsadm -a -t 172.18.20.128:80 -r 172.18.20.124 -g -w 1 为集群添加RIP1,指定模型及权重
[iyunv@Demo3~]#ipvsadm -a -t 172.18.20.128:80 -r 172.18.20.125 -g -w 2 为集群添加RIP2,指定模型及权重




QQ截图20160621092112.jpg




运维网声明 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-233107-1-1.html 上篇帖子: 简单介绍,基于ldirectord的高可用lvs-dr调度器 下篇帖子: 虚拟机测试LVS碰到巨大的奇怪问题!!! 模型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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