ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

NFS共享存储

2026/8/14 1:38:05 拓冰建站 浏览量
NFS共享存储

NFS原理

1.用户进程访问NFS客户端,使用不同的函数对数据进行处理
2.NFS客户端通过TCP/IP的方式传递给NFS服务端。
3.NFS服务端接收到请求后,会先调用portmap进程进行端口映射。
4.nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。
5.Rpc.mount进程判断客户端是否有对应的权限进行验证。
6.idmap进程实现用户映射和压缩
7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。

环境准备

服务器系统角色外网ip内网ip
Centos7.9NFS服务器10.0.0.200172.16.1.200
Centos7.9web服务器10.0.0.7172.16.1.7

一、关闭防火墙

在NFS、web服务器都执行

关闭Firewalld systemctl stop firewalld systemctl disable firewalld 关闭selinux 修改 /etc/selinux/config 文件为SELINUX=disabled 临时修改: setenforce 0

二、安装NFS

在NFS、web都需要安装,web只需要安装,不需要启动

yum install -y nfs-utils

三、配置文件

在NFS服务器,配置文件

修改 /etc/exports 创建data共享目录 mkdir /data 修改目录权限 chown nfsnobody.nfsnobody /data 修改为:/data/ 172.16.1.0/24(rw,sync,all_squash) 参数说明: 允许172.16.1.0/24下的ip可以挂载 rw:读写 ro:只读 sync:同步写(安全)数据同步写入磁盘后才返回,安全、慢一点(生产推荐) async:异步(快)先放内存,异步刷盘,速度快,断电可能丢数据 root_squash:(默认)客户端 root → 服务端会被压缩成匿名用户 nfsnobody,没有 root 权限 no_root_squash:(NFS 必用!)客户端 root = 服务端 root,不压缩,读写权限完全正常 all_squash:所有客户端用户都压缩成匿名用户 anonuid=xxx 匿名用户映射为本地 UID anongid=xxx 匿名用户映射为本地 GID

四、启动服务

systemctl start nfs systemctl enable nfs

五、检查服务和新配置文件

cat /var/lib/nfs/etab netstat -nltp | grep nfs

六、web客户端挂载共享目录


检查共享

[root@web01~]#showmount -e 172.16.1.200 Export list for 172.16.1.200: /data 172.16.1.0/24

挂载

mount -t nfs 172.168.1.200:/data /nfsdir 生产环境挂载 mount ‐t nfs ‐o nosuid,noexec,nodev 172.16.1.200:/data /nfsdir 防止提权、防止执行恶意程序、防止滥用设备文件。

写入开机自启挂载目录中