当前位置: 首页 > 编程日记 > 正文

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

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

LVS (Linux Virtual Server)

LVSLinux 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 ServerReal Server处理完该请求后,将结果数据包直接返回给客户,完成一次负载调度。

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

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

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

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

LVS-TUN集群中注意Real Server的内核必须打上修正ARP问题的内核补丁。该方式中 Director将客户请求分配到不同的Real ServerReal Server处理请求后直接回应给用户,这样Director就只处理客户机与服务器的一半连接,极大地提高了Director的调度处理能力, 使集群系统能容纳更多的节点数。另外TUN方式中的Real Server可以在任何LANWAN 上运行,这样可以构筑跨地域的集群,其应对灾难的能力也更强,但是服务器需要为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

相关文章:

UI设计培训分享:设计当中的颜色运用

参加UI设计培训的同学应该都知道,颜色的搭配是学习UI设计非常重要的一步,颜色跟其他的东西一样,适量才会运用得当,如果在你的配色计划中坚持使用马克思三原色的话,你会得到更好的配色结果,为一个项目配色时…

《重构-改善既有代码的设计》读书笔记(二)

12、Lazy Class – 冗赘类 对于几乎没有用的类,运用inline class 将其功能移动。去除这些不值得维护的类。 13、Speculative Generality – 夸夸其谈未来性 对于你现在用不到,觉得总有一天会用到的代码,要警惕。用不上的装置总会挡我们的路&a…

css属性选择符的应用

注释:Internet Explorer 7 (以及更高版本)在规定了 !DOCTYPE 的情况下支持属性选择器。IE6 及更低的版本不支持属性选择器。 [title]{color:red;}  //为带有 title 属性的所有元素设置样式: [title"website"]{color:r…

【青少年编程】【答疑】控制Scratch异步代码的执行顺序

问题 几天前,我写了一篇图文 对「等待(0)秒」的理解,发现可以利用「等待(0)秒」这个积木块来解决Scratch中异步代码的执行顺序问题,即点击绿旗后可以控制多个角色中响应该事件的代码的顺序。 …

UI设计培训分享:学习UI设计有哪些技巧

互联网时代的快速发展,UI设计这个行业在互联网有着一席之地,越来越多的人都想要参加UI设计培训班学习,那么对于初学者来说,学习UI设计有哪些技巧呢?来看看下面的详细介绍吧。 学习UI设计有哪些技巧? 1、基础软件操作 UI设计培训…

07 Scratch等级考试(一级)模拟题

Scratch竞赛交流群已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档)。 这是第…

遮罩层+软键盘

一&#xff0e;清关里边申请清关 上传图片由于本身就是布局用的图片&#xff0c;微信手机长按会出现保存收藏该图片。 解决方法&#xff1a;添加同级元素充当遮罩层。设置样式&#xff0c;把点击事件从设置的上传图片中移除即可。 1&#xff09;<!-- 图片遮罩层 --> <…

UI培训技术分享:设计大神都在用的10种技法!

越来越多的人开始学习UI设计&#xff0c;想要进群到UI设计这个行业&#xff0c;本期小编为大家介绍的UI培训教程就是关于设计师会经常用到的一些技巧&#xff0c;帮助大家后期的工作中的应用。 UI培训技术分享&#xff1a;设计大神都在用的10种技法! 1.将图片融入背景来使用 同…

正则表达式限制输入整数或小数

string pattern "^\d{1,7}(?:\.\d{0,2}$|$)"; //这是一个格式匹配字符串 其中的含义可以参考http://hi.baidu.com/%D6%C2%D0%F9%B8%F3/blog/item/9060fe35f84f872370cf6c83.html。如果调用以下代码&#xff0c;可以匹配整数位最多为7位&#xff0c;小数位最多为2位…

QC配置邮件服务器(Mail Dir)

http://blog.sina.com.cn/s/blog_5007d1b10100m8cm.html 本文转自hblxp32151CTO博客&#xff0c;原文链接&#xff1a;http://blog.51cto.com/starpoint/584056&#xff0c;如需转载请自行联系原作者

Datawhale组队学习周报(第003周)

&#xff08;一&#xff09;当下 本周&#xff08;03月01日~03月07日&#xff09;&#xff0c;我们组织的5门组队学习的课程中有3门已经结营&#xff0c;2门仍在进行中。 1. CV实践-布匹疵点智能识别&#xff08;异常检测&#xff09; 已经结营&#xff0c;优秀队长与优秀学…

软件测试培训分享:如何才能选择到靠谱的培训学校

软件测试这个行业在近几年是非常的吃香的&#xff0c;职业需求也是非常大的&#xff0c;很多小伙伴都想寻找一个合适的软件测试培训机构进行系统学习&#xff0c;那么如何才能选择到靠谱的培训学校呢?来看看下面的详细介绍。 如何才能选择到靠谱的软件测试培训学校?一般可从以…

《统一沟通-微软-实战》-5-部署-SharePoint Server 2010

1. 登录-SP2010 2. 查看-计算机名 3. 查看-IP 4. 加域 5. 上网 安装 SharePoint Server 2010 若要安装和配置 SharePoint Server 2010&#xff0c;请按照以下步骤执行&#xff1a; 1. 运行 Microsoft SharePoint 产品准备工具&#xff0c;该工具安装使用 SharePoint Server 所需…

JQuery 给DOM控件绑定和移除事件的方法

绑定事件&#xff1a; Method 1$("#myElement").click( function() {alert($(this).text());}); Method 2 $("#myElement").bind(click, function() {alert($(this).text());}); 第一种看起来要方便一些&#xff0c;但它有一个局限&#xff0c;即DOM元素必…

【组队学习】【23期】Datawhale集成学习(上)

集成学习&#xff08;上&#xff09; 开源内容&#xff1a;https://github.com/datawhalechina/team-learning-data-mining/tree/master/IntegratedLearning 基本信息 贡献人员&#xff1a;李祖贤、薛传雨、赵可、杨毅远、陈琰钰学习周期&#xff1a;14天学习形式&#xff1…

APP测试和传统软件测试有什么区别?

软件测试从字面意思我们就知道它主要是做软件产品方面的测试&#xff0c;尤其是APP这块&#xff0c;那么很多人就问了APP测试和传统软件测试有什么区别?来看看下面的详细介绍。 软件测试培训分享&#xff1a;APP测试和传统软件测试有什么区别?移动APP的特点使得它与传统软件在…

C6678-SRIO和Virtex6-FPGA

设计的板子到了SRIO调试阶段了&#xff0c;在板子上&#xff0c;一片V6和两片6678通过4XSRIO互联&#xff0c;中间没有Switch&#xff0c;总算搞定了相互之间的通信。首先&#xff0c;感谢Ti论坛提供的SRIO程序范例&#xff0c;但是其硬件平台是EVM板&#xff0c;更多的只能用于…

【组队学习】【23期】Datawhale编程实践(区块链)

编程实践&#xff08;区块链&#xff09; 开源内容&#xff1a;https://github.com/datawhalechina/team-learning-program/tree/master/Blockchain 基本信息 贡献人员&#xff1a;陈锴、孙子涵、李岳昆、易远哲学习周期&#xff1a;12天学习形式&#xff1a;根据教程主线进…

bootstrap模态框显示控制

默认模态框弹出后&#xff0c;点击背景蒙层部分弹框会消失&#xff0c;如要解决&#xff0c;需要在模态框属性中加 aria-hidden"true" data-backdrop"static"属性即可&#xff1b; 转载于:https://www.cnblogs.com/jiangze-blog/p/7844639.html

什么是Python?主要运用哪些方面?

人工智能领域少不了Python的相助&#xff0c;这也是目前Python技术在人工领域的好前景所致&#xff0c;近几年&#xff0c;想要学习Python技术的人越来越多&#xff0c;很多人都想知道什么是Python?主要运用哪些方面?来看看下面的详细介绍。 什么是Python?主要运用哪些方面?…

第五课:系统目录及ls·文件类型及alias命令介绍

1、上过一次我们学习了单用户和救援模式及服务器秘钥登录等操作&#xff0c;而我们最终的目的还是要操作和使用linux系统&#xff0c;所以我们今天先初步学习linux的基本命令如下&#xff1a; 一目录介绍 ls命令介绍 文件类型 alias命令介绍 1、首先我们…

jquery 实现表单验证功能代码(简洁)

html xmlns"http://www.w3.org/1999/xhtml"> <head> <title>表单验证页面</title> <link href"../Scripts/themes/default/easyui.css" rel"stylesheet" type"text/css" /> <script src"../Script…

【组队学习】【23期】Datawhale深度推荐模型

深度推荐模型 开源内容&#xff1a;https://github.com/datawhalechina/team-learning-rs/tree/master/DeepRecommendationModel 基本信息 贡献人员&#xff1a;罗如意、吴忠强、田雨&#xff0c;宁彦吉&#xff0c; 何世福、徐何军、赖敏材、刘纪川学习周期&#xff1a;13天…

参加Python培训后能干嘛

​ 参加Python培训后能干嘛?相信这是目前很多正在学习Python技术的同学都比较关注的一个问题&#xff0c;Python的法发展前景是非常好的&#xff0c;那么具体学完之后可以运用到哪些方面呢?我们来看看下面的详细介绍吧。 参加Python培训后能干嘛?网站是很基本的&#xff0c;…

博客园HTML源码运行特制js(原创自Zjmainstay)

canrun 测试运行HTML <html> <head><title>测试博客园HTML源码运行程序</title><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><meta http-equiv"Content-Language" content"zh-CN…

【组队学习】【23期】Datawhale零基础入门数据挖掘(心跳信号分类)

零基础入门数据挖掘&#xff08;心跳信号分类&#xff09; 开源内容&#xff1a;https://github.com/datawhalechina/team-learning-data-mining/tree/master/HeartbeatClassification 基本信息 贡献人员&#xff1a;鱼佬、牧小熊、吉米杜、张晋、王皓月、姚昱君学习周期&am…

Unity3D提示“XX,some are mac os x (unix) and some are windows”

2019独角兽企业重金招聘Python工程师标准>>> 解决办法&#xff1a; 将Unity安装目录\Editor\Data\Resources\ScriptTemplates\目录下的所有文件用上面的方式修改换行编码&#xff0c;以后通过Unity3D编辑器创建的文件将默认以“CR LF”换行&#xff0c;一劳永逸。 转…

什么是Python?前景怎么样?

​ Python在人工智能行业的高速发展&#xff0c;引起了很多人的关注&#xff0c;很多目前都不知道什么是Python?前景怎么样?那么下面小编就为大家做下详细的介绍&#xff0c;希望能够帮助到大家。 什么是Python?前景怎么样? 你可能听说过c语言&#xff0c;听说过java语言&a…

Spring整合CXF,发布RSETful 风格WebService

这篇文章是承接之前CXF整合Spring的这个项目示例的延伸&#xff0c;所以有很大一部分都是一样的。关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述了。如果你对Spring整合CXF WebService不了解&#xff0c;具体你可以参看这两篇文章&#xff1a; http://www.cnblogs.c…

使用CNN做文本分类——将图像2维卷积换成1维

使用CNN做文本分类from __future__ import division, print_function, absolute_importimport tensorflow as tfimport tflearnfrom tflearn.layers.core import input_data, dropout, fully_connectedfrom tflearn.layers.conv import conv_1d, global_max_poolfrom tflearn.l…