【Services】【Web】【LVS】lvs基础概念
1.简介
1.1. 作者:张文嵩,就职于阿里
1.2. LVS是基础四层路由、四层交换的软件,他根据请求报文的目标IP和目标PORT将其调度转发至后端的某主机;
1.3. IPTABLES的请求转发路线:iptables(用户空间工具)/netfilter(内核空间组件)
PREROUTING ==> INPUT
PREROUTING ==> FORWARD ==> POSTROUTING
OUTPUT ==> POSTROUTING
1.4. LVS的组成:ipvsadm(用户空间工具)/ipvs(内核空间组件)
ipvsadm:用户空间的命令行工具,用于管理集群服务及集群服务上的RS;
ipvs:工作于内核上的netfilter的INPUT钩子之上的程序,可根据用户定义的集群实现请求转发;
1.5. LVS支持的协议:TCP、UDP、SCTP、AH、EST、AH_EST等协议进行调度;
2. 名词解释
vs | Virtual Server, Director, Dispatcher, Balancer |
rs | Real Server |
CIP | Client IP |
VIP | Virtual Server IP |
DIP | Director IP |
RIP | Real Server IP |
3. lvs集群的类型
3.1. lvs-nat:多目标的DNAT,通过将报文中的目标地址和目标端口修改为挑选出的某RS的RIP和PORT实现转发;
3.1.1. 特性:
(1)RIP和DIP必须在同一IP网络,且使用私有地址;RS的网络要指向DIP(保证相应报文必须经由VS);
(2)请求报文和相应报文都经由Director转发,较高负载下,Director易于成为系统性能瓶颈;
(3)支持端口映射
(4)VS必须是Linux,RS可以是任意OS
3.2. lvs-dr:Direct Routing,通过为请求报文的重新封装一个MAC首部进行转发,源mac是DIP所在接口的mac,目标mac是挑选出某RS的RIP所在接口的MAC地址;IP首部不会发生变化(CIP《==》VIP)
3.2.1. 特性:
(1)确保前端路由器将目标IP为VIP的请求报文发往Director
解决方案:
在路由器上静态绑定VIP和Director的MAC地址;
禁止RS响应VIP的ARP请求,禁止RS的VIP进行通告
(a)arptables
(b)修改RS的内核参数,并把VIP绑定在lo的别名上;
arp_Ignore, apr_announce
(2)RS的RIP可以使用私有地址,也可以使用公网地址
(3)RS跟Director必须在同一物理网络
(4)请求报文必须由Directory调度,但响应报文必须不能经由Director;
(5)不支持端口映射
(6)RS可以使用大多的OS
3.3. lvs-tun:tunnel,不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而是原IP首部之外再封装一个IP首部(源IP为DIP,目标IP为挑选出的RS的RIP);
3.3.1. 特性
(1)RIP、DIP、VIP全得是公网地址;
(2)RS网关不能指向也可能指向DIP
(3)请求报文经由Director转发,但响应报文将直接发往CIP;
(4)不支持端口映射
(5)RS的OS必须支持隧道功能;
3.4. lvs-fullnat:通过同时修改请求报文的源IP地址(CIP==》DIP)和目标IP地址(VIP==》RIP)进行转发;
3.4.1. 特性
(1)VIP是公网地址,RIP和DIP是私网地址,且通常不在同一网络中,但需要经由路由器互通;
(2)RS收到的请求报文源IP为DIP,因此响应报文将直接响应给DIP;
(3)请求和响应报文都经由Director
(4)支持端口映射
4. lvs集群的调度算法(scheduler):根据其调度时是否考虑后端主机的当前负载,可分为静态方法和动态方法两类;
4.1. 静态方法:仅根据算法本身进行调度;
RR:Round Robin,轮询/论调/轮叫;
WRR:Weighted RR,加权轮询;
SH:Source Hashing,源地址哈希;
DH:Destination Hashing,目标地址哈希;正向web代理(缓存),负载均衡内网用户对外部服务器的请求;哈希的是目标地址
4.2. 动态方法:根据算法及各RS当前的负载状态进行调度;
LC:least connections,最少连接;
Overhead=Active*256+Inactive
WCL:Weighted LC,加权最少连接;
Overhead=(Active*256+Inactive)/weight
SED:Shorted Expections Delay
Overhead=(Active+1)*256/weight
NQ:Never Queue
LBLC:Locality-Based LC,动态的DH算法
LBLCR:LBLC with Replication,带复制功能的LBLC;
【Services】【Web】【LVS】lvs基础概念的更多相关文章
- (数据科学学习手札102)Python+Dash快速web应用开发——基础概念篇
本文示例代码与数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的新系列教程Python+Dash快 ...
- LVS的基础使用
LVS的基础使用 LVS的介绍 A:什么是LVS B:cluster(集群的概念) C:LVS的介绍 LVS的使用 A:ipvsadm命令的使用 ♣一:LVS的介绍 A:什么是lvs LVS的英文全称 ...
- 快速入门系列--WCF--01基础概念
转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...
- 【UML】NO.70.EBook.9.UML.4.001-【PowerDesigner 16 从入门到精通】- 基础概念
1.0.0 Summary Tittle:[UML]NO.70.EBook.9.UML.4.001-[PowerDesigner 16 从入门到精通]- 基础概念 Style:DesignPatte ...
- WCF分布式开发步步为赢(1):WCF分布式框架基础概念
众所周知,系统间的低耦合一直是大型企业应用系统集成追寻的目标,SOA面向服务架构的出现为我们的如何利用现有企业系统资源进行企业ERP系统设计和实现提供了重要的参考原则.SOA如此炙手可热,各大厂商都推 ...
- .net基础概念
.net基础概念 1. .NET Framework 是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件..NET Framework 具有两 ...
- web加密的基本概念
1.需求 了解web加密的一些基础概念. 2.基本概念 a.对称加密方式 对称加密方式 加密和解密用同一个密钥 不足之处是,交易双方都使用同样钥匙,安全性得不到保证.此外,每对用户每次使用对称加密算法 ...
- JavaBean 基础概念、使用实例及代码分析
JavaBean 基础概念.使用实例及代码分析 JavaBean的概念 JavaBean是一种可重复使用的.且跨平台的软件组件. JavaBean可分为两种:一种是有用户界面的(有UI的):另一种是没 ...
- 什么是JavaScript闭包终极全解之一——基础概念
本文转自:http://www.cnblogs.com/richaaaard/p/4755021.html 什么是JavaScript闭包终极全解之一——基础概念 “闭包是JavaScript的一大谜 ...
随机推荐
- K8S发布策略,无损发布
大家好,相信大部分公司都已经使用K8S进行容器管理和编排了,但是关于K8S的发布策略,还有很多同学不太清楚,通过这篇文章的介绍,相信大家对目前K8S的发布情况有一个概括的认识.总结下来,共有如下几种: ...
- liteIDE配置环境变量
1.下载安装go https://www.cnblogs.com/Jack-cx/p/9878213.html 2.下载ide https://www.golangtc.com/download/li ...
- QT6 源码杂记
菜鸡一个,随便写写,勿喷.好记性不如烂笔头. 了解qt,第一个绕不过的坎便是qt的元对象系统 QMetaObject. 1 class Object : public QObject 2 { 3 Q_ ...
- MySQL统计总数就用count(*),别花里胡哨的《死磕MySQL系列 十》
有一个问题是这样的统计数据总数用count(*).count(主键ID).count(字段).count(1)那个效率高. 先说结论,不用那么花里胡哨遇到统计总数全部使用count(*). 但是有很多 ...
- VS Code Java 更新 – 全新Gradle for Java插件,更方便的代码操作, 1.0 语言支持发布
大家好,欢迎来到 9 月版的 Visual Studio Code Java 更新.在这篇文章中,我们将分享我们最新的Gradle插件,更加方便的代码操作(Getter/Setter等等),以及最近的 ...
- [loj3076]公园
为了方便,对题意做以下处理: 1.称"西部主题"和"科幻主题"分别为黑色和白色 2.删去题中"保证没有两条不同的道路连接同一对景点"的条件 ...
- [loj3462]括号路径
对于两条边$(x_{1},y,c)$和$(x_{2},y,c)$,不难发现$x_{1}$与$x_{2}$完全等价,因此可以合并 重复此过程,合并之后用启发式合并来合并边集(注意自环也可以参与合并,即$ ...
- Electron快速入门
node -v npm -v 安装node环境 my-electron-app/ ├── package.json ├── main.js └── index.html 为您的项目创建一个文件夹并安装 ...
- 打开order by的大门,一探究竟《死磕MySQL系列 十二》
在日常开发工作中,你一定会经常遇到要根据指定字段进行排序的需求. 这时,你的SQL语句类似这样. select id,phone,code from evt_sms where phone like ...
- 如何查看dpdk版本
服务器上曾经装过很多版本的dpdk,此时如果编译某个程序出现奇怪错误的时候不由得会怀疑是不是dpdk版本的问题= = 令人吃惊的是,网上搜了一圈居然没有一个简单直接的方法能够直接使用,于是自己实验了一 ...