标签:NFS
NFS工作流程图步骤1:先启动RPC服务
步骤2:启动NFS服务(向RPC服务注册启动的端口)
步骤3:客户向RPC请求NFS
步骤4:RPC返回端口到客户
步骤5:拿着地址端口请求传输数据
服务搭建:将服务端/data挂载到/mnt目录下
1:检查操作系统内核版本,确认是否支持
2:检查并安装NFS服务(服务端必须安装,客户端最好安装)
2.1:检查NFS服务是否安装
rpm -aq nfs-utils rpcbind
2.2:如果未安装,需进行安装
LANG=en
yum install nfs-utils rpcbind -y
2.3:安装完成,再次进行确认
rpm -aq nfs-utils rpcbind
3:启动RPC及NFS服务并检查
/etc/init.d/rpcbind start
ps -ef | grep rpc
/etc/init.d/rpcbind status
rpcinfo -p localhost
/etc/init.d/nfs start
rpcinfo -p localhost
检查进程情况
ps -ef|egrep "rpc|nfs"
root 367 2 0 May04 ? 00:00:00 [rpciod]
rpc 1944 1 0 05:52 ? 00:00:00 /sbin/rpcbind -w
root 1977 1 0 05:58 ? 00:00:00 /usr/sbin/rpc.idmapd name mapping daemon名称映射
rpcuser 1978 1 0 05:58 ? 00:00:00 /usr/sbin/rpc.statd 检查文件一致性
root 1979 1 0 05:58 ? 00:00:00 /usr/sbin/rpc.mountd 权限管理验证等(NFS mount daemon)
root 1989 2 0 05:58 ? 00:00:00 [nfsd4_callbacks]
root 1993 2 0 05:58 ? 00:00:00 [nfsd]
root 1994 2 0 05:58 ? 00:00:00 [nfsd] 主进程,管理登入,ID身份判别等
root 1995 2 0 05:58 ? 00:00:00 [nfsd]
root 1996 2 0 05:58 ? 00:00:00 [nfsd]
root 1997 2 0 05:58 ? 00:00:00 [nfsd]
root 1998 2 0 05:58 ? 00:00:00 [nfsd]
root 1999 2 0 05:58 ? 00:00:00 [nfsd]
root 2000 2 0 05:58 ? 00:00:00 [nfsd]
root 2007 1726 0 05:59 pts/1 00:00:00 grep -E --color=auto rpc|nfs
4:配置服务端/etc/exports(默认为空)文件
vim /etc/exports
/data 172.31.175.0/24(rw,sync) sync指同步写入磁盘
该配置文件省略了很多配置,详细配置在/var/lib/nfs/etab
5:平滑重启NFS服务
systemctl reload nfs
6:配置客户端
6.1:启动客户端rpcbind服务
通过 showmount -e 服务端IP地址 检测能否正常挂载
6.2:将/data目录挂载到客户端目录下
mount -t nfs 172.31.175.30:/data /mnt
df -h 检测是否挂载成功
注意:该配置采用系统默认的nfsnobody用户,请确保客户端和服务端nfsnobody用户的id相同(安装时系统默认会创建,uid和gid都是65535)
如果配置NFS不使用系统默认的nfsnobody用户,需注意以下几点
创建用户组
groupadd -g 889 zuma1
创建用户
useradd -u 889 -g 889 zuma1 -s /sbin/nologin -M
修改客户端挂载用户目录属性
chown zuma1.zuma1 -R data
修改服务端/etc/exports文件
/data1 172.16.1.0/24(rw,sync,all_squash,anonuid=889,anongid=889)
挂载,检查
NFS参数调优与安全
客户端优化
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 10.0.0.7:/data /mnt
nosuid 不允许suid noexec挂载点不允许执行二进制文件 noatime每一次数据访问,不更新inode里面的时间戳 nodiratime每一次访问目录,不更新目录时间戳
rsize 数据传输一次可读多少数据 wsize 数据传输一次可写多少数据
async:涉及文件系统I/O的操作都是异步处理,即不会同步到磁盘,此参数会提高性能,但会降低数据安全,一般情况下,生产环境不推荐使用,除非对性能要求很高,对数据可靠性不要求的场合
sync:同步处理I/O
服务端优化(内核参数调整)
/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
cat>>/etc/sysctl.conf<<EOF
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
EOF
sysctl -p
NFS优缺点
局限
存在单点故障,如果NFS server宕机了,所有客户端都不能访问共享目录。
在大数据高并发的场合,NFS效率、性能有限。
客户端认证是基于IP和主机名的,权限要根据ID识别,安全性一般。
NFS数据是明文的,NFS本身不对数据完整性作验证。
多台客户机器挂载一个NFS服务器。当服务端出问题后,所有的NFS客户端都处于挂掉状态。
tips:
umount -lf 挂载点 强制卸载
标签:NFS
原文地址:http://blog.51cto.com/9475587/2117349