LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍

LVS (Linux Virtual Server)

LVS(Linux Virtual Server)其实就是针对高可伸缩、高可用网络服务的需求,给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。所以,lvs需要内核有ipvs支持,确保你的内核支持ipvs后,只需安装ipvsadm就可以把一台服务器配置成负载调度器(Load Balancer)。对外提供服务的IP,也就是我们访问的IP称做VIP。调度器LB的任务主要是分发请求,真正处理的是真实服务器(Real Server)。

LVS的三种负载均衡模型:

为了区别这三种模型,我们可以先做一下对比

NAT模型

DR模型

TUN模型

集群节点(rip和dip)

需要在同一个子网当中

必须在同一个物理网络当中

不需要在一个物理网络当中

rip要求

私有地址,仅用于节点之间

可以使用公网地址

一定不能是私有地址

Director处理的请求

处理入站和出站

仅处理入站

仅处理入站

Real-server的网关

要指向dip

不能指向dip,而是路由器

不能指向dip,而是路由器

端口映射

可以实现

不能实现

不能实现

Real-server服务器要求

任意操作系统

支持大多数操作系统

必须是支持隧道功能的操作系统

注:rip为real-server的IP地址,dip为director的IP地址

LVS-NAT 的数据转发流程是:Director机器收到外界请求,改写数据包的目标地址,按相应的调度算法将其发送到相应Real Server上,Real Server处理完该请求后,将结果数据包返回到其默认网关,即Director机器上,Director机器再改写数据包的源地址,最后将其返回给外界。这样就完成一次负载调度。

LVS-NAT方式负载均衡集群(图 1)

注:LVS-NAT集群中Real Server可以是任何的操作系统,而且无需做任何特殊的设定,惟一要做的就是将其默认网关指向Director机器。Real Server可以使用局域网 的 内 部 IP(192.168.0.0/24)。Director要有两块网卡,一块网卡绑定一个外部IP地址(10.0.0.1),另一块网卡绑定局域网的内部IP(192.168.0.254),作为Real Server的默认网关。

LVS-DR的数据转发流程是:Director机器收到外界请求,按相应的调度算法将其直接发送到相应Real Server,Real Server处理完该请求后,将结果数据包直接返回给客户,完成一次负载调度。

LVS-DR 方式负载均衡集群(图 2)

LVS-DR集群中注意Real Server的内核也必须打上修正ARP问题的内核补丁

LVS-TUN的数据转发流程是:Director机器收到外界请求,按相应的调度算法将其通过IP隧道发送到相应Real Server,Real Server处理完该请求后,将结果数据包直接返回给客户。至此完成一次负载调度。

LVS-TUN方式负载均衡集群(图 3)

LVS-TUN集群中注意Real Server的内核必须打上修正ARP问题的内核补丁。该方式中 Director将客户请求分配到不同的Real Server,Real Server处理请求后直接回应给用户,这样Director就只处理客户机与服务器的一半连接,极大地提高了Director的调度处理能力, 使集群系统能容纳更多的节点数。另外TUN方式中的Real Server可以在任何LAN或WAN 上运行,这样可以构筑跨地域的集群,其应对灾难的能力也更强,但是服务器需要为IP封装付出一定的资源开销,而且后端的Real Server必须是支持IP Tunneling的操作系统。

LVS的十种调度方法

轮调(RR)调度器将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载,每个服务器都一样多。

加权轮调(WRR) 调度器根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

目标地址Hash 根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

源地址Hashing根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

最少链接(LC)根据RS算法将请求调度到已建立的链接数最少的服务器上。

RS=active*256+inactive=overhead  active活动连接数,inactive非活动连接数,overhead值越小则连接到谁上边

加权最少链接(WLC) 在集群系统中的服务器性能差异较大的情况下,既要根据RS算法,还要考虑服务器的性能,具有较高权值的服务器将承受较大比例的活动连接负载。

最短的期望的延迟(SED) 基于WLC,但却有所改变,依据(active+1)*256/weight=overhead,值越小,则连接到哪个服务器上。

最少队列调度(NQ)无需队列。如果有台realserver的连接数=0就直接分配过去,不需要在进行sed运算

基于局部性的最少链接(LBLC)针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器。

带复制的基于局部性最少链接(LBLCR)也是针对目标IP地址的负载均衡,目前主要用于 Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,LBLC算法维护从一个目标IP地址到一台服务器的映而射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

本文出自 “譕淚らづ寳唄” 博客,请务必保留此出处http://fengjunfei.blog.51cto.com/4356100/834800

posted on 2012-07-07 11:33 冰雨战士 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/zfying/archive/2012/07/07/2580494.html

LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍相关推荐

  1. LVS(Linux Virtual Server,Linux虚拟服务器)开源软件创始人——章文嵩

    章文嵩是技术专家,也是LVS(Linux Virtual Server,Linux虚拟服务器)开源软件创始人,曾经是TelTel公司的首席科学家,ChinaCluster的共同创办人.他对自己的看法是 ...

  2. 转:Discuz!NT负载均衡解决方案(HA)之---LVS(Linux Virtual Server)

    来自:http://www.cnblogs.com/daizhj/archive/2010/06/13/1693673.html 在Discuz!NT的最新版本(企业版)中,支持目前主流LINUX平台 ...

  3. Linux负载均衡Linux Virtual Server (lvs) 内核自带的负载均衡器

    目录 lvs 转发模式 调度算法 lvs配置示例 LVS缺点 Haproxy Nginx 自研负载均衡 Google Maglev UCloud Vortex 参考文档 lvs Linux Virtu ...

  4. lvs的调度算法有几种_LVS:三种负载均衡方式比较

    1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很 ...

  5. LVS的三种负载均衡以及高可用原理(VS/NAT、VS/TUN、VS/DR)

    LVS LVS(Linux Virtual Server)是一个虚拟的服务器集群(Cluster)系统,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务 ...

  6. LVS:三种负载均衡方式比较+另三种负载均衡方式

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  7. LVS:三种负载均衡方式比较

    1.什么是LVS?   首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具 ...

  8. LVS:三种负载均衡方式与八种均衡算法

    1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很 ...

  9. 利用LVS(Linux Virtual Server)系统实现Web服务器集群的负载均衡

    利用LVS(Linux Virtual Server)系统实现Web服务器集群的负载均衡 LVS系统结构与特点: 1. Linux Virtual Server:简称LVS.是基于Linux服务器集群 ...

最新文章

  1. LeetCode 23. Merge k Sorted Lists--Python解法--优先队列,分治法
  2. tcp linux 报文内容,linux – tcpdump – 只是逐行输出数据包内容
  3. uni-app导航栏配置
  4. epoll的再次认识
  5. LeetCode 1786. 从第一个节点出发到最后一个节点的受限路径数(迪杰斯特拉 + 拓扑排序)
  6. java如何实现开机启动,怎样实现开机启动holer
  7. java查询SQLServer遇到问题:对象名无效。
  8. [文摘20080428]无线局域网的相关网络安全技术应用指南
  9. java 线程锁概念_Java多线程——锁概念与锁优化
  10. Markdown中显示代码段的语法特殊字符`如何输入?
  11. 信号与系统----导论1杂谈为什么要学信号与系统
  12. 不要再学 JSP 了,学 SpringBoot + Thymeleaf + Vue吧
  13. 逆向分析商业软件 010 Editor 及注册机编写
  14. Oracle 数据库增删改查
  15. Python字符串前缀u、r、b、f含义
  16. H3C 无线WLAN侧AC+FIA配置
  17. 【漏洞学习——SSRF】腾讯某处SSRF漏洞(非常好的利用点)附利用脚本
  18. 【题解反思】海亮信息集训A-B班-分治初步专项
  19. 网页中的png图片无法显示?
  20. 解析八核Cortex-A55+ 24路1080解码能力的AI模组

热门文章

  1. 移动方向_1908号台风“范斯高”继续向西北方向移动
  2. java查看对象锁级别_对象级别锁 vs 类级别锁(Java)
  3. python控制手机发短信_python-在python3中使用容联云通讯发送短信验证码
  4. php最近还热门么,2018什么开发语言热门 PHP开发语言火侯还会持续吗
  5. java11 是长期支持_这里有你不得不了解的Java 11版本特性说明
  6. svn mysql认证_svnapachemysql 认证搭建
  7. razor html帮助器,在 ASP.NET 网页(Razor)网站中创建和使用帮助器 | Microsoft Docs
  8. java 常用方法_Java常用方法总结(持续更新中)
  9. DASH流媒体MPD文件解析
  10. MySQL面试题 | 附答案解析(十九)