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高可用
相关推荐
Matlab光学5 分钟前
MATLAB仿真:Ince-Gaussian光束和Ince-Gaussian矢量光束
开发语言·算法·matlab
珹洺25 分钟前
Java-servlet(十)使用过滤器,请求调度程序和Servlet线程(附带图谱表格更好对比理解)
java·开发语言·前端·hive·hadoop·servlet·html
勘察加熊人29 分钟前
c#使用forms实现helloworld和login登录
开发语言·c#
双叶8361 小时前
(C语言)学生信息表(学生管理系统)(基于通讯录改版)(正式版)(C语言项目)
c语言·开发语言·c++·算法·microsoft
IT从业者张某某1 小时前
Python数据可视化-第4章-图表样式的美化
开发语言·python·信息可视化
脑子慢且灵1 小时前
【蓝桥杯】 枚举和模拟练习题
java·开发语言·职场和发展·蓝桥杯·模拟·枚举
我不是程序猿儿2 小时前
【C#】设备回帧太快、数据没收完整就被读取,导致帧被拆、混、丢,很常见,尤其在高频通信设备,解决方案
开发语言·c#
小郝 小郝2 小时前
(C语言)指针运算 习题练习1.2(压轴难题)
java·开发语言·算法
秋风&萧瑟2 小时前
【QT】练习1
开发语言·qt·命令模式