CentOS 7 搭建 NFS Server 服务端 + 客户端 完整一键配置

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

CentOS 7 搭建 NFS Server 服务端 + 客户端 完整一键配置

全程可直接复制执行,含权限、防火墙、开机自启、fstab 永久挂载、优化参数。

一、环境说明

  • 服务端(NAS/存储):192.168.1.10
  • 客户端(Docker宿主机):192.168.1.20
  • 系统:CentOS 7

一、NFS 服务端配置(Server)

1. 安装依赖

yum install -y nfs-utils rpcbind

2. 创建共享目录

mkdir -p /data/nfs-share
chmod 755 /data/nfs-share
# 权限放开,避免容器权限报错
chown nfsnobody:nfsnobody /data/nfs-share

3. 配置共享文件 /etc/exports

vi /etc/exports

写入内容:

/data/nfs-share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)

参数说明:

  • rw:读写权限
  • sync:同步写入(数据安全),追求性能可改为 async
  • no_root_squash:客户端root保持权限(Docker必备)
  • 192.168.1.0/24:允许整个网段访问,按需缩小范围

4. 启动&开机自启

systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs

5. 放行防火墙

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload

6. 验证服务端配置

# 查看共享
exportfs -rav
# 查看可挂载列表
showmount -e localhost

二、NFS 客户端配置(Docker 宿主机)

1. 安装客户端工具

yum install -y nfs-utils

2. 测试连通性

# 查看服务端共享目录
showmount -e 192.168.1.10

正常输出:

/data/nfs-share 192.168.1.0/24

3. 创建本地挂载目录

mkdir -p /data/nas-docker

4. 临时挂载(带性能优化参数)

mount -t nfs \
-o rsize=1048576,wsize=1048576,async,hard,_netdev,noatime \
192.168.1.10:/data/nfs-share /data/nas-docker

5. 永久挂载 /etc/fstab(开机自动挂载)

vi /etc/fstab

添加一行:

192.168.1.10:/data/nfs-share  /data/nas-docker  nfs  rsize=1048576,wsize=1048576,async,hard,_netdev,noatime  0  0

生效测试:

mount -a
df -h

三、Docker 直接使用 NFS 两种方式

方式1:宿主机挂载目录 + bind 挂载(稳定推荐)

version: '3.8'
services:
  test-nfs:
    image: nginx
    volumes:
      - /data/nas-docker:/html

方式2:Docker 原生 NFS 卷(无本地挂载目录)

version: '3.8'
services:
  app-nfs:
    image: nginx
    volumes:
      - nfs-data:/html
volumes:
  nfs-data:
    driver: local
    driver_opts:
      type: nfs
      o: addr=192.168.1.10,rsize=1048576,wsize=1048576,async,hard,noatime
      device: ":/data/nfs-share"

四、常用排错命令

# 卸载NFS
umount /data/nas-docker

# 强制卸载(卡死时)
umount -f /data/nas-docker

# 查看挂载参数
mount | grep nfs

# 重启nfs服务端
systemctl restart nfs rpcbind

五、关键注意事项

  1. 数据库、Redis、MQ 禁止挂载 NFS,IO延迟、锁冲突、丢数据风险极高。
  2. 追求性能:用 async;追求数据绝对安全:改为 sync
  3. 权限报错:服务端共享参数加 no_root_squash,客户端不用改权限。
  4. 网络不稳定:保留 hard,_netdev,防止挂载卡死系统。

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值