NFS 配置1

什么是 NFS ( Network FileSystem )  

在开始进行 NFS 的设定之前,我们得先来了解一下,什么是 NFS 呢?不然讲了一堆也没有用,对吧! ^_^!所谓的 NFS 就是 Network FileSystem 的缩写,最早之前是由 Sun 这家公司所发展出来的。他最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案 ( share file ),所以,您也可以简单的将他看做是一个 file server 呢!这个 NFS Server 可以让您的 PC 来将网络远程的 NFS 主机分享的目录,挂载到本地端的机器当中,所以,在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分割槽一样 ( partition )!使用上面相当的便利!   图一、NFS 主机分享目录与 Client 挂载示意图 就如同上面的图示一般,当我们的 NFS Server 设定好了分享出来的 /home/sharefile 这个目录后,其它的 Client 端就可以将这个目录挂载到自己系统上面的某个挂载点(挂载点可以自订!),例如前面图示中的 Personal Computer 1 与 Personal Computer 2 挂载的目录就不相同。我只要在 Personal Computer 1 系统中进入 /home/data/sharefile 内,就可以看到 NFS Server 系统内的 /home/sharefile 目录下的所有数据了 (当然,权限要足够啊!^_^)!这个 /home/data/sharefile 就好像我自己 Personal Computer 1 里面的一个 partition 喔!只要权限对了,那么您可以使用 cp, cd, mv, rm... 等等磁盘或档案相关的指令!真是他X的方便吶!   那么您或许会问啦:『咦!那么这个 NFS 是藉由什么样的协议来进行传输的呢?』虽然 NFS 有属于自己的协议与使用的 port number ,但是在数据传送或者其它相关讯息传递的时候, NFS 使用的则是一个称为远程过程调用( Remote Procedure Call, RPC )的协定来协助 NFS 本身的运作!   -------------------------------------------------------------------------------- 什么是 RPC ( Remote Procedure Call )   那么什么是 RPC 呢?由字面上的意思来看『远程过程调用』不就是一些程序( Program )在执行远程联机时,需要用到的程序吗?呵呵!是这样没错啦!简单的来说,当我们在使用某些服务来进行远程联机的时候,有些信息,例如主机的 IP、服务的 port number、与对应到的服务之 PID 等等,都需要管理与对应!这些管理 port 的对应与服务相关性的工作,就是这个 Remote Procedure Call, RPC 的任务了!   好了,如果我们将 NFS 与 RPC 两者的相关性连接起来的话,那么您应该就可以知道: NFS 本身的服务并没有提供数据传递的协议,但是 NFS 却能让我们进行档案的分享,这其中的原因,就是 NFS 使用到一些其它相关的传输协议!而这些传输的协议,就是使用到这个所谓的 RPC 的功能啰!这也就是说, NFS 本身就是使用 RPC 的一个 program 就是了!说的更白话一点, NFS 也可以视作是一个 RPC server 啦!同时要注意到的是,在某些状况中,不但跑 NFS 的 Server 需要启动 RPC 的服务,连带的,要挂载 NFS partition 的 Client 机器,也需要同步启动 RPC 才行!这样 Server 端与 Client 端才能藉由 RPC 的协议来进行 program port 的对应喔!   OK!简单的说, NFS 也可以看做是 RPC server 的一种,因为他是使用这种协议的 program 呀! ^_^ !那么为什么 NFS 要使用 RPC 执行呢?这是因为 NFS 本身可以被看做是一个档案系统,那么一来的话,您的使用者联机常常变化,而且您的档案内容啦、分享的目录啦,还有其它档案相关的信息等等,也都会常常在变化,这个时候,使用类似这种可以对应 program number 与 port number 的 RPC 就相当的方便了!也就是说,NFS 主要在管理分享出来的目录,而至于数据的传递,就直接将他丢给 RPC 的协定来运作就是了!   更多关于 NFS 协议的信息您可以参考底下的网页:   http://www.faqs.org/rfcs/rfc1094.html http://www.tldp.org/HOWTO/NFS-HOWTO/index.html   -------------------------------------------------------------------------------- NFS 启动的 RPC daemons   NFS server 总共需要启用到至少两个 daemons ,一个管理 Client 是否可以登入的问题,另一个管理登入主机后的 Client 能够使用的档案权限!如果您还要管理 quota 的话,那么 NFS 还会自动的再加载其它相关的 RPC program 呢!我们这里以最简单的方式来设定 NFS,说明如下: rpc.nfsd:这个 daemon 主要的功能就是在管理 Client 是否能够登入主机的权限啦,其中还包含这个登入者的 ID 的判别喔! rpc.mountd:这个 daemon 主要的功能,则是在管理 NFS 的档案系统哩!当 Client 端顺利的通过 rpc.nfsd 而登入主机之后,在他可以使用 NFS server 提供的档案之前,还会经过档案使用权限 ( 就是那个 -rwxrwxrwx 与 owner, group 那几个权限啦 ) 的认证程序!他会去读 NFS 的设定档 /etc/exports来比对 Client 的权限,当通过这一关之后, Client 就可以取得使用 NFS 档案的权限啦!(注:这个也是我们用来管理 NFS 分享之目录的使用权限与安全设定的地方哩!) -------------------------------------------------------------------------------- 需要的套件 要启动 NFS 我们必须要有两个套件才行,分别是: nfs-utils 与 nfs-utils-clients (有时后仅有一个) portmap portmap: 就如同刚刚提的到,我们的 NFS 其实可以被视为一个 RPC server program,而要启动任何一个 RPC server program 之前,我们都需要做好 port 的对应 ( mapping ) 的工作才行,这个工作其实就是『 portmap 』这个服务所负责的!也就是说,在启动任何一个 RPC server 之前,我们都需要启动 portmap 才行呢!那么这个 portmap 到底在干嘛呢?就如同这个服务的名称,哈哈!就是作 port 的 mapping 啊!举个例子来说:当 Client 端尝试来使用 RPC server 所提供的服务时,由于 Client 需要取得一个可以连接的 port 才能够使用 RPC server 所提供的服务,因此, Client 首先就会去跟 portmap 讲『喂!可不可以通知一下,给我个 port number ,好让我可以跟 RPC 联络吧!』这个时候 portmap 就自动的将自己管理的 port mapping 告知 Client ,好让他可以连接上来 server 呢!所以啰:『启动 NFS 之前,请先启动 portmap !』 nfs-utils: 就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其它相关 documents 与说明文件、执行档等的套件!这个就是 NFS 的主要套件啦!一定要有喔! 好了,知道我们需要这两个套件之后,现在干嘛?!赶快去您的系统先用 RPM 看一下有没有这两个套件啦!没有的话赶快用 RPM 去安装喔!不然就玩不下去了!   例题: 请问我的主机是以 RPM 为套件管理的 Linux distribution ,例如 Red Hat, Mandrake 与 OpenLinux 等版本,那么我要如何知道我的主机里面是否已经安装了 portmap 与 nfs 相关的套件呢? 答: 简单的使用 rpm -qa | grep nfs 与 rpm -qa | grep portmap 即可知道啦! -------------------------------------------------------------------------------- Server 端的设定: -------------------------------------------------------------------------------- NFS 的套件结构   NFS 这个咚咚真的是很简单,上面我们提到的 NFS 套件中,设定档只有一个,执行文件也不多,记录文件也三三两两而已吶!赶紧先来看一看吧! ^_^   /etc/exports:这个档案就是 NFS 的主要设定档了!不过,系统并没有默认值,所以这个档案『不一定会存在』,所以您必须要使用 vi 主动的建立起这个档案喔!我们等一下要谈的设定也仅只是这个档案而已吶!   /usr/sbin/exportfs:这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸载或重新分享等等,这个指令是 NFS 系统里面相当重要的一个喔!至于指令的用法我们在底下会再介绍。   /usr/sbin/showmount:这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源喔!   /var/lib/nfs/xtab:这个档案则是主要的 NFS 的纪录文件咯!当我们的 NFS 分享出目录资源后,到底有哪些 Client 端曾经连接上我们的 NFS 主机呢?呵呵!就是看这个档案的内容即可啰! ^_^   就说不难吧!主要就是这几个啰!   -------------------------------------------------------------------------------- 主机的规划技巧建议   如果您的工作环境中,具有多部的 Linux 主机,并且预计彼此分享出目录时,那么在安装 Linux distribution 的时候,最好可以规划出一块 partition 作为预留之用。因为『 NFS 可以针对目录来分享』,因此,您可以将预留的 partition 挂载在任何一个挂载点,再将该挂载点(就是目录啦!)由 /etc/exports 的设定中分享出去,那么整个工作环境中的其它 Linux 主机就可以使用该 NFS 主机的那块预留的 partition 了!所以,在主机的规划上面,主要需要留意的只有 partition 而已。此外,由于分享的 partition 可能较容易被入侵,最好可以针对该 partition 设定比较严格的参数在 /etc/fstab 当中喔!   -------------------------------------------------------------------------------- 设定流程(/etc/exports)   我们在原理的部分对于 NFS 稍微解释了一下,哇!怎么看起来好像粉难喔!其实一点也不!为什么呢?因为 portmap 只要一支 scripts 就可以启动, NFS 只要设定一个档案就可以顺利运作!那么怎么能说不简单呢!呵呵!这个 NFS 真是他 X 的太太太.....简单了~在开始 NFS 之前,让我们先以 Windows 的系统当中的『资源共享』来说明一下整个流程吧:   在 Windows Server 上面,开启档案总管,在某个目录上面按右键选择启动资源共享; 在资源共享的内容当中,需要设定『使用者权限』( 以 Windows 2000 为例 ); 在 Client 端需要登入 Windows server 时,需要启动『网络上的芳邻』来寻找可用的网络上面分享的目录,然后点选该目录,若可以登入该 Windows server 时,则可以依据步骤一的权限使用该目录下的档案!   呵呵!没错! NFS 的整个流程也差不多是这样:   首先,需要确认一下您的 Linux 主机是否可以支持 NFS 这项服务,然后再设定一下使用者的来源IP或主机名称以及分享出去的目录的权限,之后呢,启动 NFS 即可将刚刚设定的目录给他分享出去了! 那么在 Client 端怎么使用这个分享出来的目录?就是先以 showmount 这支程序检查 Linux Server 是否有可以使用的 NFS 目录,如果有的话,就将他 mount 在本机上面,如果可以 mount ,那么就可以使用 NFS 主机提供的资源了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值