LVS负载均衡

目录

一、集群概述

1.集群的定义

2.集群的分类

2.1负载均衡集群(Load Balance Cluster)

2.2高可用群集(High Availability Cluster)

2.3高性能运算群集 (High Performance Computer Cluster)

二、负载均衡群集架构

1.负载调度器(Load Balancer或Director)

2.服务器池(Server Pool)

3.共享存储(Shared Storage)

三、三种负载调度工作模式 

1.NAT模式

2.TUN模式

3.DR模式 

4.总结 

四、LVS虚拟服务器

1.简介

2.LVS的负载调度算法

2.1轮询(Round Robin)

2.2加权轮询 (Weighted Round Robin) 

2.3最少连接 (Least Connections) 

2.4加权最少连接(Weighted L east Connections) 

五、LVS群集创建与管理

1.创建步骤

2.LVS的管理工具

六、NAT模式LVS负载均衡群集部署

1.部署共享存储

2.配置节点服务器 

3.配置负载调度器LVS 

4.验证测试 


一、集群概述

1.集群的定义

集群是指由多台主机构成的计算系统,但对外只表现为一个整体,只提供一个访问入口(域名与IP地址),相当于一台大型计算机

2.集群的分类

2.1负载均衡集群(Load Balance Cluster)

提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能
LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载

2.2高可用群集(High Availability Cluster)

提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果

HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线;主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点

例如:“故障切换”、“双击热备”等

2.3高性能运算群集 (High Performance Computer Cluster)

以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
高性能依赖于"分布式运算”、“并行计算” , 通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力

二、负载均衡群集架构

1.负载调度器(Load Balancer或Director)

功能:

作为整个群集系统的唯一入口,处理所有外部访问请求
IP地址:

使用共享的VIP(虚拟 IP 地址),也称为群集 IP 地址
高可用性:

通常配置主备两台调度器以实现热备份。主调度器失效时,备用调度器可以平滑接管,确保系统的高可用性

2.服务器池(Server Pool)

功能:

提供实际的应用服务。每个节点都拥有独立的真实 IP 地址(RIP),只处理负载调度器分发过来的请求
容错机制:

当某个节点失效时,负载调度器的容错机制会将其隔离,待故障修复后再重新纳入服务器池中

3.共享存储(Shared Storage)

作用:

为服务器池中的所有节点提供稳定和一致的文件存取服务,确保整个群集的数据一致性和共享文件访问
实现方式:

可以使用 NAS 设备(网络附加存储)或专用服务器提供 NFS 共享服务,使所有服务器节点能够访问和操作共享的存储数据

三、三种负载调度工作模式 

1.NAT模式

地址转换

特点:
(1)负载调度器作为所有服务器节点的网关
(2)服务器节点使用私有IP 地址,与负载调度器位于同一个物理网络
(3)安全性较高,因为服务器节点的私有IP 地址对外不可见
工作方式:
(1)客户端请求首先经过负载调度器进行地址转换,然后负载调度器将请求转发给具体的服务器节点
(2)服务器节点回应客户端的请求时,响应流量再次经过负载调度器进行地址转换,返回给客户端

2.TUN模式

IP隧道

特点:
(1)负载调度器仅作为客户端的访问入口,不再作为响应出口
(2)服务器节点分散在互联网中的不同位置,具有独立的公网IP地址
(3)服务器节点通过专用的 IP 隧道与负载调度器进行通信
工作方式:
(1)客户端请求首先经过负载调度器作为入口,然后直接到达分布在不同位置的服务器节点
(2)服务器节点响应客户端请求时,直接返回给客户端,不再经过负载调度器

3.DR模式 

直接路由

特点:
(1)负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道

(2)负载调度器作为客户端的访问入口,但不作为响应的出口

工作方式:
(1)客户端请求经过负载调度器作为入口后,直接到达位于同一物理网络的服务器节点
(2)服务器节点响应客户端请求时,直接返回给客户端,不再经过负载调度器

4.总结 

三种负载调度工作模式各有其特点和适用场景:
NAT 模式:适合于需要保护服务器节点私有 IP 地址并控制所有流量的情况
TUN 模式:适合于服务器节点分布在不同地理位置且具有独立公网 IP 地址的情况
DR 模式:适合于服务器节点与负载调度器在同一物理网络内的情况,可以减少通信的网络开销和延迟

四、LVS虚拟服务器

1.简介

LVS(Linux Virtual Server)是一个开源的负载均衡软件项目,专门设计用于构建高性能、高可用性的服务器集群。它运行在基于 Linux 的系统上,并提供了多种负载均衡算法和网络传输协议的支持,使得它在企业网络和互联网应用中得到广泛应用

加载 ip_vs 模块
modprobe ip_vs

查看 ip_vs 模块版本信息
cat /proc/net/ip_vs  # 确认内核对 LVS 的支持

2.LVS的负载调度算法

2.1轮询(Round Robin)

特点:
(1)将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器)
(2)每个节点接收到的请求数量大致相等,不考虑服务器的实际负载情况和连接数

2.2加权轮询 (Weighted Round Robin) 

特点:
(1)根据负载调度器设置的权重值来分发请求
(2)权重值高的节点优先获得任务,分配的请求数量随权重的设定而变化
(3)适用于需要保证性能强的服务器承担更多访问流量的情况

2.3最少连接 (Least Connections) 

特点:
(1)根据真实服务器已建立的连接数进行分配
(2)将收到的访问请求优先分配给当前连接数最少的节点,以达到负载均衡的目的
(3)适用于需要考虑服务器实际负载情况的场景

2.4加权最少连接(Weighted L east Connections) 

特点:
(1)结合了加权和最少连接两种算法的优点
(2)在真实服务器性能存在显著差异时,自动调整权重,以保证性能较高的节点能够承担更多的活动连接负载

五、LVS群集创建与管理

1.创建步骤

(1)创建虚拟服务器

初始化并配置虚拟服务器,以便在群集中分配和管理流量
(2)添加、删除服务器节点

动态添加或删除群集中的服务器节点,以灵活管理资源和负载
(3)查看群集及节点情况

实时监控和查看群集及各节点的状态,确保系统运行的稳定性和负载均衡的效果
(4)保存负载分配策略

保存和应用已配置的负载分配策略,以确保在系统重启或更新时保持一致的负载均衡行为

2.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-p 60 表示保持长连接60秒
-l列表查看 LVS 虚拟服务器 (默认为查看所有)
-n以数字形式显示地址、端口等信息,常与 “-l” 选项组合使用。ipvsadm -ln

六、NAT模式LVS负载均衡群集部署

实验的需求:
1台Linux作为LVS负载调度器(ens33:172.16.58.40,ens37:10.0.0.1)

2台Linux作为WEB节点服务器

1台Linux作为NFS服务器

1台Windows作为结果检测(10.0.0.12)

1.部署共享存储

NFS服务器:172.16.58.10

关闭防火墙以及增强功能
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 

安装NFS服务
yum install -y nfs-utils rpcbind
 

启动并设置NFS服务开机自启
systemctl start nfs.service
systemctl start rpcbind.service
systemctl enable nfs.service
systemctl enable rpcbind.service
 

创建共享目录并设置权限
mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet
 

配置NFS共享
vim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 172.16.58.0/24(rw,sync)
/opt/benet 172.16.58.0/24(rw,sync)

 
发布共享
exportfs -rv
showmount -e

2.配置节点服务器 

2个节点服务器:172.16.58.20、172.16.58.30

关闭防火墙以及增强功能
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 

安装和配置Web服务
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service
 

安装NFS客户端工具
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service
 

挂载NFS共享
web1:172.16.58.20
mount.nfs 172.16.58.10:/opt/kgc /var/www/html/
echo 'this is kgc' > /var/www/html/index.html
 
vim /etc/fstab
172.16.58.10:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
mount -a
 
web2:172.16.58.30
mount.nfs 172.16.58.10:/opt/benet /var/www/html/
echo 'this is benet' > /var/www/html/index.html
vim /etc/fstab
172.16.58.10:/opt/benet /var/www/html nfs defaults,_netdev 0 0
mount -a

3.配置负载调度器LVS 

LVS负载调度器:172.16.58.40

关闭防火墙以及增强功能
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 

配置IP转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
或者
echo '1' > /proc/sys/net/ipv4/ip_forward
 

配置SNAT转发规则
iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 172.16.58.10.0/24 -o ens37 -j SNAT --to-source 10.0.0.1
 

加载LVS内核模块
modprobe ip_vs   #手动加载ip_vs模块
cat /proc/net/ip_vs   #查看ip_vs版本信息
 

安装ipvsadm管理工具
yum install -y ipvsadm
 

启动ipvsadm服务前保存负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm
或者
ipvsadm --save > /etc/sysconfig/ipvsadm
或者
touch /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
 

配置负载分配策略
ipvsadm -C
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 172.16.58.20:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 172.16.58.30:80 -m -w 1
 

查看和保存策略
ipvsadm
ipvsadm -ln
ipvsadm-save > /etc/sysconfig/ipvsadm

 
管理负载均衡策略:
删除某一节点服务器
ipvsadm -d -t 10.0.0.1:80 -r 172.16.58.20:80

删除整个虚拟服务器
ipvsadm -D -t 10.0.0.1:80

停止服务(清除策略)
systemctl stop ipvsadm

启动服务(重建规则)
systemctl start ipvsadm

恢复LVS策略
ipvsadm-restore > /etc/sysconfig/ipvsadm

4.验证测试 

在windows上使用浏览器访问10.0.0.1,刷新浏览器测试负载均衡
PS:刷新间隔时间需要稍长一点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值