NFS详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFS详解相关的知识,希望对你有一定的参考价值。
一、简介:
NFS是Network File System的缩写,即网络文件系统。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。
二、工作流程:
1、由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。
2、NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。
3、客户端获取正确的端口,并与NFS daemon联机存取数据。
4、存取数据成功后,返回前端访问程序,完成一次存取操作。
三、centos7配置NFS共享
前提
防火墙和selinux已经关闭。
配置好YUM源,服务端需要共享的磁盘是挂载/data目录下的。
3.1、服务端配置:IP 192.168.1.101
安装软件
# yum install nfs-utils rpcbind
修改NFS的exports文件
# vi /etc/exports
/data *(rw,sync,no_root_squash)
重新加载NFS的export配置文件
# exportfs -ra
启动服务及配置服务开机启动
# service rpcbind start
# service nfs start
按照顺序启动服务,不然会报错
配置服务开机启动
# systemctl enable nfs-server.service
# systemctl enable rpcbind
3.2、客户端配置:192.168.1.102
安装软件
# yum install nfs-utils rpcbind
创建挂载的目录/data
# mkdir /data
挂载
# mount 192.168.1.101:/data /data
把挂载信息写入fstab配置文件
# vi /etc/fstab
添加
192.168.1.101:/data /data nfs4 defaults 0 0
四、exports详解及常用命令
4.1、配置文件/etc/exports
/etc/exports文件内容格式:<输出目录> 客户端(选项:访问权限,用户映射,其他)
输出目录是指NFS系统中所定义的共享给客户端使用的文件系统;
客户端是定义网络中可以访问这个NFS共享目录IP地址或网段或域名等;
客户端常用的指定方式:
指定ip地址的主机:192.168.1.102
指定一个子网:192.168..102/24 也可以写成:192.168.1.102/255.255.255.0
指定域名的主机:image.test.cn
指定域中的所有主机:*.test.cn
所有主机:*
选项用来设置输出目录的访问权限、用户映射等;
NFS主要有3类选项:
设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
重新加载nfs配置文件命令exportfs:
-r:表示重新刷新共享;
-a:表示将配置文件/etc/exports中的所有定义共享发布出去;
-v:显示确认共享设置;
-u:表示不发布共享;
4.2、常用命令
# exportfs -au 卸载所有共享目录
# exportfs -rv 重新共享所有目录并输出详细信息
nfsstat
查看NFS的运行状态,对于调整NFS的运行有很大帮助。
rpcinfo
查看rpc执行信息,可以用于检测rpc运行情况的工具,利用rpcinfo -p 可以查看出RPC开启的端口所提供的程序有哪些。
showmount
-a 显示已经于客户端连接上的目录信息
-e IP或者hostname 显示此IP地址分享出来的目录
netstat
可以查看出nfs服务开启的端口,其中nfs 开启的是2049。
参考;
http://blog.51cto.com/mrxiong2017/2087001
以上是关于NFS详解的主要内容,如果未能解决你的问题,请参考以下文章