lvs-net+nfs的配置

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

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

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

javascript 复制代码
[客户端]
  |
[LVS负载均衡器] (10.0.0.10/24) - VIP: 10.0.0.100/24
  |_________________________________________|
    |                               |
[Web节点1] (10.0.0.11/24)   [Web节点2] (10.0.0.12/24)

(一)实验步骤

以下是基于三台主机的详细LVS配置方案,假设网络环境如下:

LVS负载均衡器:10.0.0.10

真实服务器1:10.0.0.11

真实服务器2:10.0.0.12

虚拟IP(VIP):10.0.0.100

1. 加载ip_vs模块,安装ipvsadm工具

  1. 1 加载ip_vs模块并安装工具

    加载ip_vs模块

    modprobe ip_vs
    lsmod | grep ip_vs
    yum install ipvsadm -y

  1. 2 配置虚拟IP

添加一张网卡,不用设置网关

10.0.0.15和10.0.0.16这两台主机的网关设置为10.0.0.14

  1. 3 网络验证命令(所以节点)

    ping 10.0.0.14/15/16
    ping 8.8.8.8(ping外网)

复制代码
15/16这两台主机无法ping通外网,就添加路由
ip route add default via 10.0.0.14

2. 开启路由准发

复制代码
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

3. 新建LVS虚拟服务器并添加节点服务器

复制代码
# 创建虚拟服务器 (这里以NAT模式为例,VIP: 192.168.1.100,端口80)
ipvsadm -A -t 192.168.1.100:80 -s rr

# 添加真实服务器节点 (假设有两个后端服务器192.168.1.101和192.168.1.102)
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -m
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -m
# 查看配置
ipvsadm -Ln


4. 配置节点服务器

  1. 1 建立测试网站

    yum install nginx -y
    systemctl start nginx
    systemctl enable nginx

编辑nginx所访问的的配置文件,添加如下内容:ley-0306为主机名

测试:

  1. 2挂载NFS共享存储

    安装NFS工具包

    yum install nfs-utils -y

    设置NFS服务开机自启

    systemctl enable nfs-server rpcbind

    创建共享目录并设置权限

    创建共享目录

    mkdir /gt

    修改目录权限(允许web用户访问,假设运行Nginx的用户为nginx)

    chown -R nginx:nginx /gt
    chmod -R 755 /gt

    配置NFS导出规则

    编辑exports文件

    vi /etc/exports

    添加以下内容(允许10.0.0.0/24网段读写访问)

    /gt 10.0.0.0/24(rw,sync,no_root_squash,no_subtree_check)

    启动服务并验证
    复制

    重新加载exports配置

    exportfs -r

    启动NFS服务

    systemctl start nfs-server rpcbind

    检查共享是否发布

    showmount -e localhost

复制代码
在15的机子上
安装NFS客户端工具
yum install nfs-utils -y
创建挂载点
mkdir -p /var/www/html/shared
临时挂载测试
mount -t nfs 10.0.0.14:/shared /var/www/html/shared

# 验证挂载
df -h | grep shared
  1. 3建立测试网页

    重新挂载所有fstab条目

    mount -a

    再次验证

    df -h | grep shared
    curl 10.0.0.100

5. 验证轮训

复制代码
for i in {1..6}; do curl http://10.0.0.100; done

6. 验证共享存储

在14主机上

touch /gt/testfile

ls -l /gt/

在testfile.html文件里添加内容

在15主机上,查看检查文件同步

编辑nginx配置文件,指向共享文件

在15主机上,访问测试查看,

(二)实验结论

  1. LVS负载均衡有效性
    成功实现了基于NAT模式的请求分发,验证了IPVS内核模块的高效性
    轮询(RR)算法确保了各后端服务器负载均衡
  2. NFS共享存储的必要性
    解决了多节点间数据一致性问题
    避免了因本地存储导致的静态资源不一致现象
  3. 关键配置要点
    LVS层:需确保 ip_forward=1 和正确的NAT规则
    NFS层:依赖准确的 /etc/exports 权限配置和防火墙放行
    后端服务器:需统一Web服务配置(全部使用Nginx或Apache)
  4. 生产环境建议
    使用DR模式替代NAT模式以提升性能
    为NFS配置冗余(如GlusterFS)避免单点故障
    增加Keepalived实现LVS高可用
相关推荐
大模型码小白35 分钟前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
段一凡-华北理工大学3 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
Ljwuhe3 小时前
C++——多态
开发语言·c++
心平气和量大福大3 小时前
C#-WPF-Window主窗体
开发语言·c#·wpf
从零开始的代码生活_5 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
云小逸5 小时前
【C++ 第七阶段:模板、泛型编程与工程综合详解】
开发语言·c++
GIS阵地6 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis
yaoxin5211236 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
groundhappy6 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
TlSfoward6 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php