1、yum安装nfs(服务端)
yum -y install nfs-utils
#启动rpcbind服务
systemctl start rpcbind
#将rpcbind设置为开机启动
systemctl enable rpcbin
#启动nfs
systemctl start nfs
# 将nfs设置为开机启动
systemctl start nfs
2、在nfs服务器上创建需要共享的目录,比如/opt/project/nfs
#创建共享目录
mkdir -P /opt/project/nfs
#修改服务端配置文件/etc/exports
vim /etc/exports
#在/etc/exports文件中增加,*代表任意网段,后边的权限参考下边的表
/opt/project/nfs *(rw,no_root_squash,sync)
参数值 | 内容说明 |
---|---|
rw ro | 该目录分享的权限是rw可擦写 (read-write) 或ro只读 (read-only),但最终能不能读写,还是与文件系统的 rwx及身份有关 |
sync async | sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘 |
no_root_squash root_squash | 客户端使用 NFS 文件系统的账号若为 root 时,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody,如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行 |
all_squash | 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) |
anonuid anongid | anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!anonuid 指的是 UID 而 anongid 则是群组的 GID |
重启服务
systemctl restart rpcbind
systemctl restart nfs
#防火墙放行
firewall-cmd --add-service=nfs --permanent
firewall-cmd --reload
客户端安装(使用)
yum -y install nfs-utils
客户端挂载
# -o soft 代表软挂载,默认是硬挂载,硬挂载一旦主服务器挂了,容易导致客户端对应目录卡死, -t nfs 指定要挂载的设备上的文件系统类型
这里的-o soft 。默认值是hard,hard代表重复请求nfs服务器直到响应成功,soft代表再重复请求7000次(默认)之后得不到返回就中断,如果hard实际测试中会导致nfs共享目录无法进入
mount -t nfs -o soft 服务端的ip:/opt/project/nfs(服务端的目录) /opt/project/nfs(客户端的目录)
客户端检查挂载信息
df -TH