1、什么是NFS
NFS(network file system,网络文件系统),在unix-like系统中通过网络来访问文件的一种方式。其他的网络文件服务还有smaba等,相比之下NFS配置简单,性能高效。
2、基于RPC服务
RPC(remote procedure call,远程过程调用),一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。也就是当我们执行的需要的资源不在本地,而在网络的另一主机上,就会发一个请求给对方,对方吧相应的事情处理好了之后返回结果。建立RPC服务需要安装相关的软件来提供这项服务,我们用的是rpcbind这款软件。
3、NFS的访问机制
常规的C/S服务都是服务器程序监听一个特定的端口,客户端直接向这个端口发起请求,但是NFS可不是常规服务,要启动NFS服务需要启动多个守护进程,主要的守护进程有rpc.nfsd、rpc.mountd、rpc.lockd和rpc.statd等守护进程。我们又回到前面说到RPC服务,其实NFS是RPC的一个子服务,当我们想一台主机发起NFS连接时,我们并没有直接去连接nfs的守护进程,而是先连接rpc服务,rpc服务返回mountd的端口,mountd开始做权限验证,然后允许连接nfs服务。要注意的nfs和其相关的mountd等都是属于rpc的子服务。
4、杂项
nfsd只提供文件传输服务,他不能完成权限验证、资源冲突保护等功能,而这些功能都需要RPC的其他子服务来提供,比如mountd、lockd。nfsd自身的端口是2049,但是这个端口不是用来传输文件的,NFS提供文件传输的端口是随机的,需要向rpc服务注册,所以,在启动NFS服务之前一定先启动RPC。