LVS负载均衡群集

目录

一:LVS群集应用基础

1:群集技术概述

1.1:群集的类型

1.2:负载均衡的分层结构

1.3:负载均衡的工作模式

对比总结

2:LVS虚拟服务器

2.1:LVS的负载调度算法

2.2:使用ipvsadm管理工具

3:NFS共享存储服务

3.1:使用NFS发布共享资源

3.2:在客户机中访问NFS共享资源

二:案例:地址转换模式(LVS-NAT)

1:准备案例环境

2:配置负载调度器

3:配置节点服务器

4:测试LVS群集


一:LVS群集应用基础

1:群集技术概述

1.1:群集的类型

负载均衡群集:

目的:将工作任务均匀分配到多个节点,以提高系统整体处理能力、响应速度和资源利用率。

典型应用:Web服务器群集、数据库读写分离、流量分发(如LVS、Nginx、F5等)。

特点:注重横向扩展(Scale-out),通过分散请求避免单点过载。

高可用群集:

目的:通过冗余节点确保服务持续可用,最小化因硬件/软件故障导致的停机时间。

典型应用:关键业务系统(如银行交易、数据库主从切换)、故障自动转移(如Keepalived、Pacemaker)。

特点:通过心跳检测(Heartbeat)和故障切换(Failover)实现高可靠性。

高性能运算群集:

目的:整合多台服务器的计算资源,解决复杂科学计算或大规模并行处理任务。

典型应用:气象模拟、基因测序、物理建模(如OpenMPI、Kubernetes批处理任务)。

特点:注重纵向性能(Scale-up),通常需要高速网络(如InfiniBand)和专用调度软件。

1.2:负载均衡的分层结构

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

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

第三层:共享存储:为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。在 Linux/UNIX 环境中,共享存储可以使用 NAS 设备,或者提供 NFS(Network File System,网络文件系统)共享服务的专用服务器。

1.3:负载均衡的工作模式

为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。在 Linux/UNIX 环境中,共享存储可以使用 NAS 设备,或者提供 NFS(Network File System,网络文件系统)共享服务的专用服务器。

  • 地址转换:

简称 NAT 模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。服务器节点使用私有 IP 地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式。

  • IP隧道:

简称 TUN 模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的 Internet 连接直接回应客户机,而不再经过负载调度器。服务器节点分散在互联网中的不同位置,具有独立的公网 IP 地址,通过专用 IP 隧道与负载调度器相互通信。

  • 直接路由:

简称 DR 模式,采用半开放式的网络结构,与 TUN 模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的 IP 隧道。

对比总结
工作模式调度方式性能适用场景复杂度
NAT修改IP/端口较低中小规模集群,安全性要求高中等
TUNIP隧道封装较高跨机房、分布式系统
DR修改MAC地址最高高性能、低延迟场景中等

2:LVS虚拟服务器

2.1:LVS的负载调度算法

轮询(Round Robin, rr):

  • 将请求依次分配给每个服务器节点,实现简单轮转分配。
  • 适用于服务器性能相近的场景。

加权轮询(Weighted Round Robin, wrr):

  • 在轮询的基础上,根据服务器节点的权重分配请求,权重高的节点处理更多请求。
  • 适用于服务器性能差异较大的场景。

最少连接(Least Connections, lc):

  • 将请求分配给当前连接数最少的服务器节点,实现动态负载均衡。
  • 适用于长连接或会话时间差异较大的服务。

加权最少连接(Weighted Least Connections, wlc):

  • 在最少连接的基础上,结合服务器节点的权重分配请求,权重高的节点处理更多连接。
  • 是LVS的默认调度算法,兼顾性能和负载均衡效果。

2.2:使用ipvsadm管理工具

#安装包ipvsadm
dnf -y install ipvsadm
ipvsadm -v

(1)创建虚拟服务器

#创建虚拟服务器(集群)
ipvsadm -A -t 172.16.16.172:80 -s wrr
	-A:添加一个虚拟服务器(集群地址)
	-t 172.16.16.172:群集地址
	-s:算法
	wrr:加权轮询

(2)添加服务器节点

ipvsadm -a -t 172.16.16.172:80 -r 	192.168.10.202:80 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 	192.168.10.203:80 -m -w 1
	-r:真实的服务器地址
	-m:nat模式(地址伪装)
	-w:权重

(3)查看群集节点状态

查看状态:ipvsadm-save 
	       	 ipvsadm -ln

(4)删除服务器节点

ipvsadm -d -r 192.168.10.202:80 -t 172.16.16.172:80

(5)保存负载分配策略

ipvsadm-save > /etc/sysconfig/ipvsadm          #保存策略
cat /etc/sysconfig/ipvsadm        #确认保存结果

systemctl stop ipvsadm       #停止服务(清除策略)
systemctl start ipvsadm        #启动服务(重建规则)

3:NFS共享存储服务

NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。对于大多数负载均衡群集来说,使用 NFS 协议来共享数据存储是比较常见的做法,NFS 也是 NAS 存储设备必然支持的一种协议。

3.1:使用NFS发布共享资源

NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在 OpenEuler 系统中,需要安装 nfs - utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。

(1)安装软件包

提供 RPC 支持的服务为 rpcbind,提供 NFS 共享的服务为 nfs,完成安装以后建议调整这两个服务的自启动状态,以便每次开机后自动启用。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

[root@localhost ~]# yum -y install nfs - utils rpcbind
[root@localhost ~]# systemctl enable nfs - server
[root@localhost ~]# systemctl enable rpcbind

(2)设置共享目录

#设置共享目录
mkdir -p /opt/wwwroot
vi /etc/exports
/opt/wwwroot 192.168.10.0/24(rw,sync,no_root_squash)

(3)启动NFS服务程序

#启动服务
systemctl start rpcbind
systemctl start nfs
netstat -anpt | grep rpc

(4)查看本机发布的NFS共享目录

showmount -e

3.2:在客户机中访问NFS共享资源

NFS 协议的目标是提供一种网络文件系统,因此对 NFS 共享的访问也使用 mount 命令来进行挂载,对应的文件系统类型为 nfs。既可以手动挂载,也可以加入 /etc/fstab 配置文件来实现开机自动挂载。考虑到群集系统中的网络稳定性,NFS 服务器与客户机之间最好使用专有网络进行连接。

(1)安装软件包

若要正常访问 NFS 共享资源,客户机中也需要安装 rpcbind 软件包,并启动 rpcbind 系统服务。另外,为了使用 showmount 查询工具,建议将 nfs - utils 软件包也一并装上。

systemctl stop firewalld
setenforce 0		#关闭防火墙
yum  -y install nfs-utils rpcbind		#安装软件包

systemctl start rpcbind
systemctl start nfs

#测试访问连接
curl 172.16.16.172
ipvsadm -ln

(2)手动挂载NFS共享目录

以 root 用户身份执行 mount 操作,将 NFS 服务器共享的 /opt/wwwroot 目录挂载到本地目录 /var/www/html。

[root@localhost ~]# mount 192.168.10.104:/opt/wwwroot /var/www/html
[root@localhost ~]# tail -1 /etc/mtab  //确认挂载结果
192.168.10.104:/opt/wwwroot /var/www/html nfs4 rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.10.101,local_lock=none,addr=192.168.10.104 0 0
[root@localhost ~]# vi /var/www/html/index.html //在客户机创建测试文件
Real Web Server Document

(3)fstab自动挂载设置

修改 /etc/fstab 配置文件,加入 NFS 共享目录的挂载设置。注意将文件系统类型设为 nfs,挂载参数建议添加_netdev(设备需要网络)。

[root@localhost ~]# vi /etc/fstab
……//省略部分信息
192.168.10.104:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0

二:案例:地址转换模式(LVS-NAT)

1:准备案例环境

实验案例环境
主机操作系统ip地址应用
LVSopenEuler 24.03

外网:172.16.16.172

内网:192.168.10.101

Ipvsadm
web1openEuler 24.03192.168.10.102Apache,nfs,bind-utils
web2openEuler 24.03192.168.10.103Apache,nfs,bind-utils
nfsopenEuler 24.03192.168.10.104nfs,bind-utils
客户机windows10172.16.16.100       ----------

2:配置负载调度器

(1)开启路由转发规则

#修改内核配置文件
vim /etc/sysctl.conf
修改:net.ipv4.ip_forward=1
sysctl -p

(2)添加网卡,仅主机模式,作为vip

#调度器关机,并添加网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36
修改:IPADDR=172.16.16.172,网卡名
注释网关,dns1=114.114.114.114
(其他不变)
重启网卡:nmcli c reload
		 nmcli c up ens36

(3)配置负载分配策略

#创建虚拟服务器(集群)
ipvsadm -A -t 172.16.16.172:80 -s wrr
	-A:添加一个虚拟服务器(集群地址)
	-t 172.16.16.172:群集地址
	-s:算法
	wrr:加权轮询
ipvsadm -a -t 172.16.16.172:80 -r 	192.168.10.202:80 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 	192.168.10.203:80 -m -w 1
	-r:真实的服务器地址
	-m:nat模式(地址伪装)
	-w:权重
查看状态:ipvsadm-save 
	       	 ipvsadm -ln

3:配置节点服务器

(1)修改网关

#修改网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改网关:192.168.10.201( 201(调度器))
重启网卡:nmcli c reload
		 nmcli c up ens33

(2)安装httpd,创建测试网页

systemctl stop firewalld
setenforce 0		#关闭防火墙
dnf -y install httpd		#安装网站
systemctl start httpd		#开启服务

挂载:mount 192.168.10.204:/opt/wwwroot /var/www/html
确认挂载:tail -l /etc/mtab

vim /var/www/html/index.html

(3)启用httpd服务程序

#启动服务
systemctl start rpcbind
systemctl start nfs
netstat -anpt | grep rpc

4:测试LVS群集

#测试访问连接
curl 172.16.16.172
ipvsadm -ln         #查看状态
ipvsadm -lnc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值