LVS负载均衡群集(NAT模式、IP隧道模式、DR模式)

news2024/11/24 13:21:52

目录

一、集群

1.1 含义即特点

1.2 群集的类型

1.3 LVS 的三种工作模式:

1.4 LVS 调度算法

1.5 负载均衡群集的结构

1.6 ipvsadm 工具

二、NAT模式

LVS-NAT模式配置步骤:

实例:

配置NFS服务器192.168.20.100

配置web1服务器192.168.30.104

配置web2服务器 192.168.30.105

配置调度服务器192.168.30.200

客户机测试

三、DR模式

LVS-DR 数据流向:

数据包流向分析:

DR 模式的特点:

实例:

 DR服务器  192.168.30.203

 NFS服务器192.168.30.100

vip服务器192.168.20.200

web1 192.168.30.104

web2 192.168.30.105

客户机测试192.168.30.10

面试题

简述LVS三种工作模式,简述他们的区别?

列举你知道的LVS调度算法?

LVS调度器常见算法(均衡策略)?

LVS的工作模式及其工作过程:

1、NAT模式(VS-NAT)

2、直接路由模式(VS-DR)

3、IP隧道模式(VS-TUN)


一、集群

1.1 含义即特点

由多台主机构成,都干同样的一件事,对外展现为一个整体

1.2 群集的类型

(1)负载均衡群集 LB
提高系统响应效率,处理更多的访问请求,减少延迟,实现高并发、高负载的能力
典型代表:软件类:LVS  Nginx  HAProxy 等     硬件类:F5  绿盟

(2)高可用群集 HA
提高系统可靠性,减少中断时间,确保服务的连续性(通常使用 N 个 9 来代表高可用的指标)
典型代表:Keepalived    heartbeat

(3)高性能运输群集 HPC
通过云计算或分布式计算获取高性能的CPU、内存等资源,来提高整体运算能力

1.3 LVS 的三种工作模式:

(1)NAT 地址转换
调度器会作为所以节点服务器的默认网关,也是客户端的访问入口和节点服务器返回响应消息的出口,也就是说调度器会承载双向数据流量的负载压力,可能会成为整个群集的性能瓶颈。由于节点服务器都处于内网环境,使用私网IP地址,所以具有一定安全性。

(2)TUN IP隧道 IP Tunnel
调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不需要经过调度器。但是由于节点服务器需要部署在不同位置的公网环境中,需要具有独立的公网IP,调度器与节点服务器是通过专用的IP隧道实现相互通信的,因此IP隧道模式的成本较高、安全性较低,且IP隧道需要额外的封装和解封装,性能会受到一定的影响。

(3)DR 直接路由  Direct Routing
调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不需要经过调度器。(与NAT模式的区别)
节点服务器与调度器是部署在同一个物理网络内,因此不需要建立专用的IP隧道。(与TUN模式的区别)
DR模式是企业首选的LVS模式。

1.4 LVS 调度算法

固定调度算法

rr    轮询    

  • 依据不同RS的权值分配任务。权重值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。

wrr 加权轮询  

  • 依据不同RS的权值分配任务。权重值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
  • 保证性能强的服务器承担更多的访问流量。

sh   源地址哈希  

  • 保证性能强的服务器承担更多的访问流量。

dh   目的地址哈希  

  • 以目的地址为关键字查找一个静态hash表来获得所需RS。

lc     最小连接  

  • ipvs表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
  • 根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。

动态调度算法

wlc   加权最小连接  

  • 假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次取Ti/Wi为最小的RS作为下一个分配的RS。

lblc   基于地址的最小连接

  • 将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

1.5 负载均衡群集的结构

第一层,负载调度器(Load Balancer或Director)

访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。负载均衡层
第二层,服务器池(Server Pool)

群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。web应用层
第三层,共享存储(Share Storage)

为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。

1.6 ipvsadm 工具

-A:添加虚拟服务器
-D:删除整个虚拟服务器
-s:指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a:表示添加真实服务器(节点服务器)
-d:删除某一个节点
-t:指定 VIP地址及 TCP端口
-r:指定 RIP地址及 TCP端口
-m:表示使用 NAT群集模式
-g:表示使用 DR模式
-i:表示使用 TUN模式
-w:设置权重(权重为 0 时表示暂停节点)
-p 60:表示保持长连接60秒(默认关闭连接保持)
-l:列表查看 LVS 虚拟服务器(默认为查看所有)
-n:以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln


二、NAT模式

LVS调度器作为Web服务器池的网关,LVS两块网卡,分别连接内外网,使用轮询(rr)调度算法

LVS-NAT模式配置步骤:

(1)配置 NFS 共享存储
(2)节点服务器安装 Web 服务,注意:默认网关要指向 调度器的IP地址,测试的时候关闭连接保持
(3)调度服务器要开启 IP路由转发 功能和设置 SNAT 等 iptables 规则,安装 ipvsadm 工具,配置虚拟服务器和真实节点服务器相关配置
(4)客户端测试的时候网关要指向 调度器的IP地址


实例:

 调度服务器192.168.30.200

NFS服务器192.168.20.100

web1服务器192.168.30.104

web2服务器192.168.30.105

客户端

配置NFS服务器192.168.20.100

配置web1服务器192.168.30.104

测试

配置web2服务器 192.168.30.105

测试

配置调度服务器192.168.30.200

客户机测试

三、DR模式

LVS-DR 数据流向:

(1)客户端通过VIP将访问请求报文 (源IP为客户端IP,目的IP为VIP) 发送到调度器

(2))调度器通过调度算法选择分发请求的节点服务器,并重新封装数据报文(将源LC攻为调度器的ARC地址,目的2C地址政为节点服务器的IBC地址),再通过交换机转发给节点服务器

(3)节点服务器收到请求报文后,确认目的MAC和目的IP无误后解包并送达到应用层进行处理4)节点服务器要返回响应报文前,会先重新封装报文(源IP为IP,目的为客户端IP),再将响应报文通过10接口传送给物理网卡然后直接发送给客户端

数据包流向分析:

(1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。
(2)Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
(3)内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。
(4)到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标 IP 为 CIP),将响应报文通过 lo 接口传送给物理网卡然后向外发出。
(5)Real Server 直接将响应报文传送到客户端。

DR 模式的特点:

(1)Director Server 和 Real Server 必须在同一个物理网络中。
(2)Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对 RIP 进行直接访问。
(3)Director Server作为群集的访问入口,但不作为网关使用。
(4)所有的请求报文经由 Director Server,但回复响应报文不能经过 Director Server。
(5)Real Server 的网关不允许指向 Director Server IP,即Real Server发送的数据包不允许经过 Director Server。
(6)Real Server 上的 lo 接口配置 VIP 的 IP 地址。

实例:

NFS服务器192.168.30.100

DR服务器  192.168.30.203

vip服务器192.168.20.200

web1服务器192.168.30.104

web2服务器192.168.30.105

客户端 

 DR服务器  192.168.30.203

 NFS服务器192.168.30.100

vip服务器192.168.20.200

web1 192.168.30.104

web2 192.168.30.105

客户机测试192.168.30.10

面试题


简述LVS三种工作模式,简述他们的区别?


答案:
NAT:通过网络地址转换实现的虚拟服务器,大并发访问时,调度器的性能成为瓶颈
DR:使用路由技术实现虚拟服务器,节点服务器需要配置VIP,注意MAC地址广播
TUN:通过隧道方式实现虚拟服务器。

列举你知道的LVS调度算法?


答案:
轮询(Round Robin);
加权轮询(Weighted Round Robin);
最少连接(Least Connections);
加权最少连接(Weighted Least Connections);
源地址哈希值(source hash)。

LVS调度器常见算法(均衡策略)?


LVS调度器用的调度方法基本分为两类:
固定调度算法:rr,wrr,dh,sh
rr:轮询算法,将请求依次分配给不同的rs节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
wrr:加权轮训调度,依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得所需RS。
sh:源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS。

动态调度算法:wlc,lc,lblc
wlc:加权最小连接数调度,假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS。
lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

LVS的工作模式及其工作过程:

LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)。

1、NAT模式(VS-NAT)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。

缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。


2、直接路由模式(VS-DR)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。


3、IP隧道模式(VS-TUN)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持“IP Tunneling”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1005774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ istringstream类学习

istringstream类用于执行C风格的串流的输入操作; ostringstream类用于执行C风格的串流的输出操作; strstream类同时可以支持C风格的串流的输入输出操作; istringstream的构造函数原形如下: istringstream::istringstream(strin…

Tomcat Arbitrary Write-file Vulnerability through PUT Method (CVE-2017-12615)

漏洞描述 CVE-2017-12615 对应的漏洞为任意文件写入,由于配置不当(非默认配置),导致可以使用 PUT 方法上传任意文件 。Tomcat设置了写权限(readonlyfalse),导致可以使用PUT方法上传任意文件 影…

mysql 快速上传数据

快速上传数据 这个应该是比inset into values更快的插入数据的办法了。 不过要求挺苛刻的,数据要整理成和表格一致,也就是说每条数据都是完整的一条,而不是一部分。 下面的示例我以***为分割符划分字段,以 \n来分割每条数据。 LO…

代码随想录笔记--贪心算法篇

1--贪心算法 主要思路&#xff1a; 通过局部最优推导全局最优&#xff1b; 2--分发饼干 主要思路&#xff1a; 基于贪心算法&#xff0c;每次都尽可能用大的饼干去喂胃口大的孩子&#xff0c;贪心地节省饼干&#xff1b; #include <iostream> #include <vector> #i…

5.后端·新建子模块与开发(自动模式)

文章目录 学习资料自动生成模式创建后端三层 学习资料 https://www.bilibili.com/video/BV13g411Y7GS?p11&spm_id_frompageDriver&vd_sourceed09a620bf87401694f763818a31c91e 自动生成模式创建后端三层 首先&#xff0c;运行起来若依的前后端整个项目&#xff0c;…

【Java 基础篇】Java 自然排序:使用 Comparable 接口详解

在 Java 编程中&#xff0c;我们经常需要对对象进行排序。为了实现排序&#xff0c;Java 提供了 java.lang.Comparable 接口&#xff0c;它允许我们定义对象之间的自然顺序。本篇博客将深入探讨如何使用 Comparable 接口来进行自然排序&#xff0c;包括接口的基本概念、使用示例…

【2023年11月第四版教材】第12章《质量管理》(第三部分)

第12章《质量管理》&#xff08;第三部分&#xff09; 5 管理质量5.1 管理质量★★★ &#xff08;17下9&#xff09;5.2 数据分析★★★5.3 数据表现★★★5.4 审计★★★ 6 控制质量6.1 控制质量6.2 数据收集★★★6.3 数据分析 ★★★6.4 数据表现★★★ 5 管理质量 组过程…

《gRPC vs REST:何时选择哪一个》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

C++--day5

实现一个图形类&#xff08;Shape&#xff09;&#xff0c;包含受保护成员属性&#xff1a;周长、面积&#xff0c; 公共成员函数&#xff1a;特殊成员函数书写 定义一个圆形类&#xff08;Circle&#xff09;&#xff0c;继承自图形类&#xff0c;包含私有属性&#xff1a;半…

Pytorch从零开始实战02

Pytorch从零开始实战——彩色图像识别 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——彩色图像识别环境准备数据集模型选择模型训练数据可视化 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c;Pytorch2.0.1cu118…

【大数据】美团 DB 数据同步到数据仓库的架构与实践

美团 DB 数据同步到数据仓库的架构与实践 1.背景2.整体架构3.Binlog 实时采集4.离线还原 MySQL 数据5.Kafka2Hive6.对 Camus 的二次开发7.Checkdone 的检测逻辑8.Merge9.Merge 流程举例10.实践一&#xff1a;分库分表的支持11.实践二&#xff1a;删除事件的支持12.总结与展望 1…

Powdersigner + PostgreSql 同步表结构到pg数据库

要用Powdersigner同步表结构到PostgreSql数据库&#xff0c; Powdersigner 版本是 16.5&#xff0c;当前模型是mysql的 1&#xff0c;修改当前模型内容为postgresql的 Database --> Change Current DBMS 选择PostgreSQL 最大版本的&#xff08;因为Powdersigner内置版本一…

Python3 XML处理模块详解

目录 一&#xff1a;XML文件格式 二&#xff1a;ElementTree解析XML文件 三&#xff1a;Element之查找 四&#xff1a;Element之修改 五&#xff1a;Element之删除 六&#xff1a;Element之增加 xml是一种固有的分层数据格式&#xff0c;最自然的表示方式是解析成树状&am…

基于springboot实现的最便捷的解析word文档

概述 导入excel或word是一些web应用常见的需求&#xff0c;本demo详细介绍怎么导入word,读取word里面的数据 详细 一、运行效果 二、实现过程 ①、首先用maven快速搭建一个spring boot 项目 <properties><project.build.sourceEncoding>UTF-8</project.buil…

unity 使用Photon进行网络同步

Pun使用教程 第一步&#xff1a;请确保使用的 Unity 版本等于或高于 2017.4&#xff08;不建议使用测试版&#xff09;创建一个新项目。 第二步&#xff1a;打开资源商店并找到 PUN 2 资源并下载/安装它。 导入所有资源后&#xff0c;让 Unity 重新编译。 第三步&#xf…

stm32---外部中断

一、EXTI STM32F10x外部中断/事件控制器&#xff08;EXTI&#xff09;包含多达20个用于产生事件/中断请求的边沿检测器。EXTI的每根输入线都可单独进行配置&#xff0c;以选择类型&#xff08;中断或事件&#xff09;和相应的触发事件&#xff08;上升沿触发、下降沿触发…

深入理解JVM虚拟机第四篇:一些常用的JVM虚拟机

一&#xff1a;Sun Classic VM虚拟机 早在1996年Java1.0版本的时候&#xff0c;Sun公司发布了一款名为Sun classic VM的Java虚拟机&#xff0c;它同时也是世界上第一款商用Java虚拟机&#xff0c;JDK1.4时完全被淘汰。 现在hotspot内置了此虚拟机。 这款虚拟机内部只提供解释器…

入门人工智能 ——使用 tensorflow 训练一个新闻分类模型(6)

入门人工智能 ——使用 tensorflow 训练一个新闻分类模型&#xff08;6&#xff09; 入门人工智能 ——使用 tensorflow 训练一个新闻分类模型使用 tensorflow 训练一个新闻分类模型1. 安装TensorFlow和所需的依赖项。2. 打开收集的新闻数据集构建模型模型训练模型评估保存模型…

hadoop启动报错:Attempting to operate on hdfs namenode as root

在hadoop安装路径的 /hadoop/sbin路径下&#xff1a; 将start-dfs.sh&#xff0c;stop-dfs.sh两个文件顶部添加以下参数 #!/usr/bin/env bash HDFS_DATANODE_USERroot HADOOP_SECURE_DN_USERhdfs HDFS_NAMENODE_USERroot HDFS_SECONDARYNAMENODE_USERroot还有&#xff0c;star…

基于STM32+华为云IOT设计的智能窗帘控制系统

一、项目背景 随着智能家居技术的不断发展&#xff0c;人们对于家居生活的需求也越来越高。智能窗帘作为智能家居领域的重要组成部分&#xff0c;为用户提供了更便捷、舒适的生活体验。本项目基于STM32主控芯片和华为云物联网平台&#xff0c;设计一款智能窗帘控制系统&#x…