介绍:
LVS是Linux Virtual Server的简称,即Linux虚拟服务器。它是基于TCP/IP的负载均衡技术,转发效率高,具有处理百万计并发连接请求的能力。
LVS通过IPVS模块实现。IPVS模块安装在LVS集群作为负载均衡的主节点上,虚拟出一个IP地址和端口对外提供服务。用户通过访问这个虚拟服务(VS),请求由负载均衡器(LB)分发到后端真实服务器(RS)中,由RS实际处理用户的请求并返回响应。
如下图所示:

IPVS三种转发模式:
根据负载均衡器转发客户端请求以及RS返回响应机制的不同,将IPVS的转发模式分为三种:NAT,DR,FULLNAT。
NAT模式(Network Address Translation)
请求包和响应包都需要经过LB处理。当客户端的请求到达虚拟服务 后,LB会对请求包做目的地址转换(DNAT),将请求包的目的IP改写为RS的IP。当收到RS的响应后,LB会对响应包做源地址转换(SNAT),将响应包的源IP改写为LB的IP。
NAT模式的特点:
1.LB会修改数据包的地址
2.对于请求包,会进行DNAT;对于响应包,会进行SNAT。
3.LB会透传客户端IP到RS(DR模式也会透传)
4.虽然LB在转发过程中做了NAT转换,但是因为只是做了部分地址转发,所以RS收到的请求包里是能看到客户端IP的。
5.需要将RS的默认网关地址配置为LB的浮动IP地址。
6.LB和RS须位于同一个子网,并且客户端不能和LB/RS位于同一子网。
执行过程如下图所示:

DR模式(Direct Routing)
客户端的请求包到达负载均衡器的虚拟服务IP端口后,负载均衡器不会改写请求包的IP和端口,但是会改写请求包的MAC地址为后端RS的MAC地址,然后将数据包转发;真实服务器处理请求后,响应包直接回给客户端,不再经过负载均衡器。所以DR模式的转发效率是最高的,特别适合下行流量较大的业务场景,比如请求视频等大文件。
DR模式的特点:
1.数据包在LB转发过程中,源/目的IP端口都不会变化。
2.LB只是将数据包的MAC地址改写为RS的MAC地址,然后转发给相应的RS。
3.每台RS上都必须在环回网卡上绑定LB的虚拟服务IP,因为LB转发时并不会改写数据包的目的IP,所以RS收到的数据包的目的IP仍是LB的虚拟服务IP。为了保证RS能够正确处理该数据包,而不是丢弃,必须在RS的环回网卡上绑定LB的虚拟服务IP。这样RS会认为这个虚拟服务IP是自己的IP,自己是能够处理这个数据包的。否则RS会直接丢弃该数据包。
4.RS上的业务进程必须监听在环回网卡的虚拟服务IP上,且端口必须和LB上的虚拟服务端口一致。因为LB不会改写数据包的目的端口,所以RS服务的监听端口必须和虚拟服务端口一致,否则RS会直接拒绝该数据包。
5.RS处理完请求后,响应直接回给客户端,不再经过LB。
6.LB和RS须位于同一个子网。
如下图所示:

FULLNAT模式
FULLNAT模式下,LB会对请求包和响应包都做SNAT+DNAT。
FULLNAT模式的特点:
1.LB完全作为一个代理服务器,FULLNAT下,客户端感知不到RS,RS也感知不到客户端,它们都只能看到LB。此种模式和七层负载均衡有点相似,只不过不会去解析应用层协议,而是在TCP层将消息转发。
2.LB和RS对于组网结构没有要求,不同于NAT和DR要求LB和RS位于一个子网,FULLNAT对于组网结构没有要求。只需要保证客户端和LB、LB和RS之间网络互通即可。
流程如下图所示:

IPVS支持的调度算法
对于后端的RS集群,LB是如何决策应该把消息调度到哪个RS节点呢?这是由负载均衡调度算法决定的。IPVS常用的调度算法有:

轮询(Round Robin)
  LB认为集群内每台RS都是相同的,会轮流进行调度分发。从数据统计上看,RR模式是调度最均衡的。

加权轮询(Weighted Round Robin)
  LB会根据RS上配置的权重,将消息按权重比分发到不同的RS上。可以给性能更好的RS节点配置更高的权重,提升集群整体的性能。

最小连接数(Least Connections)
  LB会根据和集群内每台RS的连接数统计情况,将消息调度到连接数最少的RS节点上。在长连接业务场景下,LC算法对于系统整体负载均衡的情况较好;但是在短连接业务场景下,由于连接会迅速释放,可能会导致消息每次都调度到同一个RS节点,造成严重的负载不均衡。

加权最小连接数(Weighted Least Connections)
  最小连接数算法的加权版~

地址哈希(Address Hash)
  LB上会保存一张哈希表,通过哈希映射将客户端和RS节点关联起来。

转载于:https://blog.51cto.com/13438572/2357433

Linux负载均衡--LVS相关推荐

  1. Linux负载均衡--LVS(IPVS)

    一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,现在已经是 Linux标准内核的一部分.LVS是一种叫基于T ...

  2. Linux负载均衡软件LVS

    Linux负载均衡软件LVS之三(配置篇) LVS集群有DR.TUN.NAT三种配置模式,可以对www服务.FTP服务.MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式 ...

  3. Linux负载均衡软件LVS(概念篇)

    Linux负载均衡软件lvs(概念篇) 一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,它的官方站点是(www ...

  4. linux负载均衡(什么是负载均衡)

    linux负载均衡(什么是负载均衡) 一.总结 一句话总结: 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用 ...

  5. Linux 负载均衡介绍之LB介绍

    Linux 负载均衡介绍之LB 负载均衡 (Load Balance)让负载均衡,当然这是一个简单的概括,比如,我有10台机器都提供web服务,那么我如何均衡的利用这10台机器呢,让这10台机器保证高 ...

  6. linux负载均衡之关于负载均衡

    目录 第1章 关于负载均衡 负载均衡是应用高可用的基础,是实现应用高可用必不可少的组成部分.本章内容主要涉及:负载均衡定义.负载均衡类型以及负载均衡实现方式. 负载均衡定义 负载均衡,英文名称为Loa ...

  7. 【Linux负载均衡】

    Linux负载均衡 核心结构体 核心函数 load_balance fair.c 核心数据结构 调用核心函数1 should_we_balance() 核心数据结构 核心辅助函数 核心函数 核心调用函 ...

  8. 负载均衡LVS之DR模式IP包调度过程及WRR算法实现的详细步骤

    负载均衡LVS之DR模式IP包调度过程及WRR算法实现的详细步骤 1.DR模式IP包调度过程 2.数据流程图 3.环境说明 1) 五台主机,时间同步,关闭防火墙和selinux2) 各主机角色1] 客 ...

  9. Linux系统(五)负载均衡LVS集群之DR模式

    序言 DR模式是lvs集群中三种负载均衡模式的其中一种,那么上一篇中我写啦关于NAT模式的搭建与原理,为什么还要有DR模式与IP隧道模式呢? 首先我们来看3张图.LVS/NAT模式如下图: LVS/I ...

  10. Linux负载均衡软件LVS之一(概念篇)

    2019独角兽企业重金招聘Python工程师标准>>> 一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起 ...

最新文章

  1. rust相框加载图片代码_Rust 能取代 Python,更好的实现神经网络?
  2. 【MATLAB统计分析与应用100例】案例003:matlab调用smooth函数进行加噪数据的平滑处理
  3. 计算机专业论文要交源代码吗,计算机毕业论文源代码.doc
  4. “错题集”帮你期末考试冲向满分
  5. 寻找不设防的无线局域网——战争驾驶全接触
  6. jQuery ajax 文件上传携带附加参数
  7. C#测绘兰勃特墨卡托投影
  8. 医疗行业源代码该如何保密
  9. matlab求一个矩阵的逆矩阵的命令,如何用MATLAB求逆矩阵
  10. HTML如何做一张李白的静夜思,李白《静夜思》配图赏析
  11. margin与padding的区别
  12. 在这领工资,一辈子别想取媳妇了!
  13. 欲罢不能 推荐,刷屏时代如何摆脱行为上瘾
  14. 题目1 求Sum=x+xx+xxx+xxxx+xxx+xx+x的值,其中x是一个1~9的数字。从键盘上输入任意1~9的数字(如输入此范围外的数据,不处理该数据,程序提醒后继续输入),请输出Sum的结果
  15. 我和 JSRUN 网站的一些故事
  16. L1-013 计算阶乘和 Python
  17. Java开发必须掌握!开源掌机玩java
  18. MySQL查询耗时多久算慢SQL_sql优化之慢sql耗时排查
  19. harmonyos系统支持哪些手机,华为发布了适用于部分手机的HarmonyOS 2.0 beta
  20. 线上马戏团对接协议部分介绍 1

热门文章

  1. 图片版坦克大战其他相关的 类(三)
  2. android+祖玛游戏源码,Flash祖玛游戏源代码
  3. python实现归并排序_排序算法学习(python版本)之归并排序(MergeSort)
  4. python找不到指定的路径_[Python学习]错误篇二:切换当前工作目录时出错——FileNotFoundError: [WinError 3] 系统找不到指定的路径...
  5. android 自定义tabhost,安卓选项卡的实现方法(TabActivity),自定义TabHost容器
  6. html 怎么几秒后自动隐藏,js设定DIV显示时间并动态显示时间倒计时多少秒,倒计时完了之后该层自动隐藏。...
  7. JavaScript:在JS中截取字符串的方法
  8. 帆软决策报表全页面刷新或局部组件定时刷新
  9. mysql 复制协议_一种基于ISER协议的MySQL数据库复制方法与流程
  10. java 多线程 举例,Java多线程简单举例