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详解的主要内容,如果未能解决你的问题,请参考以下文章

NFS配置详解

NFS详解

NFS配置详解

NFS文件系统详解

NFS详解

NFS详解