通过案例深入解析linux NFS机制
作者:盗哥泡茶去了
接上篇,创建web02服务器,将web01、web02服务器的/data目录挂载到nfs01服务器的共享目录/data上,并以不同方式实现开机自启动。
web01篇:
在/etc/rc.local中添加如下一行:
重启并检查:
web02篇:
克隆模板机,创建web02虚拟机,更改主机名,ip地址
安装rpc服务:yum install rpcbind 开启并设置开机启动
在最后添加一行:
因为磁盘挂载在系统启动的顺序中要快于网卡加载,而rpc又需要联网,所以我们需要开启延迟挂载:
重启,并检查:
注意:开机挂载时要保证nfs01服务器及其nfs服务都是开启状态。
在nfs01服务器上查看共享目录信息
可以通过设置uid和gid指定用户访问(在服务器端和客户端添加相同的用户---uid、gid相同):
useradd -u 1111 test
在web01服务器上测试:
总结:
①nfs服务器的nfs配置文件中共享目录要开放写入的权限
②nfs服务器共享目录的本地权限要设置w的权限
③指定用户时,要保证服务端和客户端的用户的uid和gid相同(用户名可以不同)
客户端挂载深入
查看客户端挂载信息:
两种挂载方式:hard和soft
如果以soft方式挂载,当网络或服务出现问题时,客户端会一致尝试挂载,直到超时(timeo)停止。
如果以hard方式挂载,则会一直尝试直到挂载成功,此时无法umount或kill,常配合intr使用。
注:soft在timeout后可能会造成资料丢失的情况,故不建议使用。
rsize/wsize是写入/读出的区块大小(block size),这个值影响客户端与服务器端传输数据的缓冲存储量。如果在局域网内,两边内存比较大,这个值可以设置大点,这样能提升传输速度。
mount命令详解:https://www.runoob.com/linux/linux-comm-mount.html
CentOS7.6优化建议使用如下挂载命令:
mount -t nfs -o noatime,nodiratime,nosuid,noexec,nodev,rsize=131072,wsize=131072 172.16.1.31:/data /mnt
NFS内核优化建议
- /proc/sys/net/core/rmem_default:该文件指定了接收套接字缓冲区大小的默认值,默认为124928(字节)
- /proc/sys/net/core/rmem_max:该文件指定了接收套接字缓冲区大小的最大值,默认为124928(字节)
- /proc/sys/net/core/wmem_default:该文件指定了发送套接字缓冲区大小的默认值,默认为124928(字节)
- /proc/sys/net/core/wmem_max:该文件指定了发送套接字缓冲区大小的最大值,默认为124928(字节)
上述文件对应的具体命令如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。