LVS理论知识

news/2024/9/25 23:18:07/

目录

1.描述以及工作原理

1.什么是LVS

2.LVS调度算法

1.静态调度算法

1.轮询RR

2.加权轮询WRR

3.目标地址hash---DH

4.源地址hash---SH

2.动态调度算法

1.LC最少连接

2.wlc加权最少连接

3.sed最少期望延迟

4.nq不排队调度算法

5.lblc基于本地最少连接

6.lnlcr带复制的基于本地最少连接

3.LVS的工作原理

2.组成及术语

1.组成

1.ipvs

2.ipvsadm

2.术语

3.三种工作模式 

1.描述以及工作原理

1.什么是LVS

  通过Linux达到负载均衡技术和Linux操作系统实现一个高性能可用的Linux服务集群,具有良好的可靠性,可延展性和可操作性,从而以低廉的成本实现最优的性能,LVS是一个实现负载均衡集群开源软件项目,LVS从逻辑上可分为调度层、server集群层和共享存储。

2.LVS调度算法

1.静态调度算法
1.轮询RR

均等地对待每一台服务器。

2.加权轮询WRR

根据真实服务器的不同处理能力来调度访问请求。

3.目标地址hash---DH

针对目标IP地址的负载均衡。

4.源地址hash---SH
算法正好与目标地址散列调度算法相反,它根据请求的源 IP 地址,作 为散列键(Hash Key )从静态分配的散列表找出对应的服务器,若 该服务器是 可用的且未超载,将请求发送到该服务器,否则返回 空。
2.动态调度算法
1.LC最少连接
调度器通过 " 最少连接 " 调度算法动态地将网络请求调度到已建立的链 接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用" 最小连接 " 调度算法可以较好地均衡负载。
2.wlc加权最少连接
在集群系统中的服务器性能差异较大的情况下,调度器采用 " 加权最少链接" 调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情 况,并动态地调整其权值。
3.sed最少期望延迟
基于 wlc 算法,举例说明: ABC 三台机器分别权重 123 ,连接数也分别是123 name 如果使用 WLC 算法的话一个新请求进入时他可能会分给ABC 中任意一个,使用 SED 算法后会进行这样一个运算
A:(1+1)/2
B:(1+2)/2
C:(1+3)/3
根据运算结果,把连接交给 C
4.nq不排队调度算法
无需列队,如果有台 realserver 的连接数 =0 就直接分配过去,不需要进行sed 运算。
5.lblc基于本地最少连接
6.lnlcr带复制的基于本地最少连接

3.LVS的工作原理

1. 当用户向负载均衡调度器(director server)发起请求,调度器将请求发往内核空间。

2. prerouting链首先会接受到用户请求,判断目标ip确定是本机ip,将数据包发往input链。

3. IPVS是工作在input链上的,当用户请求到达input时,ipvs会将用户请求和自己定义好的集群服务器进行比对,如果用户请求就是定义的集群服务,那么此时ipvs会强行修改数据包里的目标ip地址以及端口,并将新的数据包发往POSTROUTING链。

4. POSTROUTING链接收到数据包后,发现目标ip地址刚好是自己的后端服务器,那么通过选路,将数据包最终发送给后端服务器。

2.组成及术语

1.组成

1.ipvs

ip virtual server,一段代码工作在内核空间,ipvs,是真正生效实现调度的代码(累死nginx中的proxy_pass)

2.ipvsadm

另一段是工作在用户空间,ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,谁是后端真正的服务器(real server)类似nginx中的upstrean

2.术语

1. DS DIrector Server 前端负责均衡节点(负载均衡服务器)

2. RS real server 后端真实工作服务器(web服务器)

3. vip向外部直接面向用户请求,作为用户请求的目标ip地址(负载均衡的ip地址,提供给用户)

4. DIP Director Server Ip 和内部主机通讯的ip地址(负责与Real Server交互的内部Ip)

5. RIP Real Server Ip 后端服务器ip地址

6. CIP client IP 访问客户端ip地址

3.三种工作模式 

1. *LVS-NAT模式

2. *LVS-DR模式

3. Lvs-Tun模式(隧道模式)


http://www.ppmy.cn/news/1508712.html

相关文章

8.8 day bug

bug1 好家伙,最后一个t没看到,愣是学了一个小时原理和用法,都找不出问题在哪

教程:申请IP SSL证书

现在通过IP访问网站的方式也流行起来了,对于很多企业或是组织单位,申请域名不仅需要额外支付域名费用,还需要走备案流程,这对于很多单位来说显得麻烦了一些,所以利用IP直接进行网站访问也是必要的。 但是正常情况下IP…

达梦数据库 逻辑备份还原

达梦的逻辑备份还原 1.背景2.要求3.实验步骤3.1 相关术语3.2 dexp逻辑导出3.2.1 使用dexp工具3.2.2 dexp相关参数含义3.2.3 四种级别导出3.2.3.1 FULL3.2.3.2 OWNER3.2.3.3 SCHEMAS3.2.3.4 TABLES 3.2.4 使用范例3.2.4.1 环境准备3.2.4.2 dexp逻辑导出 3.3 dimp逻辑导入3.3.1 使…

一、软件工程概述

软件工程概述 1. 软件的概念和特点2. 软件危机的产生3. 软件工程的概念和发展过程4. 软件工程知识体系与职业道德 1. 软件的概念和特点 软件定义 软件程序数据文档。 软件生存周期 问题定义:要解决的问题是什么?可行性分析:对于上阶段所确定…

设计模式六大原则(一)——单一职责原则

随着软件开发的复杂度日益增加,维护性和可扩展性成为开发者必须关注的重要因素。设计模式通过提供一系列可重用的解决方案,帮助开发者在设计和实现软件时形成良好的实践。其中,单一职责原则作为设计模式的基石,倡导每个模块、类或…

Tomcat 最大连接数实现原理

spring boot 内置tomcat设置连接数 max-connections: 5 server:port: 9898servlet:context-path: /testtomcat:connection-timeout: 5000max-connections: 5accept-count: 5 ##初始化连接数量connectionLimitLatch protected LimitLatch initializeConnectionLatch() {if (ma…

【K8S】为什么需要Kubernetes?

文章目录 1 什么是Kubernetes?2 三种常见的应用部署方式2.1 传统部署2.2 虚拟化部署2.3 容器化部署 3 Kubernetes的特点写在最后 1 什么是Kubernetes? Kubernetes是 一个开源的,用于管理云平台中多个主机上的容器化应用,Kubernet…

【C++学习】C++中按引用传递与按值传递的具体原理

C中按引用传递与按值传递的具体原理 一、测试代码 void Test(int& a) {a 10; }void TestA(int a) {a 5; }int main() {int a 10;int* b &a;int& c a;a 5;Test(a);TestA(a);*b 3;c 6;std::cout << a << std::endl;std::cin.get(); }二、分析…