一、NFS是什么?
NFS是一种分布式文件系统协议,是NAS的一种。它允许在网络上的计算机之间共享文件和目录。NFS的工作原理是将文件系统挂载到远程计算机上,使得远程计算机可以像本地文件系统一样访问共享的文件和目录。NFS使用客户端-服务器模型,其中客户端计算机通过网络连接到NFS服务器,请求访问共享的文件和目录。NFS服务器将文件和目录的内容传输到客户端计算机上,使得客户端可以像访问本地文件系统一样访问共享的文件和目录。
二、工作流程
nfs是基于rpc来实现网络文件系统共享的。NFS服务器端运行着四个进程:账号集中映射,验证客户端是否在允许访问此NFS文件系统的客户端列表中,守护进程,rpc服务。
客户端发起查看file信息的指令(ls file)给内核,内核通过NFS模块得知此文件并不是本地文件系统中的文件,而是在远程NFS主机上的一个文件。
客户端主机的内核通过RPC协议把查看file信息的指令(系统调用)封装成rpc请求通过TCP的111端口发送给NFS服务端主机的portmapper。
NFS服务端主机的portmapper(RPC服务进程)告诉客户端说NFS服务端的mountd服务在某某端口上,你去找它验证。
客户端得知服务端的mountd进程端口号后,通过已知的服务端mountd端口号请求验证。
mountd收到验证请求后验证发起请求的客户端是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd),否则拒绝访问。
验证通过后客户端持mountd发放的令牌去找服务端的nfsd进程,请求查看某文件。
服务端的nfsd进程发起本地系统调用,向内核请求查看客户端要查看的文件的信息。
服务端的内核执行nfsd请求的系统调用,并将结果返回给nfsd服务。
nfsd进程收到内核返回的结果后将其封装成rpc请求报文并通过tcp/ip协议返回给客户端。
。总结
NFS协议支持多种安全机制,包括基于主机的访问控制、基于用户的访问控制和加密传输。它还支持文件锁定和缓存机制,以提高性能和可靠性。