LVS:Linux Virtual Sevser,Linux虚拟服务器,由章文嵩先生成立的有关负载均衡的开源项目。基于Linux内核。优化后并发量可以达到百万级。

NAT模式:

  NAT(Network Address Translation)网络地址转换,内网主机可以通过路由NAT实现访问外网主机。

  1、client请求资源,当报文到达director时,源和目标IP是CIP-VIP,IPVS会强行修改目标地址为RIP,将报文从INPUT发向POSTROUTING,源和目标IP修改为CIP-RIP,RS验证目标地址是本地地址,则接受报文并处理请求。

  2、RS响应请求,由于请求报文源IP是CIP,所以响应报文的目标IP是CIP;将响应报文发送给网关director后,director会通过SNAT将源IP修改为VIP,这样client才可以明确是响应它请求报文的数据包。

 特点:

  • director与RS必须在同一个局域网呢。
  • RS的网关必须指向director的私网DIP。
  • 请求和响应报文都需要director转发,会成为整个系统的瓶颈。
  • 支持端口映射,client访问80端口,director可以映射到RS的8080端口上。
  • director必须是Linux系统。
  • director需要两个网卡,一个与互联网通信的公网VIP,一个与RS通信的私网DIP。

  NAT模式配置过程:https://www.cnblogs.com/houyongchong/p/10551079.html

TUN模式:

  IP隧道技术又称IP封装,在源和目标IP地址的基础上,利用新的源和目标IP地址对数据报文进行第二次封装。

  1、client请求资源,源和目标IP为CIP-VIP的报文到达director,IPVS会利用隧道技术将DIP-RIP封装在请求报文中,经POSTROUTING链发送至RS,RS本地需要配置tunl0地址为VIP,当RS接收到报文,二次封装的目标地址RIP为本地eth0地址,原始目标地址VIP为本地tunl0地址,所以RS就会认定是发送给自己的数据包,就会处理请求。

  2、RS响应请求,由于请求报文源和目标IP是CIP-VIP,所以响应报文的源和目标地址应为VIP-CIP;此时报文会经由RS的网关路由一直送达client。

 特点:

  • VIP、DIP、RIP都是公网IP。
  • RS网关不会也不能指向DIP。
  • 请求报文经过director,响应报文直接由RS发送给client,director不再成为系统瓶颈。
  • RS必须支持隧道技术。
  • 不支持端口映射。

DR(direct route)模式:

  1、client请求资源,请求报文经过路由到达交换机,然后交换机查看目标IP为VIP,则修改源和目标MAC后再封装报文发送给director,IPVS则将报文源MAC修改为DIP的MAC地址,目标MAC修改为RIP的MAC地址,然后经POSTROUTING链发送出去,通过交换机转送给RS。DR模式会lo接口上配置一个虚拟地址VIP,当RS收到报文拆封发现目标MAC地址是自己,目标IP地址也是自己的lo地址VIP,就会处理请求。

  2、RS响应请求,由于请求报文的目标IP是VIP,所以响应报文就通过lo接口传送到eth0网卡发出。

 特点:

  • 保证前端路由将目标地址为VIP的报文全部发送给DS,而不是RS
  • RS的RIP可以使用私有地址,但也可以使用公网地址
  • RS和director必须在同一物理网络中
  • 请求报文有director调度,但响应报文不一定经由director
  • 不支持端口映射
  • RS的网关不能指向DIP

  DR模式配置过程:https://www.cnblogs.com/houyongchong/p/10535993.html

调度算法:

  rr,轮询算法(round robin),调度器会将所有的请求平均分配给每个服务器。

  wrr,加权轮询(weight round robin),给每个RS分配权重比例。

  lc,最小连接(least connections),把新请求分配到当前连接数最小的服务器上,,集群系统的真实服务器具有相近的系统性能,采用最小连接调度算法可以比较好地均衡负载

  wlc,加权最小连接(weight least connections),在lc算法上为每台服务器分配上权重比例。

Linux lvs三种模式工作原理的更多相关文章

  1. LVS三种模式配置及优点缺点比较

    目录: LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种(LVS-DR,LVS-NAT,LVS-TUN)模式的简要配置 LVS是什么: http://www.lin ...

  2. LVS三种模式配置及优点缺点比较 转

    LVS三种模式配置及优点缺点比较   作者:gzh0222,发布于2012-11-12,来源:CSDN   目录: LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种 ...

  3. Linux 下三种提高工作效率的文件处理技巧

    Linux 下三种提高工作效率的文件处理技巧 在 Linux 下工作,打交道最多的就是文件了,毕竟 Linux 下工作一切皆文件嘛.Linux 也为大家提供了多种用于处理文件的命令,合理使用这些命令可 ...

  4. LVS三种模式的区别及负载均衡算法

    LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在linux2.6+后将lvs自动加入了kernel ...

  5. 运维LVS三种模式十种调度算法

    一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现 ...

  6. LVS三种模式区别

    参考文档 http://www.magedu.com/65436.html 名词:CIP 客户端IP地址   VIP:即DS服务器上的代理IP地址,也是客户端访问的执行IP地址 1.NAT模式 ①.客 ...

  7. lvs三种模式的配置

  8. lvs三种模式的优缺点对比

    电面只回答上来少部分,所以......恶补.总结

  9. Linux vim三种模式的快捷键

    1.移动光标 数字 + h,j,k,l 上,下,左,右 ctrl-e 移动页面 ctrl-f 上翻一页 ctrl-b 下翻一页 ctrl-u 上翻半页 ctrl-d 下翻半页 w 跳到下一个字首,按标 ...

随机推荐

  1. 使用wepy开发微信小程序01——常用的组件

    1.axio.js 'use strict' import axios from 'axios' import wepyAxiosAdapter from 'wepy-plugin-axios/dis ...

  2. 简说Java线程的那几个启动方式

    本文首发于本博客 猫叔的博客,转载请申明出处 前言 并发是一件很美妙的事情,线程的调度与使用会让你除了业务代码外,有新的世界观,无论你是否参与但是这对于你未来的成长帮助很大. 所以,让我们来好好看看在 ...

  3. mysql索引结构及其原理

    1.定义 索引是一种数据结果,帮助提高获取数据的速度 为了提高查找速度,有很多查询优化算法.但是每种查找算法都只能应用于特定数据结构之上. 索引就是数据库创建的满足特定查找算法的数据结构,这些数据结构 ...

  4. Util6 MIS2.0 (优六信息化管理系统框架)

    Util6 MIS一套基于ASP.NET MVC5 + Layui 开发的通用信息化管理系统快速开发框架 系统操作界面简洁, 项目结构清晰,功能模块化设计,支撑框架轻量高效,代码层级分离,注释完整,可 ...

  5. oppo7.0系统手机(亲测有效)激活Xposed框架的流程

    对于喜欢钻研手机的朋友而言,很多时候会使用到xposed框架及种类繁多功能极强的模块,对于5.0以下的系统版本,只要手机能获得root权限,安装和激活xposed框架是异常简单的,但随着系统版本的升级 ...

  6. SpringMVC归纳-2(Session会话、拦截器)

    要点: 1.HttpSession:一个session的建立是从一个用户向服务器发第一个请求开始,而以用户显式结束或session超时为结束,借助session能在一定时间内记录用户状态. 2.Mod ...

  7. Centos6搭建vsftpd

    CentOS 6.5下安装Vsftp,虚拟用户一.安装:1.安装Vsftpd服务相关部件:[root@localhost ~]# yum install vsftpd*Loaded plugins: ...

  8. DbGridEh根据某一个字段的值显示对应底色或字体变化

    改变行底色: procedure TForm1.dggrideh1DrawColumnCell(Sender: TObject;const Rect: TRect; DataCol: Integer; ...

  9. ASP.NET MVC 下自定义 JsonResult,使用 Json.NET 序列化 JSON

    直接贴代码了: using System; using System.Web.Mvc; using Newtonsoft.Json; namespace MvcSample.Extensions { ...

  10. Redis进阶之使用Lua脚本开发

    1.在Redis中使用Lua 在Redis中执行Lua脚本有两种方法:eval和evalsha. (1)eval eval 脚本内容 key个数 key列表 参数列表 下面例子使用了key列表和参数列 ...