当前位置: 首页 > news >正文

集群与存储-lvs-nat实验

一、实验目的

1、熟练掌握ipvsadm 指令的使用

2、理解lvs 负载均衡的原理

3. 熟练掌握lvs-net+nfs的配置

二、实验内容

1.拓扑图

2.实验步骤

#在节点服务器中添加网卡,选择仅主机模式

#查看网卡

#启用网卡

nmcli device up ens224
ip a

#修改虚拟地址的网关

#节点服务器ens160的网关是该节点服务器ens224的ip(192.168.112.128)

#nfs服务器ens160的网关是节点服务器ens160的ip(192.168.157.129)

节点服务器:

nfs服务器:

#以下在节点服务器和nfs服务器共同进行,此处以节点服务器为例

#关闭防火墙及selinux

systemctl stop firewalld && systemctl disable firewalld
vim /etc/sysconfig/selinux
reboot

#下载 nginx,ipvsadm,rpcbind,nfs-utils

yum -y install nginx ipvsadm rpcbind nfs-utils

#启动三个服务

systemctl start nginx
systemctl status nginx
systemctl start rpcbind
systemctl status rpcbind
systemctl start nfs-server.service
systemctl status nfs-server.service

#加载并查看 ip_vs 模块

modprobe ip_vs
cat /proc/net/ip_vs

#下载ipvsadm 管理工具

yum -y install ipvsadm
ipvsadm -v

#开启路由转发规则

vim /etc/sysctl.conf
添加net.ipv4.ip_forward = 1
sysctl -p

#此下部分只在节点服务器中进行

#配置负载分配策略并且保存

ipvsadm -C
ipvsadm -A -t 192.168.112.128:80 -s rr
ipvsadm -a -t 192.168.112.128:80 -r 192.168.157.129:80 -m -w 1
ipvsadm -a -t 192.168.112.128:80 -r 192.168.157.130:80 -m -w 1
ipvsadm --save
ipvsadm --save >/etc/sysconfig/ipvsadm

#查看其状态

ipvsadm -ln

#在节点服务器和nfs服务器中进行

#在节点服务器中写入节点服务器的ip

#在nfs服务器中写入nfs服务器的IP

cd /usr/share/nginx/html
echo “192.168.157.129” > index.html
echo “192.168.157.130” > index.html

3.验证轮训

#在节点服务器中验证轮询

#访问节点服务器的ens224的IP,端口为80

curl 192.168.112.128:80

4.验证共享存储

#NFS 共享存储服务器(192.168.157.130)

#编辑vi /etc/exports

#共享/usr/share/nginx/html文件

#网段192.168.157.0/24

#可读写权限(rw,sync,no_root_squash)

#保存退出后重新启动 rpcbind和nfs

#以下在nfs服务器中进行

Vim /etc/exports
/usr/share/nginx/html 192.168.157.0/24(rw,sync,no_root_squash)

#查看nsf服务器(192.168.157.130)发布的NFS共享文件

#在节点服务器(192.168.157.129)中查询

showmount -e 192.168.157.130

#在节点服务器中手动挂载共享目录

mkdir /zyz #创建目录,目录名称可自行决定

mount -t nfs 192.168.157.130:/usr/share/nginx/html /zyz

#修改节点服务器的nginx配置文件

vim /etc/nginx/nginx.conf

#注释之前的挂载点

#       root         /usr/share/nginx/html;root         /zyz;

三、实验结果

#在节点服务器中

#创建测试文件test.html,内容自定义

cd /zyz
vim test.html

#给目录,文件添加权限并且重启nginx

chmod -R a+rx /zyz
chmod a+r /zyz/test.html
chown root:nginx /zyz/test.html 
systemctl restart rpcbind
systemctl restart nfs-server.service
systemctl restart nginx

#查看各服务状态

#验证轮询测试

四、实验结论

1.LVS(Linux Virtual Server)是一种基于Linux操作系统的高性能、高可用的虚拟服务器技术,用于实现负载均衡。它通过将客户端的请求分发到多台后端服务器上,提高整体服务的处理能力和可靠性。

LVS的核心概念

2.负载均衡器(Load Balancer):是整个集群对外提供服务的入口,通过对外提供一个虚拟IP(VIP)来接收客户端请求。根据设定的调度算法和规则,将请求转发到后端真实服务器上。

3.后端服务器(Real Server):是实际处理客户端请求的真实服务器,可以是一台或多台。后端服务器通过局域网或广域网与负载均衡器相连。

4.虚拟IP(VIP):是客户端访问的IP地址,对客户端是透明的。负载均衡器通过VIP接收客户端请求,并将其转发到后端服务器上。

LVS的调度算法

LVS支持多种调度算法,以根据实际需求将请求分发到后端服务器上。常用的调度算法包括:

轮询:

按顺序依次将请求分发到后端服务器上,实现均衡负载。

加权轮询:

根据后端服务器的处理能力,为其分配不同的权重,权重越高的服务器处理的请求越多。

最少连接:

将请求分发到当前连接数最少的服务器上,以实现负载均衡。

加权最少连接:

在最少连接的基础上,考虑后端服务器的权重,将请求分发到加权连接数最少的服务器上。

LVS-NET(也称为Direct Routing,DR)模式是LVS的一种工作模式,它通过修改请求报文的MAC地址,将请求直接转发到后端真实服务器。在这种模式下,真实服务器处理完请求后,直接将响应返回给客户端,无需经过负载均衡器,从而提高了响应速度和吞吐量。

LVS-NET模式的优点包括:

高效性:避免了负载均衡器成为瓶颈,提高了整体性能。

可扩展性:支持大规模集群部署,易于扩展。

低延迟:响应速度快,适用于对延迟敏感的应用。

NFS是一种分布式文件系统协议,允许网络中的计算机共享文件和目录。在LVS集群中,使用NFS共享存储可以确保后端真实服务器之间的数据一致性,避免了因本地存储导致的静态资源不一致现象。

NFS共享存储的优点包括:

数据一致性:确保所有服务器访问的是同一份数据。

高可用性:通过配置NFS高可用,可以提高数据访问的可靠性。

易于管理:集中管理存储资源,简化了运维工作。

http://www.xdnf.cn/news/207955.html

相关文章:

  • 企业战略管理(设计与工程师类)-2-战略规划及管理过程-2-外部环境分析-PESTEL模型实践
  • 61.微服务保姆教程 (四) Gateway---SpringCloud微服务网关组件
  • flask中的Response 如何使用?
  • HRScene:首个覆盖多场景高分辨率图像理解的综合性基准数据集
  • deepseek_ai_ida_plugin开源插件,用于使用 DeepSeekAI 将函数反编译并重命名为人类可读的视图。该插件仅在 ida9 上进行了测试
  • 快速了解Go+rpc
  • Spark 配置 YARN 模式
  • 【安全扫描器原理】端口扫描
  • Python中的itertools模块常见函数用法示例
  • 多地部署Gerrit Replication插件同步异常解决思路及方案(附脚本与CronJob部署)
  • Cursor:AI时代的智能编辑器
  • LSTM预测模型
  • 前缀和 --- 二维前缀和
  • 基于PHP的宠物用品商城
  • RTDETRv2 pytorch训练
  • 【3D 地图】无人机测绘制作 3D 地图流程 ( 无人机采集数据 | 地图原始数据处理原理 | 数据处理软件 | 无人机测绘完整解决方案 )
  • 什么是静态住宅ip,跨境电商为什么要用静态住宅ip
  • IP属地是实时位置还是自己设置
  • SRIO IP调试问题记录(ready信号不拉高情况)
  • CentOS上搭建 Python 运行环境并使用第三方库
  • 【运维】还原 Docker 启动命令的利器:runlike 与 docker-autocompose
  • 数据结构---单链表的增删查改
  • Uniapp:设置页面下拉刷新
  • 1.1 点云数据获取方式——引言
  • Weka通过10天的内存指标数据计算内存指标动态阈值
  • 判断子序列
  • 问答:C++如何通过自定义实现移动构造函数和移动赋值运算符来实现rust的唯一所有权?
  • AI Agent开源技术栈
  • RabbitMQ 启动报错 “crypto.app“ 的解决方法
  • 项目三 - 任务2:创建笔记本电脑类(一爹多叔)