LVS负载均衡群集部署(LVS-NAT模型实例)
一、集群
1.1集群的含义
-
Cluster,集群、群集,为解决某个特定问题将多台计算机组合起来形成的单个系统。
-
由多台主机构成,但对外只表现为一个整体。
1.2群集的三种类型
1.2.1负载均衡群集
- LB: Load Balancing,负载均衡,多个主机组成,每个主机只承担一部分访问请求。
- 提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能。
- LB的负载分配依赖于主节点的分流算法。
1.2.2高可用群集
- HA: High Availiablity,高可用,避免 单点故障SPOF(single Point Of failure)。
- 提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果。
- HA的工作方式包括双工和主从两种模式。
1.2.3.高性能运算群集
- HPC: High-performance computing,高性能。
- 提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力。
- 高性能依赖于“分布式运算”、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。
1.3LVS的负载
1.3.1.轮询(Round Robin)
-
将收到的访问请求按照顺序轮流分配给群集中的各节点 (真实服务器)。
-
均等地对待每台服务器,而不管服务器实际的连接数和系统负载。
1.3.2.加权轮询(Weighted Round Robin)
-
根据调度器设置的权重值来分发请求。
-
权重值高的节点优先获得任务并且分配的请求越多。
-
这样可以保证性能高的节点承担更 多请求。
1.3.3.最少连接(Least Connections)
-
根据真实服务器已建立的连接数进行分配。
-
将收到的访问请求优先分配给连接数最少的节点。
-
如果所有的服务器节点性能相近,采用这种方式可以更好的均衡负载。
1.3.4.加权最少连接(Weighted Least Connections)
-
在服务器节点的性能差异较大的 情况下,调度器可以根据节点服务器负载自动调整权重。
-
权重较高的节点将承担更 大比例的活动连接负载。
1.3.5.IP-Hash
-
根据请求来源的IP地址进行Hash计算,得到后端服务器。
-
这样来自同一个IP的请求总是会落到同一台服务器上处理,以致于可以将请求上下文信息存储在这个服务器上。
1.3.6.url-hash
-
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。
-
后端服务器为缓存时比较有效。
1.4 群集的目的
-
提高性能:计算密集应用。如天气预报,核试验模拟。
-
降低成本:相对百万美元的超级计算机,价格便宜。
-
提高可扩展性:只要增加集群节点即可。
-
增强可靠性:多个节点完成相同功能,避免单点失败。
1.5 负载均衡群集架构
第一层,负载调度器(Load Balancer或Director) 负载均衡层
访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP地址,也称为群集 IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑 替换至备用调度器,确保高可用性。
第二层,服务器池(Server Pool) WEB应用层
群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真 实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度 器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。
第三层,共享存储(Share Storage) 确保多台服务器使用的是相同的资源
为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性 共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。
(因为节点服务器的资源都是由NAS或NFS提供,所以NAS或NFS需要做主备、或分布式,从而实现高可用。)
1.6 负载均衡群集的工作模式
1、地址转换(NAT模式)
2、IP隧道(IP-TUN)
3、直接路由(DR模式)
1.6.1 NAT模式(地址转换)
Network Address Translation,简称NAT模式
调度作为网关,是访问请求的入口,也是响应访问的出口,在高并发场景中负载压力很高,安全性要优于其他两 种方式。
缺点:由于NAT的负载均衡器既作为用户的访问请求入口,也作为节点服务器响应请求的出口,承载两个方向的压力,调度器的性能会成为整个集群的瓶颈。
1.6.2 TUN模式(IP隧道)
IP Tunnel ,简称TUN模式。
仅是访问请求的入口,响应数据不经过调度器,但是需要大量公网IP,还需要专用的IP隧道,数据转发受IP隧道额外影响
缺点:成本很高。
这种模式一般应用于特殊场景,比如将节点服务器分布在全国各地,防止被物理攻击(如地震、战争等),做灾备。
1.6.3 DR模式(直接路由)
仅是访问请求的入口,响应数据不经过调度器,节点服务器和调度器在一个物理网络中,数据转发不受额外影响。
二、LVS虚拟服务器
2.1 LVS
inux Virtual Server,负载调度器,内核集成,阿里的四层SLB(Server
Load Balance)是基于LVS+keepalived实现。
2.2 LVS工作原理
LVS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS。LVS是内核级功能,工作在INPUT链的位置,将发往INPUT的流量进行“处理”。
2.3 LVS相关术语
DS:Director Server。指的是前端负载均衡器。
RS:Real Server。节点服务器,后端真实的工作服务器。
VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
RIP:Real Server IP,后端服务器的IP地址。
CIP:Client IP,访问客户端的IP地址。
2.4 LVS的负载调度算法
2.4.1固定调度算法:rr, wrr, dh,sh
rr:轮询算法(Round Robin)
将请求依次分配给不同的RS节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
将收到的访问请求安装顺序轮流分配给群集指定各节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载。
wrr:加权轮询调度(Weighted Round Robin)
依据不同RS的权重值分配任务。权重值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
保证性能强的服务器承担更多的访问流量。
dh:目的地址哈希调度(destination hashing)
以目的地址为关键字查找一个静态hash表来获得所需RS。
sh:源地址哈希调度(source hashing)
以源地址为关键字查找--个静态hash表来获得需要的RS。
2.4.2 动态调度算法: wlc,lc,lblc
lc:最小连接数调度( Least Connections)
ipvs表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。
wlc:加权最小连接数调度(Weighted Least Connections)
假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次取Ti/Wi为最小的RS作为下一个分配的RS。
在服务器节点的性能差异较大时,可以为真实服务器自动调整权重。
性能较高的节点将承担更大比例的活动连接负载。
三、分布式
3.1 分布式系统
-
分布式系统指在许多不同的服务器中部署不同的服务模块,并通过远程调用协作完成特定
任务以提供服务。 -
一般分布式系统都会部署分布式应用程序和服务,对应用程序和服务进行分层和分段,然后
以分布式方式部署应用程序和服务模块到各个节点。它不仅可以提高并发访问能力,而且可
以减少数据库连接和资源消耗,还可以使不同的应用程序重用公共服务,使业务易于扩展。
3.2 分类
分布式存储:
- Ceph
- GlusterFS
- FastDFS
- MogileFS
分布式计算
- hadoop
- Spark
分布式常见应用
- 分布式应用-服务按照功能拆分,使用微服务
- 分布式静态资源–静态资源放在不同的存储集群上
- 分布式数据和存储–使用 key-value 缓存系统
- 分布式计算–对特殊业务使用分布式计算,比如 Hadoop 集群
3.3集群与分布式区别
分布式系统处理任务是平行的,集群处理任务是串联的。
例如:包含 100 个子任务的客户请求分别到达 10 台分布式服务系统和 10 台集群服务
系统。假设单个任务单台服务器需要 1 分钟完成。那么分布式服务器系统的每台服务器
会花费 1 分钟完成一个任务,接着完成下一个任务,不考虑任务之间的依赖关系。这样
10 分钟后,就完成了 100 个任务;而在集群系统中,总是有 10 个任务被同时分配到
10 台服务器上处理,接着处理后面 10 个任务,这样在 10 分钟后,也完成了 100 个
任务。注意:在分布式中一般不会同时处理 10 个任务后又同时处理下面的 10 个任务。
集群:同一个业务系统,部署在多台服务器上。集群中,每一台服务器实现的功能
没有差别,数据和代码都是一样的
分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务
器上。分布式中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分
布式每台服务器功能加起来,才是完整的业务。
一句话:分布式是通过缩短单个任务的执行时间来提高效率,集群是通过增加单位
时间内执行的任务数量来提高效率。
例如:对于大型网站,访问用户很多,实现一个群集,在前面部署一个负载均衡服务器,
后面几台服务器完成同一业务。如果有用户进行相应业务访问时,负载均衡器根据后端
哪台服务器的负载情况,决定由给哪一台去完成响应,并且一台服务器垮了,其它的服
务器可以顶上来。分布式的每一个节点,都完成不 的业务,如果一个节点垮了,那这个
业务可能就会失败。
四、NAT模式 LVS负载均衡群集部署
LVS负载调度器:ens33:192.168.50.22 ens36:10.0.0.1(vmnet1)
Web1 节点服务器1:192.168.50.56
Web2 节点服务器2:192.168.50.57
NFS服务器:192.168.50.37
客户端(虚拟机):10.0.0.12 (Vmnet1)
1、部署共享存储(NFS服务器:192.168.50.37)
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0yum install -y nfs-utils rpcbind
systemctl start nfs.servicesystemctl enable nfs.service
systemctl start rpcbind.service
systemctl enable rpcbind.servicemkdir /opt/lc1 /opt/lc2
chmod 777 /opt/lc1 /opt/lc2vim /etc/exports
/opt/lc1 192.168.50.0/24(rw,sync)
/opt/lc2 192.168.50.0/24(rw,sync)
#发布共享
exportfs -rv
showmount -e
2、配置节点服务器(后端服务器)
192.168.50.56、192.168.50.57
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.serviceyum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.serviceshowmount -e 192.168.50.37
#web1:192.168.50.56
一、临时挂载
mount 192.168.50.37:/opt/lc1 /var/www/html/echo 'lc is my love' > /var/www/html/index.html
二、永久挂载
vim /etc/fstab
192.168.50.37:/opt/lc1 /var/www/html nfs defaults 0 0
mount -a#web2:192.168.50.57
mount 192.168.50.37:/opt/lc2 /var/www/html/echo 'my love is lc' > /var/www/html/index.html
vim /etc/fstab
192.168.50.37:/opt/lc2 /var/www/html nfs defaults 0 0mount -a
3.配置负载调度器LVS
ens33:192.168.50.22 ens36:10.0.0.1
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0#配置SNAT转发规则
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
[root@localhost ~]# iptables -t nat -F
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -t nat -nL
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens36 -j SNAT --to-source 10.0.0.1
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36[root@localhost network-scripts]# systemctl restart network
modprobe ip_vs #手动加载ip_vs模块
cat /proc/net/ip_vs #查看ip_vs版本信息
yum install -y ipvsadm
ipvsadm --save > /etc/sysconfig/ipvsadm #启动服务前必须保存负载分配策略systemctl start ipvsadm.service
配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)ipvsadm -C #清除原有策略
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 192.168.50.56:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 192.168.50.57:80 -m -w 1ipvsadm #启动策略
ipvsadm -ln #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略
4.客户端(虚拟机):10.0.0.12 (Vmnet1)使用浏览器访问10.0.0.1,刷新浏览器测试负载均衡
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
相关文章:

LVS负载均衡群集部署(LVS-NAT模型实例)
一、集群 1.1集群的含义 Cluster,集群、群集,为解决某个特定问题将多台计算机组合起来形成的单个系统。 由多台主机构成,但对外只表现为一个整体。 1.2群集的三种类型 1.2.1负载均衡群集 LB: Load Balancing,负载均衡&#x…...

【仿写tomcat】五、响应静态资源(访问html页面)、路由支持以及多线程改进
访问html页面 如果我们想访问html页面其实就是将本地的html文件以流的方式响应给前端即可,下面我们对HttpResponseServlet这个类做一些改造 package com.tomcatServer.domain;import com.tomcatServer.utils.ScanUtil;import java.io.IOException; import java.io…...

stm32单片机/51单片机蜂鸣器不响(proteus模拟)
蜂鸣器不发生原因就1个:电压不够 所以需要提高蜂鸣器2端的电压:可以采用的方法有: 1提高蜂鸣器电阻,这样根据分压原理,可以提升蜂鸣器2段电压 2更改蜂鸣器的工作电压为更小的值,这个可以通过在proteus内…...

BERT、ERNIE、Grover、XLNet、GPT、MASS、UniLM、ELECTRA、RoBERTa、T5、C4
BERT、ERNIE、Grover、XLNet、GPT、MASS、UniLM、ELECTRA、RoBERTa、T5、C4 ELMOBERTERNIEGroverXLNetGPTMASSUniLMELECTRARoBERTaT5C4ELMO BERT...

主机防护的重要性和方式
01 主机防护的重要性 主机防护是网络安全的重要组成部分。在互联网时代,网络攻击成为了一种常见的威胁,而主机防护则是保护计算机系统免受网络攻击的重要手段。 主机防护可以防范各种网络攻击,如病毒、木马、黑客攻击等,从而保…...

聚观早报 | 抢先体验阿维塔11座舱;本田和讴歌采用NACS充电标准
【聚观365】8月21日消息 抢先体验阿维塔11鸿蒙座舱 本田和讴歌采用特斯拉NACS充电标准 华为秋季新品发布会将于9月12日举行 iQOO Z8即将到来 三星Galaxy S24系列外观或更改 抢先体验阿维塔11鸿蒙座舱 当前,智能座舱成了各大巨头跑马圈地的重要领域。根据毕马威…...
思科计算机网络答案(包含第1~11章节)
第一章 1.在以下哪个场景中推荐使用 WISP? 选择一项: A.城市里的网吧 B.没有有线宽带接入的农村地区的农场 C.任何有多个无线设备的家庭 D.通过有线连接访问 Internet 的大厦公寓 2.一位员工希望以尽可能最安全的方式远程访问公司网络。 下列哪种网络特征将允许员工获得对…...

所见即所得,「Paraverse平行云」助力万间打造智能建造新图景
在城市建设行业中,数字化逐渐成为其主导力量。 新一代信息基础设施建设也迎来了新的里程碑。数据显示,截至今年,我国已全面推进城市信息模型(CIM)基础平台建设,为城市规划、建设管理提供了多场景应用的强大…...
AI图片处理功能演示
例如,这是一张不错的图片,但是有3只手。 我们可以选择有问题的区域,然后要求 niji 进行重新绘制。 根据我们选择的区域,我们可以以不同的方式修复结果。 创意修复 修复并不仅限于纠正错误。我们可以要求 niji 添加额外的元素&…...
CentOS系统环境搭建(六)——使用docker-compose安装redis
centos系统环境搭建专栏🔗点击跳转 关于Docker-compose安装请看CentOS系统环境搭建(三)——Centos7安装Docker&Docker Compose,该文章同样收录于centos系统环境搭建专栏。 Docker-compose安装redis 文章目录 Docker-compose安…...

个人论坛项目测试报告
目录 0.项目概述及部分测试用例展示 以下是部分测试用例: 进行一般的性能测试性能测试 1.摘要及版本修订记录 2.功能介绍 3.测试范围 3.1.功能性 3.2.可靠性 3.3.易用性 4.测试资源 4.1.人员介绍 4.2.测试环境 4.2.测试工具 5.测试策略 5.2.功能测试…...

一起来学shiny把(4)—调控控件进行输出
什么是shiny?Shiny是一个R包,可让您轻松地直接从 R 构建交互式 Web 应用程序(应用程序)。本系列是个长教程,带你由浅入深学习shiny。 上一节我们在文章《R语言系列教程—–一起来学shiny吧(3)》…...
VBIC卡管理系统设计与实现
摘要 IC卡管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用 MICROSOFT公司的 …...

八种架构演进
日升时奋斗,日落时自省 目录 1、单机架构 2、应用数据分离架构 3、应用服务集群架构 4、读写分离/主从分离架构 5、冷热分离架构 6、垂直分库架构 7、微服务架构 8、容器编排架构 9、小结 1、单机架构 特征:应用服务和数据库服务器公用一台服务…...

商城-学习整理-高级-分布式事务(十九)
目录 一、本地事务1、事务的基本性质2、事务的隔离级别3、事务的传播行为4、SpringBoot 事务关键点 二、分布式事务1、为什么有分布式事务2、CAP 定理与 BASE 理论1、CAP 定理2、面临的问题3、BASE 理论4、强一致性、弱一致性、最终一致性 3、分布式事务几种方案1)、…...
Java学习笔记(三):面向对象
文章目录 1.类与对象1.1 定义构造器1.2 定义成员变量1.3 定义方法1.4 static关键字 2. 面向对象的三大特征:封装、继承和多态2.1 封装2.2 继承2.2.1 子类重写父类的方法 2.3 多态 1.类与对象 类(class)和对象(object, 也被称为实例 instance…...

电商项目part02 电商后台多数据源
电商后台项目需要访问的数据源 多数据源方法(读写分离) 方法1:jdk自带的dynamicdatasource 方法2:Mybatis 方式 方法3:dynamicdatasource框架 <!--Druid连接池--><dependency><groupId>com.aliba…...

【C# 基础精讲】LINQ 基础
LINQ(Language Integrated Query)是一项强大的C#语言特性,它使数据查询和操作变得更加简洁、灵活和可读性强。通过使用LINQ,您可以使用类似SQL的语法来查询各种数据源,如集合、数组、数据库等。本文将介绍LINQ的基础概…...

ChatGPT成为工作工具,具体都应用在哪些地方?
Verified Market Research估计,到2030年,人工智能写作辅助软件市场将达到约65亿美元,复合年增长率为27%。生成式人工智能的浪潮正在席卷世界各地的营销部门。 Botco对美国1000名工作人员进行的调查发现,73%的人表示他们会利用生成…...

Shader学习(三)(片元着色器)
1、在片元着色器处理漫反射 // Upgrade NOTE: replaced _World2Object with unity_WorldToObjectShader "Custom/specularfragement" {properties{_sp("Specular",color) (1,1,1,1)_shiness("Shiness",range(1,64)) 8}SubShader{pass {tags{&…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

安宝特方案丨从依赖经验到数据驱动:AR套件重构特种装备装配与质检全流程
在高压电气装备、军工装备、石油测井仪器装备、计算存储服务器和机柜、核磁医疗装备、大型发动机组等特种装备生产型企业,其产品具有“小批量、多品种、人工装配、价值高”的特点。 生产管理中存在传统SOP文件内容缺失、SOP更新不及、装配严重依赖个人经验、产品装…...