NFS网络文件系统
1、nfs服务简介
1.1 nfs特点
- 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
- nfs不仅适用于Linux与Unix之间实现文件共享,也能实现Linux与Windows间的文件共享功能。
- nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上(固定端口是2049,nfs还会开启很多端口,而且这些端口不固定)。
- 客户端认证是基于IP地址(没有用户名和密码的说法),这也是它的缺点之一。
- NFS网络文件系统一般用来存储共享视频、图片、附件,用户家目录等资源文件。
1.2 使用nfs的好处
- 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地机器就可以减少自身存储空间的使用。
- 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
- 一些存储设备,如:软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
1.3 nfs的体系组成
nfs服务是基于C/S架构工作的。
nfs体系至少有两个主要部分:
- 一台nfs服务器
- 若干台客户机
nfs体系的架构图:
客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据
在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数
1.4 nfs的应用场景
nfs有很多实际应用场景,以下是一些常用的场景:
- 多个机器共享一台CDROM或其他设备。这对于在多台机器中安装软件来说更加便宜与方便。
- 在大型网络中,配置一台中心NFS服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。
- 不同客户端可在NFS上观看影视文件,节省本地空间。
- 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。
2、nfs工作机制
nfs服务并不是自己单独工作,他需要基于rpc服务来实现网络文件系统共享。
2.1 rpc简介
RPC(Remote Procedure Call Protocol),远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
RPC服务采用C/S架构。客户端发送调用程序的请求;服务端负责接收客户端的请求,调用相应程序。
rpc工作机制:
- 客户端程序发起一个RPC系统调用基于TCP协议发送给另一台主机(服务端)
- 服务端监听在某个套接字上,当收到客户端的系统调用请求以后,将收到的请求和其所传递的参数通过本地的系统调用执行一遍,并将结果返回给本地的服务进程
- 服务端的服务进程收到返回的执行结果后将其