当前位置: 首页 > news >正文

lvs之 lvs原理架构介绍

一、 概念

lvs的术语:
Router:GWIP
vs:virtual server,director
rs:real server
CIP:client IP
VIP:virtual server IP
DIP:ditecter IP(connect with rs)
RIP:real server IP
用户请求的IP一定是VIP,否则vs就失去了负载均衡的调度意义

LVS方式的cluster从结构上可分为两部分:前端的负载均衡器(称之为director)和后端的真实服务器(称之为real server)。cluster前端的director将来自外界的请求调度到cluster后端不同的real server去执行。real server负责真正的提供各种应用服务,比如:Web、FTP、Mail等服务。real server的数量可以根据实际需求进行增加、减少。

二、lvs的工作过程

三、lvs的类型

lvs有三种通用标准模型
(1)lvs-nat (网络地址映射)
(2)lvs-dr (直接路由)
(3)lvs-tun (IP隧道)

3.1、  LVS NAT的特性(实质是多目标的DNAT):

1、RS应该使用私有地址;
2、RS的网关的必须指向DIP;
3、RIP和DIP必须在同一网段内;
4、请求和响应的报文都得经过Director;在高负载场景中,Director很可能成为系统性能瓶颈;
5、支持端口映射;
6、RS可以使用任意支持集群服务的OS;

lvs-nat:工作流程如图:

3.2、  LVS DR类型的特性:
1、RS可以使用私有地址;但也可以使用公网地址,此时可以直接通过互联网连入RS以实现配置、监控等;
2、RS的网关一定不能指向DIP;
3、RS跟Dirctory要在同一物理网络内(不能由路由器分隔,因为VS通过封装MAC地址到RS);
4、请求报文经过Directory,但响应报文一定不经过Director
5、不支持端口映射;
6、RS可以使用大多数的操作系统;

由于DR类型中,VS、RS的VIP都是一样,如果在同一网段内会造成地址冲突,因此要解决地址冲突有一下三种方法:
禁止RS响应对VIP的ARP广播请求:
1、在前端路由上实现静态MAC地址VIP的绑定;
前提:得有路由器的配置权限;
缺点:Directory故障转时,无法更新此绑定;
2、arptables
前提:在各RS在安装arptables程序,并编写arptables规则
缺点:依赖于独特功能的应用程序
3、修改Linux内核参数
前提:RS必须是Linux;
缺点:适用性差;

两个参数:
arp_announce:定义通告模式
arp_ignore:定义收到arp请求的时响应模式
配置专用路由,以使得响应报文首先通过vip所配置的lo上的别名接口
lvs-dr:工作流程如图

3.2、  lvs-tun:IP隧道
1、RIP、DIP、VIP都得是公网地址;
2、RS的网关不会指向也不可能指向DIP;
3、请求报文经过Directory,但响应报文一定不经过Director;
4、不支持端口映射;
5、RS的OS必须得支持隧道功能;
lvs-tun:工作流程如图:也是基于lvs-dr的模型,只不过不同的是,rs和vs不必在同一个物理的网络(实现物理冗余),而是通过隧道技术进行vs和rs间的通信

四、 lvs 十个调度算法: rrwrrlcwlclblclblcrdhshsednq

1.轮叫调度(Round Robin)(简称rr)
2.加权轮叫(Weighted Round Robin)(简称wrr)
3.最少链接(Least Connections)(LC)
4.加权最少链接(Weighted Least Connections)(WLC)
5.基于局部性的最少链接(Locality-Based Least Connections)(LBLC)
6.带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)(LBLCR)
7.目标地址散列(Destination Hashing)(DH)
8.源地址散列(Source Hashing)(SH)
9. 最短的期望的延迟(Shortest Expected Delay Scheduling SED)(SED)
10.最少队列调度(Never Queue Scheduling NQ)(NQ)

最常用的两个算法介绍: 

2.加权轮叫(Weighted Round Robin)(简称wrr)
调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

4.加权最少链接(Weighted Least Connections)(WLC)
在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

 说明: 部分参考 http://6638225.blog.51cto.com/6628225/1866241  感谢作者。

转载于:https://www.cnblogs.com/andy6/p/7017155.html

相关文章:

  • 《ANSYS Workbench有限元分析实例详解(静力学)》——导读
  • SQLite.Interop.DLL与System.Data.SQLite.dll比较
  • 陈松松:我是如何制定每一天的视频营销计划
  • 初学着可以看看
  • kong k8s 安装 以及可视化管理界面
  • HttpContext.Cache和HttpRuntime.Cache(转)
  • selenium2获取input输入框中的值的三种方法。
  • win2003建立FTP的方法
  • JAVA 環境的配置
  • C# Owin初探 概念理解(一)
  • 好强大的车牌号啊
  • 对spring默认的单列模式的理解
  • [转]再读此文,作何感想?《荀子.劝学》
  • Android 自动化测试
  • 【原创】office突然打不开提示需要重新安装的解决办法
  • Android单元测试 - 几个重要问题
  • Angular Elements 及其运作原理
  • Bytom交易说明(账户管理模式)
  • HashMap剖析之内部结构
  • Java反射-动态类加载和重新加载
  • java中具有继承关系的类及其对象初始化顺序
  • Linux链接文件
  • mysql常用命令汇总
  • Nodejs和JavaWeb协助开发
  • Python socket服务器端、客户端传送信息
  • React中的“虫洞”——Context
  • webgl (原生)基础入门指南【一】
  • webpack入门学习手记(二)
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 提醒我喝水chrome插件开发指南
  • 无服务器化是企业 IT 架构的未来吗?
  • 详解移动APP与web APP的区别
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 中文输入法与React文本输入框的问题与解决方案
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 阿里云ACE认证学习知识点梳理
  • 如何用纯 CSS 创作一个货车 loader
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $().each和$.each的区别
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (14)Hive调优——合并小文件
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Note)C++中的继承方式
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)linux下的时间函数使用
  • (转)全文检索技术学习(三)——Lucene支持中文分词