LVS简介及LVS-NAT负载均衡群集的搭建

目录

LVS群集简介

群集的含义和应用场景

性能扩展方式

群集的分类

负载均衡(LB)

高可用(HA)

高性能运算(HPC)

LVS的三种工作模式

NAT 地址转换

TUN IP隧道   IP Tunnel

DR 直接路由  Direct Routing

LVS调度算法

负载均衡结构

部署实例

实验流程

实验准备

实验步骤

 部署共享存储(NFS服务器:192.168.75.70)

配置节点服务器(192.168.75.50、192.168.75.60)

 配置负载调度器(内网关 ens33:192.168.75.30,外网关 ens36:12.0.0.1)

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

 实验效果测试


LVS群集简介

群集的含义和应用场景

群集是为解决某个特定问题将多台计算机组合起来形成的单个系统,由多台主机构成,但对外只表现为一个整体,相当于一台大型计算机提供服务。

互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求,所有产生了LVS群集技术提供稳定高效服务。

性能扩展方式

  • 纵向扩展——对服务器的CPU、内存、硬盘等硬件进行升级或者扩容来实现,但存在性能上限会有瓶颈,成本昂贵,收效比不高等问题。
  • 横向扩展——通过增加服务器主机数量来应该高并发的场景。

群集的分类

负载均衡(LB)

提高应用系统的响应效率,处理更多的访问请求,减少延迟,提高并发和负载能力

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

高可用(HA)

提高应用系统的可靠性,减少服务中断时间,确保服务的连续性

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

高性能运算(HPC)

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

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

LVS的三种工作模式

NAT 地址转换

调度器会作为所有节点服务器的默认网关,也是客户端的访问入口和节点服务器返回响应消息的出口,所以调度器会承载双向流量的负载压力,可能会为整个群集的性能瓶颈。由于节点服务器都会处于内网环境,使用私网IP,所以具有一点的安全行。

TUN IP隧道   IP Tunnel

调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调度器。但是由于节点服务器需要部署在不同的公网环境,所以要有独立的公网IP,而且调度器与节点服务器是通过专用的IP隧道实现相互通信,因此IP隧道模式的成本较高、安全性较低,且数据IP隧道传输的过程中需要额外的封装和解封装,性能也会受到一定的影响。
 

DR 直接路由  Direct Routing

调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调度器。(与NAT模式的区别)
节点服务器与调度器是部署在同一个物理网络里,因此不需要建议专用的IP隧道。(与IP隧道模式的区别)
DR模式是企业首选的LVS模式。

LVS调度算法

  •  rr(轮询):将请求依次分配给不同的RS节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
  • wrr(加权轮询):依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
  • sh(源地址哈希):以源地址为关键字查找一个静态hash表来获得需要的RS。
  • dh(目的地址哈希):以目的地址为关键字查找一个静态hash表来获得所需RS。
  •  lc(最小连接):IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
  • wlc(加权最小连接):优先分配请求给 <连接数>/<权重值> 的值最小的节点服务器
  • lblc(基于地址的最小连接):优先根据目的地址哈希将请求分配给同一个节点服务器,若此节点服务器满负荷了则优先将请求分配当前连接数最小的节点服务器

负载均衡结构

  • 第一层,负载调度器(Load Balancer或Director)访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP地址,也称为群集IP 地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。
  • 第二层,服务器池(Server Pool)群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址 (真实IP) ,只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。
  • 第三层,共享存储 (Share Storage为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性共享存储可以使用 NAS设备,或者提供 NFS共享服务的专用服务器。

    

部署实例

实验流程

  1. 部署NFS共享存储
  2. 部署Web节点服务器,注意:节点服务器的默认网关要指向调度器的内网IP,测试的时候可关闭连接保持
  3. 部署调度器,配置双网卡,开启IP路由转发功能,如果内网中的节点服务器需要访问外网则要配置SNAT规则,安装ipvsadm工具,添加虚拟服务器和真实服务器的相关配置,使用-m选项选择NAT模式
  4. 客户端设置默认网关指向调度器的外网IP,并使用客户端工具测试
     

实验准备

负载调度器:内网关 ens33:192.168.75.30,外网关 ens36:12.0.0.1
Web节点服务器1:192.168.75.50
Web节点服务器2:192.168.75.60
NFS服务器:192.168.75.70
客户端:12.0.0.66

实验步骤

 部署共享存储(NFS服务器:192.168.75.70)

关闭防火墙,安全机制
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
下载nfs,rpcbind服务,并开启
yum install nfs-utils rpcbind -y
systemctl start rpcbind.service
systemctl start nfs.service
创建要共享出去的目录
mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet
将目录共享
vim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 192.168.75.0/24(rw,sync)
/opt/benet 192.168.75.0/24(rw,sync)
发布共享
exportfs -rv
查看共享
showmount -e

共享成功

进到配置文件写入网页内容

/opt/kgc

 

/opt/benet

配置节点服务器(192.168.75.50、192.168.75.60)

在两台节点服务器下

关闭防火墙,安全机制
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
下载httpd,rpcbind,nfs服务,并开启
yum install httpd -y
systemctl start httpd.service
yum install nfs-utils rpcbind -y
systemctl start rpcbind

查看70主机是否共享出来了

 

第一台节点服务器(192.168.75.50)配置

 永久挂载目录

vim /etc/fstab
192.168.75.50:/opt/kgc		/var/www/html	nfs		defaults,_netdev	0  0

 第二台节点服务器(192.168.75.60)配置

 永久挂载目录

vim /etc/fstab
192.168.75.60:/opt/benet		/var/www/html	nfs		defaults,_netdev	0  0

 配置负载调度器(内网关 ens33:192.168.75.30,外网关 ens36:12.0.0.1)

多网卡配置

ens33网卡的配置

ens36网卡的配置

 配置SNAT转发规则

在配置文件中添加
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
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

 加载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

 安装ipvsadm 管理工具

yum -y install ipvsadm--启动服务前须保存负载分配策略---
ipvsadm-save > /etc/sysconfig/ipvsadm
或者 ipvsadm --save > /etc/sysconfig/ipvsadmsystemctl start ipvsadm.service

注:ipvsadm管理工具的选项

   

配置负载分配策略(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.75.50:80 -m [-w 1]
ipvsadm -a -t 12.0.0.1:80 -r 192.168.75.60:80 -m [-w 1]
ipvsadm						#启用策略ipvsadm -ln					#查看节点状态,Masq代表 NAT模式
ipvsadm-save > /opt/ipvsadm						#保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm注:ipvsadm -d -t 12.0.0.1:80 -r 192.168.80.11:80				#删除群集中某一节点服务器
ipvsadm -D -t 12.0.0.1:80									#删除整个虚拟服务器
systemctl stop ipvsadm										#停止服务(清空策略),如果selinux没关闭/etc/sysconfig/ipvsadm内容也会清空
systemctl start ipvsadm										#启动服务(根据/etc/sysconfig/ipvsadm恢复策略)
ipvsadm-restore < /opt/ipvsadm					            #恢复LVS 策略

 实验效果测试

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

打开一台虚拟windows系统,进行配置

在网页搜索

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/220706.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xpath注入

这里学习一下xpath注入 xpath其实是前端匹配树的内容 爬虫用的挺多的 XPATH注入学习 - 先知社区 查询简单xpath注入 index.php <?php if(file_exists(t3stt3st.xml)) { $xml simplexml_load_file(t3stt3st.xml); $user$_GET[user]; $query"user/username[name&q…

SLAM学习——相机模型(针孔+鱼眼)

针孔相机模型 针孔相机模型是很常用&#xff0c;而且有效的模型&#xff0c;它描述了一束光线通过针孔之后&#xff0c;在针孔背面投影成像的关系&#xff0c;基于针孔的投影过程可以通过针孔和畸变两个模型来描述。 模型中有四个坐标系&#xff0c;分别为world&#xff0c;c…

机器学习 | SVM支持向量机

欲穷千里目&#xff0c;更上一层楼。 一个空间的混乱在更高维度的空间往往意味着秩序。 Machine-Learning: 《机器学习必修课&#xff1a;经典算法与Python实战》配套代码 - Gitee.com 1、核心思想及原理 针对线性模型中分类两类点的直线如何确定。这是一个ill-posed problem。…

Unity中URP下的菲涅尔效果实现(个性化修改)

文章目录 前言一、我们修正一下上篇文章中&#xff0c;可能遗留的Bug1、N向量 变为 单位向量2、使颜色范围在合理区间 二、实现菲涅尔效果强弱可自定义调节三、修改菲涅尔效果颜色1、在属性面板定义颜色属性2、在常量缓冲区申明该参数3、在片元着色器中&#xff0c;用颜色和菲涅…

使用 React 实现自定义数据展示日历组件

目录 背景实现日历组件父组件数据 效果最后 背景 项目中需要实现一个日历组件&#xff0c;并且需要展示月&#xff0c;日所对应的数据&#xff08;因为项目需求问题&#xff0c;就不统计年数据总量&#xff09;。网上找了一堆&#xff0c;基本都不大符合项目需求&#xff0c;且…

Java 基础学习(十一)File类与I/O操作

1 File类 1.1 File类概述 1.1.1 什么是File类 File是java.io包下作为文件和目录的类。File类定义了一些与平台无关的方法来操作文件&#xff0c;通过调用File类中的方法可以得到文件和目录的描述信息&#xff0c;包括名称、所在路径、读写性和长度等&#xff0c;还可以对文件…

计算机网络:物理层(编码与调制)

今天又学会了一个知识&#xff0c;加油&#xff01; 目录 一、基带信号与宽带信号 1、基带信号 2、宽带信号 3、选择 4、关系 二、数字数据编码为数字信号 1、非归零编码【NRZ】 2、曼彻斯特编码 3、差分曼彻斯特编码 4、归零编码【RZ】 5、反向不归零编码【NRZI】 …

Ubuntu安装ARM交叉编译器

Ubuntu安装交叉编译器 更新apt # 更新apt sudo apt update安装gcc sudo apt install build-essential查看gcc版本 gcc -v下载交叉编译工具 复制到用户目录 解压 tar -xvf gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz移动到/opt/下 sudo ./gcc-linaro-5.…

环境搭建及源码运行_java环境搭建_maven

书到用时方恨少、觉知此时要躬行&#xff1b;拥有技术&#xff0c;成就未来&#xff0c;抖音视频教学地址&#xff1a;​​​​​​​ ​​​​​​​ 1、介绍 1&#xff09;管理项目依赖和版本 统一的项目依赖和版本管理 ​​​​​​​​​​​ 2&#xff09;Maven支持多模块…

创建型设计模式 | 原型模式

一、原型模式 1、原理 原型模式&#xff0c;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象&#xff0c;而且不需要知道任何创建的细节。原型像是一个模板&#xff0c;可以基于它复制好多…

如何让.NET应用使用更大的内存

我一直在思考为何Redis这种应用就能独占那么大的内存空间而我开发的应用为何只有4GB大小左右&#xff0c;在此基础上也问了一些大佬&#xff0c;最终还是验证下自己的猜测。 操作系统限制 主要为32位操作系统和64位操作系统。 每个进程自身还分为了用户进程空间和内核进程空…

HarmonyOS NEXT:技术革新与生态挑战的交汇点

背景 在上周&#xff08;2023年12月11日&#xff09;我有幸参加了在上海举办的华为鸿蒙生态学堂创新实训营。 参加这个活动的原因是近期关于华为的HarmonyOS NEXT不再兼容Android的消息&#xff0c;也就是说我们的Apk无法在纯血版的HarmonyOS NEXT上运行。 随后就是一些头部的…

记一次挖矿脚本应急排查

这里写目录标题 起因上机排查总结 起因 这几天返校进行实习答辩&#xff0c;没怎么关注服务器状态&#xff0c;结果收到了阿里云警告&#xff0c;咱也不知道怎么个事&#xff0c;突然就被种上挖矿脚本了(盲猜自己搭建的一些docker服务被打了) 上机排查 top看一下系统系统资…

小红书可观测 Metrics 架构演进,如何实现数十倍性能提升?

在当前云原生时代&#xff0c;随着微服务架构的广泛应用&#xff0c;云原生可观测性概念被广泛讨论。可观测技术建设&#xff0c;将有助于跟踪、了解和诊断生产环境问题&#xff0c;辅助开发和运维人员快速发现、定位和解决问题&#xff0c;支撑风险追溯、经验沉淀、故障预警&a…

css的filter全属性介绍

原图&#xff1a; 模糊&#xff08;blur&#xff09; 单位可为px或rem&#xff0c;值越大&#xff0c;越模糊 filter:blur(3px) filter:blur(0.3rem) 亮度(brightness) 值可为数字或百分数&#xff0c;小于1时&#xff0c;亮度更暗&#xff1b;等于1时&#xff0c;无变化&am…

vp与vs联合开发-通过CogAcqFifoTool工具连接相机

1.完成相机硬件配置后 2.完成vp与vs联合开发配置功能后 1.创建winform 项目 目的 : 搭建 界面应用 2. 1. vpp文件存入 项目的debug 目录中 目的&#xff1a; 在项目中加载本地vpp文件 读取相机工具 1.控件CogRecordDisplay 用于显示相机拍摄照片和实施显示的窗口 2和3 …

【一】FPGA实现SPI协议之SPI协议介绍

【一】FPGA实现SPI协议之SPI协议介绍 一、spi协议解析 spi协议有4根线&#xff0c;主机输出从机输入MOSI、主机输入从机输出MISO、时钟信号SCLK、片选信号SS\CS 。 一般用于主机和从机之间通信。由主机发起读请求和写请求&#xff0c;主机的权限是主动的&#xff0c;从机是被…

计算机网络2

OSI参考模型七层&#xff1a; 1.应用层 2.表示层 3.会话层 4.传输层 5.网络层 6.数据链路层 7.物理层 TCP/IP模型 5层参考模型

统一大语言模型和知识图谱:如何解决医学大模型-问诊不充分、检查不准确、诊断不完整、治疗方案不全面?

统一大语言模型和知识图谱&#xff1a;如何解决医学大模型问诊不充分、检查不准确、诊断不完整、治疗方案不全面&#xff1f; 医学大模型问题如何使用知识图谱加强和补足专业能力&#xff1f;大模型结构知识图谱增强大模型的方法 医学大模型问题 问诊。偏离主诉和没抓住核心。…

scrapy的入门和使用

scrapy的入门使用 学习目标&#xff1a; 掌握 scrapy的安装应用 创建scrapy的项目应用 创建scrapy爬虫应用 运行scrapy爬虫应用 scrapy定位以及提取数据或属性值的方法掌握 response响应对象的常用属性 1 安装scrapy 命令:     sudo apt-get install scrapy 或者&#x…