首页 > 其他分享 >LVS负载均衡群集

LVS负载均衡群集

时间:2024-10-08 17:22:07浏览次数:8  
标签:负载 LVS 群集 ipvsadm 192.168 服务器

目录

一、群集概述

二、群集的分类

1.负载均衡群集(Load Balance Cluster)

2.高可用群集(High Availability Cluster)

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

三、负载均衡的结构

四、LVS负载均衡群集工作模式

1.NAT 地址转换

2.TUN IP隧道

3.DR 直接路由

五、LVS虚拟服务器

1.LVS概述

2.LVS的负载调度算法

六、LVS部署示例

1.LVS - NAT模式部署


一、群集概述

在互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求。为了解决这个问题,可以使用多台服务器构建服务群集。

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

二、群集的分类

根据群集所针对的目标差异,可分为三种类型:

  • 负载均衡群集
  • 高可用群集
  • 高性能运算群集

1.负载均衡群集(Load Balance Cluster)

以提高应用系统的相应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能。

LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。例如“DNS轮询”、”反向代理”等。

2.高可用群集(High Availability Cluster)

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

HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线;主从则只有主节点在线,但在出现故障时从节点自动切换为主节点。例如“故障切换”、“双热备机”等。

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

以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型超级计算机的高性能运算(HPC)能力。

高性能依赖于“分布式运算”、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。例如“云计算”、“网络计算”等。

三、负载均衡的结构

第一层 - 负载调度器(Load Balancer 或 Director)

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

第二层 - 服务器池(Server Pool)

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

第三层 - 共享存储(Share Storage)

为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。

四、LVS负载均衡群集工作模式

LVS负载均衡群集的负载调度技术有三种工作模式:

  • 地址转换
  • IP隧道
  • 直连路由

1.NAT 地址转换

调度器会作为所有真实服务器的默认网关,即调度器是客户端的访问入口和真实服务器返回响应消息的出口,所以调度器会承载双向流量的负载压力,调度器服务器的性能可能会成为整个群集的性能瓶颈。

由于真实服务器都会处于内网环境并使用私网IP,所以NAT模式具有一定的安全性。

2.TUN IP隧道

调度器仅作为客户端的访问入口,真实服务器的响应消息是直接返回给客户端的,不需要经过调度器。

由于真实服务器需要部署在互联网环境中,所以需要有独立的公网IP。

调度器与真实服务器是通过专用的IP隧道相互通信的。

因此TUN模式的成本较高、网络安全的要求也会比较高,且数据在IP隧道传输的过程中需要额外的封包和解封包过程,传输性能会受到一定的影响。

3.DR 直接路由

调度器仅作为客户端的访问入口,真实服务器的响应消息是直接返回给客户端的,不需要经过调度器。

真实服务器与调度器是部署在同一个物理网络里,可以直接通过交换机通信,不需要专用的IP隧道传输。

DR模式是企业的首选LVS模式。

五、LVS虚拟服务器

1.LVS概述

LVS实际上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出一种高效的解决方案。

LVS现在已经成为Linux内核的一部分,默认编译为ip_vs模块,必要时能够自动调用。在CentOS7系统中,以下操作可以手动加载ip_vs模块,并查看当前系统中的ip_vs模块的版本信息。

[root@wzx opt]# modprobe ip_vs
[root@wzx opt]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

2.LVS的负载调度算法

轮询(Rouond Robin)

将收到的访问请求按照顺序轮流分配给集群中的各节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载。

加权轮询(Weighted Round Robin)

根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务、分配的请求数更多。保证性能强的服务器承担更多的访问流量

最少连接(Least Connections)

根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。

加权最少连接(Weighted Least Connections)

在服务器的性能差异较大时,可以为真实服务器自动调整权重。性能较高的节点将承担更大比例的活动连接负载。

...

六、LVS部署示例

1.LVS - NAT模式部署

负载调度器:内网关 ens33:192.168.80.10,外网关 ens36:12.0.0.1
Web节点服务器1:192.168.80.100
Web节点服务器2:192.168.80.101
NFS服务器:192.168.80.13
客户端:12.0.0.12

1.部署NFS共享存储(NFS服务器:192.168.80.13)

yum install nfs-utils rpcbind -y
systemctl start rpcbind.service
systemctl start nfs.service

systemctl enable nfs.service
systemctl enable rpcbind.service

mkdir /opt/xy101 /opt/xy102
chmod 777 /opt/bi01 /opt/bi02
echo 'this is bi01 web!' > /opt/bi01/index.html
echo 'this is bi02 web!' > /opt/bi02/index.html

vim /etc/exports
......
/usr/share *(ro,sync)
/opt/bi01 192.168.80.0/24(rw,sync)
/opt/bi02 192.168.80.0/24(rw,sync)

exportfs -rv

2.部署Nginx节点服务器。

注意:节点服务器的默认网关要指向调度器的网卡地址,测试时可关闭长连接

yum install httpd -y
systemctl enable httpd.service --now

yum install nfs-utils rpcbind -y
showmount -e 192.168.80.13

systemctl start rpcbind
systemctl enable rpcbind

--192.168.80.100---
mount.nfs 192.168.80.13:/opt/bi01 /var/www/html

vim /etc/fstab
192.168.80.13:/opt/bi01		/var/www/html	nfs		defaults,_netdev	0  0

--192.168.80.101---
mount.nfs 192.168.80.13:/opt/bi02 /var/www/html
echo 'this is bi02 web!' > /var/www/html/index.html

vim /etc/fstab
192.168.80.13:/opt/bi02	/var/www/html	nfs 	defaults,_netdev	0  0

3.配置负载调度器

内网关 ens33:192.168.80.10,外网关 ens36:12.0.0.1

(1)配置SNAT转发规则

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#或 echo '1' > /proc/sys/net/ipv4/ip_forward

sysctl -p

iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens36 -j SNAT --to-source 12.0.0.1

(2)加载LVS内核模块

modprobe ip_vs    #加载 ip_vs模块
cat /proc/net/ip_vs    #查看 ip_vs版本信息

for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

(3)安装ipvsadm 管理工具

yum -y install ipvsadm

--启动服务前须保存负载分配策略---
ipvsadm-save > /etc/sysconfig/ipvsadm
或者 ipvsadm --save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

(4)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)

ipvsadm -C    #清除原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr [-p 60]
ipvsadm -a -t 12.0.0.1:80 -r 192.168.80.11:80 -m [-w 1]
ipvsadm -a -t 12.0.0.1:80 -r 192.168.80.12:80 -m [-w 1]
ipvsadm    #启用策略

ipvsadm -ln    #查看节点状态,Masq代表 NAT模式
ipvsadm-save -n > /opt/ipvsadm    #保存策略
----------------------------------------------------------------------------------------------------------
ipvsadm -d -t 12.0.0.1:80 -r 192.168.80.11:80    #删除群集中某一节点服务器
ipvsadm -D -t 12.0.0.1:80    #删除整个虚拟服务器
ipvsadm-restore < /opt/ipvsadm    #恢复LVS 策略

4.测试效果

在一台IP为12.0.0.12的客户机使用浏览器访问 http://12.0.0.1/ ,不断刷新浏览器测试负载均衡效果,刷新间隔需长点(或者关闭Web服务的连接保持)。

标签:负载,LVS,群集,ipvsadm,192.168,服务器
From: https://blog.csdn.net/2401_85983616/article/details/142637842

相关文章

  • F5负载均衡系列教程九【F5日志存放目录】
     参考F5的官方文档,F5的目录存放地址如下表所示TypeDescriptionLogfileauditTheauditeventmessagesaremessagesthattheBIG-IPsystemlogsasaresultofchangestotheBIG-IPsystemconfiguration.Loggingauditeventsisoptional./var......
  • F5负载均衡系列教程七【F5高可用相关知识】
    一、failover相关知识点1、networkfailover和hardwiredfailover的区别hardwiredfailover只能用于active/standby架构,无法用于active/active架构和viprion或者F5的虚拟机中,因为这个是需要用硬件线路连接两台F5设备;networkfailover可以用于各类2台设备以上的F5双机部署中;F......
  • SpringCloud入门(四)Ribbon负载均衡
    一、Ribbon负载均衡原理SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。  SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。如下图:  基本流程如下:-拦截我们的RestTemplate请求http://userservi......
  • LVS
    简介LVS(LinuxVirtualServer)是一个用于实现负载均衡的开源项目,它是Linux内核级别的负载均衡解决方案,属于四层负载均衡(传输层,主要是基于IP和端口进行流量分发)。LVS是Linux高可用性和集群系统的核心组件之一,广泛用于高并发、高可用的互联网服务中。LVS的核心概念和特点......
  • LVS与nginx的区别
    LVS(LinuxVirtualServer)和Nginx都可以作为负载均衡器使用,它们在实现负载均衡的方式、工作层次以及适用场景上有显著的区别。下面从相同点和不同点两方面分析它们的区别。一、相同点负载均衡功能:LVS和Nginx都能够实现负载均衡功能,将客户端请求分发给多台后端服务器,从而......
  • 05-LoadBalancer负载均衡
    1.Ribbon目前也进入维护模式1.1Ribbon介绍SpringCloudRibbon是基于NetflixRibbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简......
  • NAT模式 LVS负载均衡群集部署
    目录NAT模式LVS负载均衡群集部署1.关闭所有虚拟机的防火墙和核心防护2.部署共享存储nfs(ip:192.168.110.20)3.配置nginx节点服务器(192.168.110.70,192.168.110.80)4.配置tomcat节点服务器(192.168.110.50,192.168.110.60)4.配置负载调度器(内网关ens33:192.168.110.10,外网关ens......
  • 负载箱:充电桩测试利器
    RCD负载箱是用于测试和验证电气设备在故障状态下的性能的设备。它可以模拟真实的负载情况,从而帮助工程师和技术人员对设备进行准确的检测和维护。此外,RCD负载箱也是一种重要的安全保护设备,主要用于防止电路中的漏电现象引发的事故。它通常被安装在电路的起始位置,作为主断路器或分......
  • 返利机器人在电商返利系统中的负载均衡实现
    返利机器人在电商返利系统中的负载均衡实现大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来聊一聊如何在电商返利系统中实现返利机器人的负载均衡,尤其是在面对高并发和大量数据处理场景时,如何通过合理的架构设计确保系统的高可用性与......
  • 负载均衡--相关面试题(六)
    在负载均衡的面试中,可能会遇到一系列涉及概念、原理、实践应用以及技术细节的问题。以下是一些常见的负载均衡面试题及其详细解答:一、什么是负载均衡?回答:负载均衡是一种将网络请求或数据传输工作分配给多个服务器或网络资源的技术,旨在优化资源使用、提高吞吐量、减少响应时......