【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的一大谜 ...
随机推荐
- 在代码生成工具Database2Sharp中增加Vue&Element 工作流页面的快速生成
在我们基于框架开发系统的时候,往往对一些应用场景的页面对进行了归纳总结,因此对大多数情况下的页面呈现逻辑都做了清晰的分析,因此在我们基于框架的基础上,增量式开发业务功能的时候,能够事半功倍.代码生成工 ...
- [啃书] 第3篇 - 结构体及其操作/浮点数&圆周率/复杂度/测试
啃书部分已单独做成Gitbook了,后续不再更新.详情访问个人网站ccoding.cn或ccbyte.github.io 前言 本篇总结自<算法笔记>2.8-2.10 正文 知识点1:结构 ...
- Python基础(迭代)
# from collections import Iterable#collections模块的Iterable类型判断 # dict1 = {'a':111,'b':222,'c':333} # ...
- gorm框架表名自动加s问题
查看日志会发现表名自动加了s 在model实现以下方法即可解决 type UsUser struct { ID int64 `gorm:"column:id" db:"c ...
- 菜鸡的Java笔记 国际化程序实现原理
国际化程序实现原理 Lnternationalization 1. Locale 类的使用 2.国家化程序的实现,资源读取 所谓的国际化的程序 ...
- [gym102511K]Traffic Blights
为了方便,对于集合$S$,称$k\equiv S(mod\ M)$当且仅当存在$x\in S$使得$k\equiv x(mod\ M)$ 枚举红绿灯,对每一个点即限制$k$对$g_{i}+r_{i}$ ...
- Spring Cloud Gateway限流实战
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- restTemplate的问题-feign的项目
restTemplate的问题 1.场景描述 在使用feign的项目中,偶然的使用到了restTemplate 在普通方法调用是可以访问的,一旦使用了restTemplate,出现报错 比如: 百度 ...
- Redis线程模型的前世今生
一.概述 众所周知,Redis是一个高性能的数据存储框架,在高并发的系统设计中,Redis也是一个比较关键的组件,是我们提升系统性能的一大利器.深入去理解Redis高性能的原理显得越发重要,当然Red ...
- SpringCloud微服务实战——搭建企业级开发框架(二十五):实现多租户多平台短信通知服务
目前系统集成短信似乎是必不可少的部分,由于各种云平台都提供了不同的短信通道,这里我们增加多租户多通道的短信验证码,并增加配置项,使系统可以支持多家云平台提供的短信服务.这里以阿里云和腾讯云为例,集成短 ...