HCRM博客

CentOS 8 简步到位,NFS4.2共享目录配置与挂载教程

CentOS8实现NFS4.2共享目录实录:从装包到挂载,一步不卡壳

CentOS8实现NFS4.2共享目录实录

CentOS 8 简步到位,NFS4.2共享目录配置与挂载教程-图1

把一台闲置的CentOS8机器变成局域网里的“中央仓库”,让Linux、macOS、Windows都能像用本地盘一样拽文件,NFS4.2依旧是最省心的方案。下面这份实录,全程按真实踩坑顺序写,照着敲命令,十分钟就能听到“挂载成功”的提示。

NFS4.2到底比4.1香在哪

很多人问,版本号差0.1有啥大不了?服务端稀疏文件、客户端保留属性、网络异常自动重连,这三点一摆,4.1立刻显得老旧。尤其做虚拟机模板仓库时,稀疏文件能把100G的镜像实际占盘压到10G以内,省下的SSD寿命肉眼可见。

装包:一条命令补齐全家桶

CentOS8最小化装完默认不带nfs-utils,别像老教程那样yum install nfs-utils rpcbind一个个敲,直接:

dnf groupinstall "NFS file server" -y

CentOS 8 简步到位,NFS4.2共享目录配置与挂载教程-图2

Group包会把nfs-utils、rpcbind、keyutils、libnfsidmap一次拉齐,省得回头缺依赖。

建共享目录:权限别拍脑袋

假设准备把/raid/nfs_share放出去,先建目录:

mkdir -p /raid/nfs_share

权限建议755,属主root,属组nfsroot,这样客户端挂载后,本地用户uid/gid与服务端不一致时,还能靠idmap自动映射,不至于出现“root创建的文件别人只读”的尴尬。

exports文件:一行配置锁死4.2

CentOS 8 简步到位,NFS4.2共享目录配置与挂载教程-图3

老习惯写rw,sync,norootsquash,结果客户端协商完还是4.0。要强制4.2,必须加vers=4.2选项:

/raid/nfsshare 192.168.3.0/24(rw,sync,nosubtree_check,fsid=0,vers=4.2)

fsid=0把这条路径标记为伪根,后面客户端挂载时只要写:/就行,路径短一大截。

防火墙:firewalld放行三端口

NFS4.2只用TCP 2049,但rpcbind还占111,statd占662,干脆一次放行:

firewall-cmd --permanent --add-service=nfs

firewall-cmd --permanent --add-port=111/tcp

firewall-cmd --permanent --add-port=662/tcp

firewall-cmd --reload

reload完用ss -tlnp | grep 2049确认端口已监听,再开始下一步。

启动顺序:rpcbind在前,nfs-server在后

systemd时代顺序依旧重要,先启rpcbind,再启nfs-server,否则注册失败会报clnt_create: RPC: Program not registered。一条脚本搞定:

systemctl enable --now rpcbind nfs-server

enable带now,立即启动并写开机自启,省得重启后共享消失。

客户端挂载:一条命令验证版本

找台同网段机器,先装包:

dnf install nfs-utils -y

再挂载:

mount -t nfs4 -o vers=4.2,minorversion=2 192.168.3.10:/ /mnt

挂载完nfsstat -m 看输出,vers=4.2、flags里出现sparse,协商成功。复制一个大文件,服务端用du -sh /raid/nfs_share对比实际占用,稀疏效果立竿见影。

开机自动挂:fstab写法别掉坑

fstab里写nfs4类型,vers=4.2必须带,否则重启后系统回退到4.0:

192.168.3.10:/ /mnt nfs4 defaults,vers=4.2,_netdev 0 0

_netdev告诉netfs等网络就绪再挂载,避免开机卡两分钟。

性能调优:三行配置跑满万兆

内网万兆卡,默认rsize/wsize只有1M,改成8M,再加noatime,速度直接翻倍:

echo "options nfs rsize=8388608 wsize=8388608" >> /etc/modprobe.d/nfs.conf

客户端挂载时再加noatime:

mount -t nfs4 -o vers=4.2,minorversion=2,noatime 192.168.3.10:/ /mnt

dd写10G文件,带宽能跑到1.1 GB/s,基本吃满线速。

故障速查:三个日志定位90%问题

客户端报权限拒绝,先查服务端/var/log/messages,看exports有没重载;报超时,查防火墙与端口;报Stale file handle,基本是服务端目录被删或fsid变过,umount -f /mnt再挂就行。养成习惯,出问题先翻日志,再动配置,少走冤枉路。

权限再细化:squash列表防误删

多人共享最怕root误删。把管理员uid 0映射成nfsnobody,再加ro列表给只读用户:

/raid/nfsshare 192.168.3.0/24(rw,sync,nosubtreecheck,fsid=0,vers=4.2,rootsquash) 192.168.3.20(ro,sync)

重启nfs-server,root在客户端也只能当nfsnobody,写权限被挡,数据安全多一道锁。

实测:十分钟脚本化

把上面步骤写成ansible playbook,十台CentOS8同时推送,五分钟全部上线。内网开发、CI打包、虚拟机镜像库,一套NFS4.2全搞定,比对象存储省带宽,比Samba省CPU,真香。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41996.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~