当前位置:网站首页>7. The principle description of LVS load balancing cluster
7. The principle description of LVS load balancing cluster
2022-08-04 04:05:00 【Is a stupid boy】
前言
互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心,However, a minicomputer or a mainframe that can be used with high usability,The price is very expensive,So using multiple common servers to build service clusters has become a big trend
一,群集概述
1.群集的含义
- Cluster,集群,群集
- 由多台主机构成,But externally, only one appears as a whole,只提供一个访问入口(域名与IP地址),Equivalent to a large computer
2.群集的分类
根据群集所针对的目标差异,可分为三种类型
- 负载均衡群集
- 高可用群集 (HA) 作用: 冗余,备份,Prevents resolving single points of failure
- 高性能运算群集 (分布式) 作用: Reasonable and even distribution of resources
2.1负载均衡群集(Load Balance Cluster)
- 提高应用系统的响应能力,尽可能处理更多的访问请求,减少延迟为目标,获得高并发,高负载(LB)的整体性能
- LB的负载分配依赖于主节点的分流算法,Distributes access requests from clients to multiple server nodes,从而缓解整个系统的负载压力,例如: DNS轮询,反向解析
- Allocate according to weight,weightThe objects that weights affect are requests
Load balancing distributes forwarding requests according to the server's performance weight,Allocate more requests to higher performance ones,Less is allocated to low performance ones
2.2高可用群集 (High Availability Cluster)
High availability is to solve a single point of failure
Improve the reliability of the application system as much as possible to reduce the interruption time as the goal,确保服务的连续性,达到高可用(HA)的容错效果
HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线;主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点
例如:故障切换、双机热备When using high availability in master-slave mode,The primary node pressure cannot be exceeded80%,否则会造成“雪崩”
actually provide business、There is only one server for processing,The other is waiting for the main server to hang at any time;The priority determines the master and backup,They are detected by heartbeatvip来接受请求
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 模式,类似于防火墙的私有网络结构
负载调度器作为服务器节点的网关,Both as the client's access entry,It also serves as the access exit for each node to respond to the client
服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
4.2 IP 隧道(TUN模式)
简称 TUN 模式,采用开放式的网络结构
负载调度器仅作为客户机的访问入口,各节点通过各自的 Internet 连接直接回应客户机,而不再经过负载调度器
服务器节点分散在互联网中的不同位置,具有独立的公网 IP 地址,通过专用 IP 隧道与负载调度器相互通信
4.3 直接路由(DR模式)
简称 DR 模式,Adopt a semi-open network structure,与 TUN 模式的结构类似,But the nodes are not scattered all over the place,而是与调度器位于同一个物理网络
负载调度器与各节点服务器通过本地网络连接,不需要建立专用的 IP 隧道
注:in the above three working modes,NAT 方式只需要一个公网 IP地址,This makes it the easiest load balancing mode to use,安全性也比较好,Many hardware load balancing devices use this approach;
相比较而言,DR 模式和 TUN 模式的负载能力更加强大,适用范围更广,But nodes are slightly less secure
Summary of the above
- LVSNot suitable for small clusters
- 工作模式区别
工作模式 | NAT模式 | TUN模式 | DR模式(与NAT相比较为复杂) |
---|---|---|---|
server number 节点数量 | low10-20 | hingh 100 | high 100 |
真实网关(real servers) | 负载调度器 | 自由路由器 | 自由路由器 |
IP地址 | 公网+私网 | 公网 | 私网 |
优点 | 安全性高 | 安全、速度快 | 性能最好 |
缺点 | 效率低、压力大 | 需要隧道支持 | 不能跨越lan(局域网) |
二、LVS虚拟服务器
1.LVS 概述
Linux Virtual Server(LVS)是针对 Linux A load balancing project developed by the kernel,由我国的章文嵩博士在1998年5月创建
LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了一种高效的解决方法
手动加载 ip_vs 模块,And view the version information of the module
[[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 调度器提供多种不同的负载调度算法,Four of the most commonly used algorithms include polling、加权轮询、最少连接和加权最少连接
- 轮询(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端口提供负载分流服务,Use the scheduling algorithm for round robin,操作如下
ipvsadm -A -t 172.16.16.172:80 -s rr
#-s Used to specify the algorithm,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 地址(The default is to view all),结合-nThe address will be displayed numerically、端口等信息
ipvsadm -ln
- 删除服务器节点
ipvsadm -d -r 192.168.8.135:80 -t 172.16.16.123:80
#If you want to delete the entire virtual server,使用选项 -D 并指定虚拟 IP地址即可,无需指定节点
ipvsadm -D -t 172.16.16.123:80
- Maintain a load distribution strategy
ipvsadm-save > /etc/sysconfig/ipvsadm #保持策略
cat /etc/sysconfig/ipvsadm #查看保存结果
service ipvsadm stop #清除策略
service ipvsadm start #reinvent the rules
- 保存负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm #保持策略
cat /etc/sysconfig/ipvsadm #查看保存结果
service ipvsadm stop #清除策略
service ipvsadm start #reinvent the rules
边栏推荐
猜你喜欢
十一种概率分布
2022 Hangzhou Electric Power Multi-School League Game 5 Solution
软件测试如何系统规划学习呢?
2千兆光+6千兆电导轨式网管型工业级以太网交换机支持X-Ring冗余环网一键环网交换机
Gigabit 2 X light 8 electricity management industrial Ethernet switches WEB management - a key Ring Ring net switch
PL/SQL Some Advanced Fundamental
6口全千兆二层网管型工业以太网交换机千兆2光4电光纤自愈ERPS环网交换机
"Introduction to nlp + actual combat: Chapter 8: Using Pytorch to realize handwritten digit recognition"
基于 SSE 实现服务端消息主动推送解决方案
Enterprise live broadcast is on the rise: Witnessing focused products, micro-like embracing ecology
随机推荐
千兆2光8电管理型工业以太网交换机WEB管理X-Ring一键环网交换机
4-way two-way HDMI integrated business high-definition video optical transceiver 8-way HDMI high-definition video optical transceiver
使用serve搭建本地服务器
docker+网桥+redis主从+哨兵模式
Based on the statistical QDirStat Qt directory
JVM的内存模型简介
DIY电工维修如何拆卸和安装开关面板插座
打造一份优雅的简历
什么是数字孪生智慧城市应用场景
SVM介绍以及实战
初识Numpy
系统设计.如何设计一个秒杀系统(完整版 转)
Polygon zkEVM network node
图像处理之Bolb分析(一)
【观察】超聚变:首提“算网九阶”评估模型,共建开放繁荣的算力网络
基本表单验证流程
PL/SQL Some Advanced Fundamental
嵌入式数据库开发编程MySQL(全)
2.15 keil使用电脑端时间日期
如何简化现代电子采购的自动化?