NFS服务器的概念和使用(1)


NFS是网络和计算机的一项重大应用。那么对于NFS服务器我们在前面的文章中也进行了一些简单的介绍。那么这里我们再来系统地讲解一下基础内容。帮助大家理解这部分内容。NFS是分布式计算机系统的一个组成部分,可实现在异构网络上共享和装配远程文件系统.

NFS简介

NFS由SUN公司开发,目前已经成为文件服务的一种标准RFC1904,RFC1813).其最大功能是可以通过网络让不同操作系统的计算机可以共享数据,所以也可以将其看做是一台文件服务器,如图1-1所示.NFS提供了除Samba之外,Windows与Linux及UNIX与Linux之间通信的方法.

图1-1  NFS可作为文件服务器

图1-1  NFS可作为文件服务器

客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样,可以使用cp、cd、mv、rm及df等与磁盘相关的命令.NFS有属于自己的协议与使用的端口号,但是在传送资料或者其他相关信息时候,NFS服务器使用一个称为"远程过程调用"Remote Procedure Call,RPC)的协议来协助NFS服务器本身的运行.

为何使用NFS

NFS的目标是使计算机共享资源,在其发展过程中即20世纪80年代),计算机工业飞速发展,廉价CPU及客户端/服务器技术促进了分布式计算环境的发展.然而当处理器价格下降时,大容量的存储系统相对而言价格仍居高不下.因此必须采用某种机制在充分发挥单个处理器性能的同时使计算机可共享存储资源和数据,于是NFS应运而生.

NFS协议

使用NFS,客户端可以透明地访问服务器中的文件系统,这不同于提供文件传输的FTP协议.FTP会产生文件一个完整的副本;NFS只访问一个进程引用文件部分,并且一个目的就是使得这种访问透明.这就意味着任何能够访问一个本地文件的客户端程序不需要做任何修改,就应该能够访问一个NFS文件.

NFS是一个使用SunRPC构造的客户端/服务器应用程序,其客户端通过向一台NFS服务器发送RPC请求来访问其中的文件.尽管这一工作可以使用一般的用户进程来实现,即NFS客户端可以是一个用户进程,对服务器进行显式调用,而服务器也可以是一个用户进程.因为两个理由,NFS一般不这样实现.首先访问一个NFS文件必须对客户端透明,因此NFS的客户端调用是由客户端操作系统代表用户进程来完成的;其次,出于效率的考虑,NFS服务器在服务器操作系统中实现.如果NFS服务器是一个用户进程,每个客户端请求和服务器应答包括读和写的数据)将不得不在内核和用户进程之间进行切换,这个代价太大.第3版的NFS协议在1993年发布,图1-2所示为一个NFS客户端和一台NFS服务器的典型结构.


相关内容