> Linux教程 > Linux学习 >

Linux服务器之间共享网络文件系统(NFS)操作概要

当您想在装有Linux和Windows的计算机之间共享磁盘空间的时候,Samba通常是您可选择的解决方案。当磁盘需要在Linux服务器之间共享时,网络文件系统(NFS)协议就会被调用.

Linux的数据存储磁盘包含存储于标准目录结构文件系统中的文件夹。附加的磁盘通过附接或者挂载的方式加载。它们的文件系统将被转换为已存在于计算机磁盘的文件系统。这实际上使得被加载硬盘出现在它所挂载的文件系统的子目录中。 NFS允许计算机系统通过将远程计算机挂载到本地文件系统,使得能够像访问本地磁盘一样访问远程计算机。为了能够使NFS客户端访问,NFS服务器管理员需要指定被激活或者被调出的文件目录,同时NFS客户端管理员需要指定NFS服务器与其要被调出的目录的子集。为了能使NFS客户访问,NFS服务器的http://www.aliyun.com/zixun/aggregation/13879.html">系统管理员需要指定被激活或者载出的目录,而且客户端的管理员需要指定NFS服务器和被载出目录的子目录。

在配置NFS时你需要遵循一些通用规则。

仅仅在 / 目录下载出目录。 不允许在已经载出目录下载出自目录。当子目录位于另一个物理设备的时是允许例外的。同样的,不允许载出一个子目录的上一级目录,除非它在另一个独立的设备。 只载出本地文件系统。

记住:当你加载新的文件系统到某一个目录时,原本在该目录下的文件、子目录是被忽略的,只有新的文件系统会显示在该目录下。当新的文件系统被卸载后,原来的文件、子目录会重新出现在该目录下,没有任何变化。

跨网络的数据访问常常导致一系列的挑战,尤其是如果网络尝试对用户透明,比如NFS。这里有些关键的NFS背景概念,以帮助您有一个全面的了解。

VFS:虚拟文件系统(VFS)接口是NFS采用的,透明并且自动地对远程服务器上加载的NFS文件访问作重新编辑的一种机制。虚拟文件系统使得访问远程文件与访问本地文件没有区别。

VFS也传递这些请求,使得与NFS服务器磁盘格式匹配。这使得NFS服务器并不需要是一个完全不同的操作系统,而是以不同的属性去定义文件夹。

Stateless Operation:程序在本地文件系统上读写依靠操作系统的指针追踪他们的访问地点。由于NFS是基于网络的文件系统,以及网络的不可靠,所以决定了NFS用户镜像作为程序运行在NFS客户端和NFS服务器的中介。

通常当服务器失败,访问文件超时并且文件指针归零。NFS服务器并不保存文件指针信息,而NFS客户端保存。这就意味着万一NFS服务器突然失败,NFS客户端能在服务器重新连接以后再次准确的重新进行文件访问。

缓冲:NFS客户端通常获取比它们所需要的更多的数据,并把这些数据缓存在本地,因此对于数据的进一步访问可以从本地开始而不需要从网络上开始。这称作为预读缓存。当缓存将要满时,将要被写入NFS服务器的数据将和正在写入NFS服务器的数据一起放入缓存。因此缓存降低了网络总流量,并同时提高了某些类型的数据访问速度。

NFS服务器同样也缓存信息,诸如最近访问的文件夹信息和最新被读取文件的预读。

NFS和符号性链接:你必须小心使用载出NFS目录上的符号性链接。如果一个绝对的链接指向一个没有被载出的NFS服务器的文件目录,那么NFS客户端将不能对该目录进行访问。

与绝对链接不同,相对符号链接将以相对形式解析给客户端文件系统。考虑这样一个例子:位于服务器的/data1文件目录加载在/data1目录下。如果有一个链接指向NFS服务器的../data2目录,但是与../data2目录相应的文件夹不存在,那么就会发生错误。同样地,将一个文件系统加载到一个符号性链接就是将文件系统加载到符号性链接目标下。在此过程中你需要谨慎,不要忽略符号链接的原始目录。在做之前请仔细计划。

NFS下的加载:NFS客户使用网络应用程序帮助中的远程程序呼叫(RPC)加载远程文件系统。如果默认RPC超时导致未能加载,客户端会继续尝试重新加载,直到超过最大尝试次数。默认的超时时间为10,000分钟,大概是一个星期的时间。困难之处在于,如果NFS服务器无法读取,加载命令将会持续一个星期,知道服务器重新在线。用户可以使用bg选项终止重试,使得主加载命令能够继续执行其他请求。

硬加载与软加载:不论位于后台或者前台,不断进行重试的加载被称作硬加载。网络文件系统(NFS)不断进行重试,以保证数据的一致性。对于软加载,重复的远程程序呼叫(RPC)失败将导致网络文件系统(NFS)操作失败同时也不能保证数据的一致性。不论加载的失败与否,软加载的优点是操作的速度快。缺点是软加载的选择意味着你可能使用的是不可靠的NFS服务器,如果是这样的话,最好不要把需要更新的关键数据放在那台服务器上。

NFS版本

目前有三种可获取的NFS版本:第二、三、四版。第一版是原型版本。本章重点放在第二版。第二版:

最高支持4GB文件 在写请求成功确认前需要NFS服务器成功在磁盘上写入数据 每次读写有8KB的限制

几个重要的NFS后台程序

不是一个独立的程序,它是对一系列互相关联的一起工作的后台程序的总称:

portmap: The primary daemon upon which all the others rely主要的后台程序,其他程序都要依赖于它, portmap程序管理那些用RPC调用的程序的连接。portmap默认监听TCP端口111,这是一个默认启动的端口。然后portmap程序会分配一些TCP端口用来传输接下来的数据,这些端口号通常是大于1024的。 你必须在NFS的服务器和客户机上同时运行protmap程序。 nfs: 开启RPC进程用来共享NFS文件系统,你只需要在NFS服务器上运行这个程序。 nfslock: 用来允许NFS客户端通过RPC进程锁定在服务器上的文件。你必须在NFS的服务器和客户机上同时运行这个程序 netfs:允许运行在客户机上的RPC进程mount 服务器上的NFS文件系统。你只需要在NFS客户端上运行这个程序。


(责任编辑:IT)