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高可用
相关推荐
码上淘金3 小时前
【Python】Python常用控制结构详解:条件判断、遍历与循环控制
开发语言·python
Brilliant Nemo3 小时前
四、SpringMVC实战:构建高效表述层框架
开发语言·python
皓月盈江4 小时前
Linux电脑本机使用小皮面板集成环境开发调试WEB项目
linux·php·web开发·phpstudy·小皮面板·集成环境·www.xp.cn
格林威5 小时前
Baumer工业相机堡盟工业相机的工业视觉中为什么偏爱“黑白相机”
开发语言·c++·人工智能·数码相机·计算机视觉
橙子199110165 小时前
在 Kotlin 中什么是委托属性,简要说说其使用场景和原理
android·开发语言·kotlin
androidwork5 小时前
Kotlin Android LeakCanary内存泄漏检测实战
android·开发语言·kotlin
学地理的小胖砸6 小时前
【Python 基础语法】
开发语言·python
DanB247 小时前
Java笔记4
java·开发语言·笔记
Dddle17 小时前
C++:this指针
java·c语言·开发语言·c++
studyer_domi7 小时前
Matlab 234-锂电池充放电仿真
开发语言·matlab