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高可用
相关推荐
欧阳x天几秒前
STL详解(九)—— stack和queue的模拟实现
开发语言·c++
xqqxqxxq1 分钟前
洛谷算法1-1 模拟与高精度(NOIP经典真题解析)java(持续更新)
java·开发语言·算法
沐知全栈开发7 分钟前
Rust 函数
开发语言
zhougl99634 分钟前
Java 枚举类(enum)详解
java·开发语言·python
yong999036 分钟前
基于势能原理的圆柱齿轮啮合刚度计算MATLAB程序实现
开发语言·matlab
lsx2024061 小时前
R 数组:深入探索与高效使用
开发语言
星火开发设计1 小时前
格式化输入输出:控制输出精度与对齐方式
开发语言·c++·学习·算法·函数·知识
1104.北光c°1 小时前
【黑马点评项目笔记 | 登录篇】Redis实现共享Session登录
java·开发语言·数据库·redis·笔记·spring·java-ee
zmzb01031 小时前
C++课后习题训练记录Day91
开发语言·c++
我要打打代码1 小时前
关于C#线程 任务
开发语言·数据库·c#