去年考完RHCE后就没碰NFS了,现在重新回顾一下。
网络文件系统(英语:Network File System,缩写为NFS)是一种分布式文件系统协议,最初由Sun Microsystems公司开发,并于1984[1]年发布。其功能旨在允许客户端主机可以像访问本地存储一样通过网络访问服务器端文件。 NFS和其他许多协议一样,是基于开放网络运算远程过程调用(ONC RPC) 协议之上的。——维基百科
NFS服务器配置
当两台计算机网络建立连接时,双方需提供一些基本信息,如:IP地址、端口号等,这些信息在Linux中可以由某个特定服务来管理,也可以委托给RPC(Remote Procedure Call)来帮助管理。RPC是远程过程调用通信协议,负责管理通信的连接以及连接的基本信息,这样可以让NFS服务专注于共享数据。CentOS 7实现NFS共享,需要同时启动NFS和rpcbind服务。
NFS服务器通过读取/etc/exports配置文件设定哪些客户端可以访问哪些NFS共享哪些文件系统。此文件一条完整的共享条目语法结构如下:
共享路径 客户端主机(选项)
列几个NFS主要的选项,详可参考man exports。
一般权限选项
选项 | 描述 |
---|---|
ro | 只读权限。(默认设置) |
rw | 读写权限。 |
sync | 同步写操作,数据写入存储设备后返回成功信息。(默认设置) |
async | 异步写操作,数据在未完全写入存储设备前就返回成功信息,实际还在内存。 |
wdelay | 延迟写入选项,将多个写操请求合并后写入硬盘,减少I/O次数,NFS非正常关闭数据可能丢失(默认设置)。 |
no_wdelay | 与上相反,不与async同时生效,如果NFS服务器主要收到小且不相关的请求,该选项实际会降低性能。 |
subtree | 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置); |
no_subtree | 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率 |
secure | 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)。 |
insecure | 允许客户端从大于1024的tcp/ip端口连接服务器。 |
用户映射选项