安装服务器

检查服务器是否安装nfs
rpm -q nfs-utils
查看安装包
rpm –qa |grep nfs


yum install nfs-utils   -y
#rpcbind  默认会安装 (portmap)
#启动rpcbind 
/etc/init.d/rpcbind start
#启动nfs
/etc/init.d/nfs start
或者
systemctl start nfs
systemctl enable nfs


创建共享目录
mkdir /NFSDir

id nfsnobody #nfs默认用户
chown nfsnobody:nfsnobody /NFSDir


#查看可用挂载列表
showmount -a

配置

  • vi /etc/exports
/NFSDir 10.3.60.0/24(rw,async,no_root_squash)

#示例(insecure支持使用1024以上的端口)
/soft/db 192.168.8.0/24(rw,sync,no_root_squash,insecure)
#使用*的时候会导致挂载失败
/NFSDir 10.3.60.*(rw,sync,no_root_squash)
  • 参数
rw 该主机对该共享目录有读写权限,ro只读
sync 所有数据在请求时写入 
async 资料会先暂存于内存中,而非直接写入硬盘
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_root_squash 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
root_squash 在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。
secure   NFS通过1024以下的安全TCP/IP端口发送  
insecure  NFS通过1024以上的端口发送  
wdelay   如果多个用户要写入NFS目录,则归组写入(默认)  
no_wdelay  如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。  
hide    在NFS共享目录中不共享其子目录  
no_hide   共享NFS目录的子目录  
subtree_check      如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check    和上面相对,不检查父目录权限  
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID  
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
  • 重启nfs
    systemctl restart nfs #service nfs restart
    systemctl restart rpcbind

安装客户端

yum install nfs-utils
#查看服务器的NFS共享目录
showmount -e 10.3.60.40
#挂载
sudo mount -t nfs 192.168.163.128:/NFSDir /NFSDir
#卸载挂载点
sudo umount /NFSdir
#强制卸载挂载点
sudo umount -lf /NFSDir
-l 不退出挂载点卸载
-f 强制卸载

#3.0挂载阿里云挂载参数
sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 192.168.1.5:/ /mnt

#使用NFS v4协议挂载文件系统:
sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 192.168.1.5:/ /mnt

#极速型NAS
sudo mount -t nfs -o vers=3,nolock,noacl,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 192.168.1.5:/ /mnt
  • 执行长时间没反应的话请关闭服务端的防火墙
    验证,在服务端的/nfsdir创建文件,看客户端是否能读取

挂载参数

https://blog.csdn.net/qq_43355223/article/details/122682180
https://help.aliyun.com/document_detail/90529.html#title-xsd-tx8-py1

挂载文件系统时,可选择多种挂载选项,挂载选项使用半角逗号(,)分隔
vers=3  文件系统版(3,4)
nolock: 文件锁(lock,nolock) 是否使用NLM协议在服务器上锁文件
noacl:  是否在挂载时使用NFSACL协议 (acl,noacl)
rsize:定义数据块的大小,用于客户端与文件系统之间读取数据。建议值:1048576
wsize:定义数据块的大小,用于客户端与文件系统之间写入数据。建议值:1048576
hard:(硬挂载,推荐)在文件存储NAS暂时不可用的情况下,使用文件系统上某个文件的本地应用程序时会停止并等待至该文件系统恢复在线状态。建议启用该参数。
soft:(不建议使用)使用软挂载的方式挂载系统,若Client的请求得不到回应,则重新请求并传回错误信息
timeo:指定时长,单位为0.1秒,即NFS客户端在重试向文件系统发送请求之前等待响应的时间。建议值:600(60秒)
retrans:NFS客户端重试请求的次数。建议值:2
noresvport:在网络重连时使用新的TCP端口,保障在网络发生故障恢复时不会中断连接。建议启用该参数

*可选参数
intr:允许NFS中断文件操作和向调用它的程序返回值,默认不允许文件操作被中断。
fg:一直在提示符下执行重复挂载。
bg:如果第1次挂载文件系统失败,继续在后台尝试执行挂载,默认值是失败后不在后台处理。
tcp:对文件系统的挂载使用TCP,而不是默认的UDP

开机自动挂载

https://help.aliyun.com/document_detail/90529.html#title-xsd-tx8-py1

vi /etc/fstab

#默认
10.3.60.40:/NFSDir /NFSdir nfs defaults 0 0
#带参
192.168.163.128:/NFSDir /NFSDir nfs defaults,_rnetdev 0 0



#NFSV3
10.3.60.40:/NFSDir /mnt nfs vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0

#NFS V4
10.3.60.40:/ /mnt nfs vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0

#极速型NAS
10.3.60.40:/share /mnt nfs vers=3,nolock,noacl,proto=tcp,noresvport,_netdev 0 0


挂载实例:
10.3.60.40:/NFS /NFS nfs vers=3,nolock,noacl,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev 0 0
#noresvport会使用大于1024端口

_netdev 防止客户端在网络就绪之前开始挂载文件系统
0(noresvport后第一项) 非零值表示文件系统应由dump备份。对于NAS文件系统而言,此值默认为0。
0(noresvport后第二项) 该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统而言,此值默认为0,表示fsck不应在启动时运行。

错误调试查看()

cat /var/log/messages | grep mount

参考
https://blog.csdn.net/ichen820/article/details/121637577
http://tech.cncms.com/os/centos/51933.html