当前位置:网站首页>LVS负载均衡群集之原理叙述
LVS负载均衡群集之原理叙述
2022-08-04 18:08:00 【世上无难事754】
前言
互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心,但是使用性能够高的小型机或大型机,价格却又十分昂贵,所以使用多台普通服务器构建服务群集成为了一个大的趋势
一,群集概述
1.群集的含义
- Cluster,集群,群集
- 由多台主机构成,但对外只表现一个为整体,只提供一个访问入口(域名与IP地址),相当于一个大型计算机
2.群集的分类
根据群集所针对的目标差异,可分为三种类型
- 负载均衡群集
- 高可用群集 (HA) 作用: 冗余,备份,防止解决单点故障
- 高性能运算群集 (分布式) 作用: 合理均分资源
2.1负载均衡群集(Load Balance Cluster)
- 提高应用系统的响应能力,尽可能处理更多的访问请求,减少延迟为目标,获得高并发,高负载(LB)的整体性能
- LB的负载分配依赖于主节点的分流算法,将来自客户机的访问求情分担给多个服务器节点,从而缓解整个系统的负载压力,例如: DNS轮询,反向解析
- 按照权重来分配,weight权重影响的对象是请求
负载均衡根据服务器的性能权重来分配转发请求,把更多的请求分配给性能更高的,更少的分配给性能低的
2.2高可用群集 (High Availability Cluster)
高可用是为了解决单点故障
提高应用系统的可靠性尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果
HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线;主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点
例如:故障切换、双机热备主从模式使用高可用时,主节点压力不能超过80%,否则会造成“雪崩”
实际提供业务、进行处理的服务器只有一台,另一台随时等着主服务器挂掉;优先级决定主备,他们之间通过心跳检测的vip来接受请求
2.3高性能运算群集 (High Performance Computer Cluster)
以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
高性能依赖于"分布式运算”、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力
3.负载均衡的结构
3.1 第一层,负载调度器 (Load Balancer或Director)
访问整个群集系统的唯一入口
对外使用所有服务器共有的VIP地址,也称为群集IP地址
通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性
3.2 第二层,服务器池 (Server Pool)
群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求
当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池
3.3 第三层,共享存储(Share Storage)
- 为服务器池中的所有节点提供稳定、一致的文件存取服务
- 确保整个群集的统一性共享存储可以使用NAS(网络存储)设备,或者提供NFS共享服务的专用服务器
4.负载均衡群集工作模式分析
负载均衡群集是目前企业用得最多的群集类型
关于群集的负载调度技术,可以基于 IP、端口、内容等进行分发,其中基于 IP 的负载调度是效率最高的
群集的负载调度技术有3种工作模式
1.地址转换(NAT模式)
2.IP隧道(TUN模式)
3.直接路由(DR模式)
4.1 地址转换(NAT模式)
简称 NAT 模式,类似于防火墙的私有网络结构
负载调度器作为服务器节点的网关,既作为客户机的访问入口,也作为各节点回应客户机的访问出口
服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
4.2 IP 隧道(TUN模式)
简称 TUN 模式,采用开放式的网络结构
负载调度器仅作为客户机的访问入口,各节点通过各自的 Internet 连接直接回应客户机,而不再经过负载调度器
服务器节点分散在互联网中的不同位置,具有独立的公网 IP 地址,通过专用 IP 隧道与负载调度器相互通信
4.3 直接路由(DR模式)
简称 DR 模式,采用半开放的网络结构,与 TUN 模式的结构类似,但是各节点并不是分散在各地,而是与调度器位于同一个物理网络
负载调度器与各节点服务器通过本地网络连接,不需要建立专用的 IP 隧道
注:上述三种工作模式中,NAT 方式只需要一个公网 IP地址,从而成为最易使用的一种负载均衡模式,安全性也比较好,许多硬件负载均衡设备就是采用的这种方式;
相比较而言,DR 模式和 TUN 模式的负载能力更加强大,适用范围更广,但是节点的安全性要稍差一些
上述内容总结
- LVS不太适合小型的集群
- 工作模式区别
工作模式 | NAT模式 | TUN模式 | DR模式(与NAT相比较为复杂) |
---|---|---|---|
server number 节点数量 | low10-20 | hingh 100 | high 100 |
真实网关(real servers) | 负载调度器 | 自由路由器 | 自由路由器 |
IP地址 | 公网+私网 | 公网 | 私网 |
优点 | 安全性高 | 安全、速度快 | 性能最好 |
缺点 | 效率低、压力大 | 需要隧道支持 | 不能跨越lan(局域网) |
二、LVS虚拟服务器
1.LVS 概述
Linux Virtual Server(LVS)是针对 Linux 内核开发的一个负载均衡项目,由我国的章文嵩博士在1998年5月创建
LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了一种高效的解决方法
手动加载 ip_vs 模块,并查看模块的版本信息
[[email protected] ~]# modprobe ip_vs #加载模块
[[email protected] ~]# cat /proc/net/ip_vs #查看版本信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
2.LVS 的负载调度算法
针对不同的网络服务和配置需要,LVS 调度器提供多种不同的负载调度算法,其中最常用的四种算法包括轮询、加权轮询、最少连接和加权最少连接
- 轮询(rr):将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载
- 加权轮询(wrr):根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重,这样可以保证处理能力强的服务器承担更多的访问流量
- 最少连接(lc):根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点,如果所有的服务器节点性能相近,采用这种方式可以更好的均衡负载
- 加权最少连接(wlc):在服务器节点的性能差异较大时,可以为真实服务器自动调整权重,权重较高的节点将承担更大比例的活动连接负载
3.ipvsadm 管理工具
ipvsadm 是在负载调度器上使用的 LVS 群集管理工具,通过调用 ip_vs 模块来添加、删除服务器节点,以及查看群集的运行状态
- 需手动安装 ipvsadm 软件包
[[email protected] ~]# yum install -y ipvsadm
......
已安装:
ipvsadm.x86_64 0:1.27-8.el7
[[email protected] ~]# ipvsadm -v
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
3.1 ipvsadm 常用选项
LVS 群集的管理工作主要包括创建虚拟服务器、添加服务器节点、查看群集节点状态、删除服务器节点和保存负载分配策略
选项 | 说明 |
---|---|
-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” 选项组合使用 |
3.2 示例
- 创建虚拟服务器
群集的VIP地址为172.16.16.172 ,针对 TCP80端口提供负载分流服务,使用调度算法为轮询,操作如下
ipvsadm -A -t 172.16.16.172:80 -s rr
#-s 用来指定算法,rr表示轮询
#对于负载均衡调度器来说,VIP必须是本机实际已启用的IP地址
- 添加服务器节点
为虚拟服务器172.16.16.172添加四个服务器节点,IP地址依次为192.168.8.135~192.168.8.138,操作如下
ipvsadm -a -t 172.16.16.172:80 -r 192.168.8.135 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 192.168.8.136 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 192.168.8.137 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 192.168.8.138 -m -w 1
- 查看群集节点状态
结合选项-l可以查看 lvs 虚拟服务器,可以指定只查看某一个 VIP 地址(默认是查看所有),结合-n将以数字的形式显示地址、端口等信息
ipvsadm -ln
- 删除服务器节点
ipvsadm -d -r 192.168.8.135:80 -t 172.16.16.123:80
#若想删除整个虚拟服务器时,使用选项 -D 并指定虚拟 IP地址即可,无需指定节点
ipvsadm -D -t 172.16.16.123:80
- 保持负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm #保持策略
cat /etc/sysconfig/ipvsadm #查看保存结果
service ipvsadm stop #清除策略
service ipvsadm start #重新创规则
t 172.16.16.123:80
- 保持负载分配策略
```bash
ipvsadm-save > /etc/sysconfig/ipvsadm #保持策略
cat /etc/sysconfig/ipvsadm #查看保存结果
service ipvsadm stop #清除策略
service ipvsadm start #重新创规则
边栏推荐
- 群友求助,一周没有搞定的需求,3分钟就解决了?
- Nintendo won't launch any new hardware until March 2023, report says
- 网页端IM即时通讯开发:短轮询、长轮询、SSE、WebSocket
- 【web自动化测试】Playwright快速入门,5分钟上手
- FE01_OneHot-Scala Application
- Babbitt | Metaverse daily must-read: Weibo animation will recruit all kinds of virtual idols around the world and provide support for them...
- 数据库SqlServer迁移PostgreSql实践
- 自己经常使用的三种调试:Pycharm、Vscode、pdb调试
- Flink/Scala - Storing data with RedisSink
- Iptables防火墙基础知识介绍
猜你喜欢
力扣学习---0804
Nintendo won't launch any new hardware until March 2023, report says
CAN光纤转换器CAN光端机解决消防火灾报警
Cholesterol-PEG-DBCO,CLS-PEG-DBCO,胆固醇-聚乙二醇-二苯基环辛炔科研试剂
基于层次分析法的“内卷”指数分析
The Industrial Metaverse Brings Changes to Industry
DMPE-PEG-Mal,二肉豆蔻酰磷脂酰乙醇胺-聚乙二醇-马来酰亚胺简述
使用scikit-learn计算文本TF-IDF值
防火墙基础之防火墙做出口设备安全防护
智能视频监控平台EasyCVR如何使用接口批量导出iframe地址?
随机推荐
PT100铂热电阻三种测温方法介绍
全球电子产品需求放缓:三星越南工厂大幅压缩产能
合宙Cat1 4G模块Air724UG配置RNDIS网卡或PPP拨号,通过RNDIS网卡使开发板上网(以RV1126/1109开发板为例)
谁能解答?从mysql的binlog读取数据到kafka,但是数据类型有Insert,updata,
EasyCVR如何通过接口调用设备录像的倍速回放?
Cholesterol-PEG-DBCO,CLS-PEG-DBCO,胆固醇-聚乙二醇-二苯基环辛炔科研试剂
【web自动化测试】playwright安装失败怎么办
How does EasyCVR call the double-speed playback of device recording through the interface?
2019 Haidian District Youth Programming Challenge Activity Elementary Group Rematch Test Questions Detailed Answers
Go language Go language, understand Go language file operation in one article
ATF中断处理的设计模型
DOM Clobbering的原理及应用
[Web Automation Test] Quick Start with Playwright, 5 minutes to get started
基于大学生内卷行为的调查研究
After EasyCVR is locally connected to the national standard device to map the public network, the local device cannot play and cascade the solution
Web端即时通讯技术:WebSocket、socket.io、SSE
How does the intelligent video surveillance platform EasyCVR use the interface to export iframe addresses in batches?
力扣学习---0804
"Involution" Index Analysis Based on AHP
【web自动化测试】Playwright快速入门,5分钟上手