NFS(Network File System)是一个网络文件系统,是Linux系统直接支持文件共享的一个文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
1.NFS介绍
NFS最初是由Sun Microsystems公司于1984年开发出来的,它的功能是让整个网络共享某些主机的目录和文件。由于NFS使用起来非常方便,因此很快得到了大多数UNIX类系统的支持。
2.远程过程调用RPC
RPC(Remote Procedure Call,远程过程调用)是另一种不同的网络程序设计方法,它定义了一种进程间通过网络进行交互通信的机制,使程序员编写客户程序时感觉只是调用了服务器程序提供的函数,而双方的通讯过程对程序员来说完全是透明的。也就是说,一台机子上的程序使用这种机制可以向网络中另一台机子上的程序请求服务,并且不必了解支持通信的网络协议的具体情况。
3.NFS协议
NFS协议是一个建立在Sun RPC基础上的客户端/服务器应用程序,客户端通过向一台NFS服务器发送RPC请求来访问其中的文件。
4.NFS服务器
NFS服务器采用多进程模型,而且进程数是固定的,默认情况下为4,当然,可以进行修改。不论怎么对NFS进行性能优化,NFS注定不适合IO密集型文件的共享方案。但作为一般用途比如提供站内资源的共享,它是比较容易搭建的,可以减少不必要的数据冗余。
5.NFS远程操作
NFS远程写操作有同步(sync)和异步(async)两种模式,对于异步模式,NFS可以在接收到写操作请求后立即返回成功,然后在后台执行真正的写操作。对于同步模式,NFS在写操作完成后才返回,当然,这里不一定是写到磁盘。对于异步模式,由于存在实际写入磁盘的延迟,所以非常有可能发生实际写入失败而应用程序并不知晓的情况,在没有保障的情况下,使用异步模式要格外谨慎。