220 likes | 461 Views
本章重点内容. NFS 系统简介 NFS 服务的安装与配置 NFS 服务测试. NFS 系统简介. NFS Server 可以让你的 PC 将网络远程的 NFS 主机提供的共享的目录,挂载到本地端的机器当中。所以,在本地端的机器看起来,那个远程主机的目录就好象是自己的 partition 一般! NFS server 可以看作是一个 FILE SERVER. NFS 系统简介. RPC ( Remote Procedure Call )
E N D
本章重点内容 NFS系统简介 NFS服务的安装与配置 NFS服务测试
NFS系统简介 NFS Server 可以让你的 PC 将网络远程的 NFS 主机提供的共享的目录,挂载到本地端的机器当中。所以,在本地端的机器看起来,那个远程主机的目录就好象是自己的 partition 一般! NFS server可以看作是一个FILE SERVER
NFS系统简介 RPC(Remote Procedure Call) 虽然 NFS 有属于自己的协议和所使用的 port number,但NFS 本身没有提供信息传输的协议和功能。NFS之所以能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议,而这些传输协议用到这个RPC功能。
NFS系统简介 RPC(Remote Procedure Call) 可以将NFS服务器看成是一个RPC服务器,NFS客户端看成是一个RPC客户端,所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
NFS系统简介 举个例子来说:当 Client 端尝试来使用 RPC server 所提供的服务时,由于 Client 需要取得一个可以连接的 port 才能够使用 RPC server 所提供的服务,因此, Client 首先就会去跟 portmap 讲『喂!可不可以通知一下,给我个 port number ,好让我可以跟 RPC 联络吧!』这个时候 portmap 就自动的将自己管理的 port mapping 告知 Client ,好让他可以连接上来 server 呢!所以啰:『激活 NFS 之前,请先激活 portmap !』
NFS系统简介 • NFS需要启动的DAEMONS • rpc.nfsd:主要负责登陆权限检测。 • rpc.mountd:主要功能是管理NFS的文件系统。当客户端顺利的通过rpc.nfsd登陆NFS服务器后,在使用NFS服务器所提供的文件前,还必须通过文件使用权限的验证, rpc.mountd会读取NFS的配置文件/etc/exports来对比客户端的权限。 • portmap: 主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务提供的服务试,portmap会将所管理的与服务对应的端口号提供给客户端,从而使客户端可以通过端口向服务器请求服务 • 注:在REDHAT中PORTMAP是默认启动的
NFS服务的安装 NFS SERVER在REDHAT LINUX平台下一共需要两个软件包:nfs-utils和portmap nfs-utils:提供rpc.nfsd 及 rpc.mountd这两个NFS DAEMONS的软件 portmap: NFS其实可以被看作是一个RPC SERVER PROGRAM,而要启动一个RPC SERVER PROGRAM,都要做好PORT的对应工作,而且这样的任务就是由PORTMAP来完成的。通俗的说PortMap就是用来做PORT的mapping的。
NFS服务的 配置 服务器端的设定都是在/etc/exports这个文件中进行设定的,设定格式如下: 欲分享出去的目录 主机名称1或者IP1(参数1,参数2) 主机名称2或者IP2(参数3,参数4) 上面这个格式表示,同一个目录分享给两个不同的主机,但提供给这两台主机的权限和参数是不同的,所以分别设定两个主机得到的权限。 例:/home/test192.168.0.100(rw)
NFS服务的 配置 可以设定的参数主要有以下这些: rw:可读写的权限; ro:只读的权限; no_root_squash:登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用。 root_squash: 登入 NFS 主机使用分享目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份(缺省)all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody。 anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。 anongid:同 anonuid ,但是变成 group ID 就是了! sync:资料同步写入存储器中。 async:资料会先暂时存放在内存中,不会直接写入硬盘。
NFS服务的 配置 • 例如可以编辑/etc/exports为: /tmp *(rw,no_root_squash) /home/public192.168.0.*(rw) *(ro) /home/test192.168.0.100(rw) /home/linux *.the9.com(rw,all_squash,anonuid=40,anongid=40)
NFS服务的 配置 • 设定好后可以使用以下命令启动NFS: # /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的) # /etc/rc.d/init.d/nfs start
NFS服务的 配置 • exportfs命令来使新配置生效,该命令格式如下: exportfs [-aruv] -a :全部mount或者unmount /etc/exports中的内容 -r :重新mount /etc/exports中分享出来的目录 -u :umount 目录 -v :在 export 的时候,将详细的信息输出到屏幕上。
NFS服务的 配置 • 具体例子: # exportfs -rv <==全部重新 export 一次! exporting 192.168.0.100:/home/test exporting 192.168.0.*:/home/public exporting *.the9.com:/home/linux exporting *:/home/public exporting *:/tmp reexporting 192.168.0.100:/home/test to kernel #exportfs -au <==全部都卸载了。
NFS服务的 配置 • 权限问题假设/etc/exports里面的内容为#vi /etc/exports /home/public 192.168.0.*(rw) *(ro)
NFS服务的 配置 • 假设我们在192.168.0.100这个client端登陆此NFS主机(192.168.0.2),那么 情况一:在192.168.0.100的帐号为test这个身份,同时,NFS主机上也有test这个帐号 在/home/public中,由于我有读写的权限,如果NFS主机在/home/public这个目录的权限对于test开放写入的话,那么就可以读写,并且写入档案的所有人是test。如果NFS主机的/home/public对于test这个使用者并没有开放写入权限时,那就无法写入,虽然/etc/exports里面是rw,也不起作用.
NFS服务的 配置 • 假设我们在192.168.0.100这个client端登陆此NFS主机(192.168.0.2),那么情况二:如果我们在192.168.0.100的身份为test2,但是NFS主机却没有test2这个帐号时b).在/home/public与/home/test里面是否可以写入,还需要看/home/public的权限而定,不过身份就被变成nobody了
NFS服务的 配置 • 情况三:在192.168.0.100的身份为root在/home/public底下的身份被压缩成了nobody,因为预设的属性都具有root_squash,所以档案所有人就变成了nobody.
客户端NFS服务的测试 • showmout命令对于NFS的操作和查错有很大的帮助,所以我们先来看一下showmount的用法 showmout -a :这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器。 -e :显示指定的NFS SERVER上export出来的目录。
客户端NFS服务的测试 例如: showmount -e 192.168.0.1 Export list for localhost: /tmp * /home/linux *.linux.org /home/public (everyone) /home/test 192.168.0.100
客户端NFS服务的测试 • mount nfs目录的方法: #mount -t nfs hostname(orIP):/directory /mount/point 具体例子: # mkdir /nfs/tmp #mount -t nfs 192.168.0.1:/nfs/tmp /mnt/nfs # cd /mnt/nfs # ls
客户端NFS服务的测试 • 开机时自动连上 NFS: 如果希望开机的时候,系统就自动挂载 NSF,则需要编辑 /etc/fstab 档。 例: 192.168.1.100:/tmp /mnt/nfs nfs defaults 0 0
与NFS有关的一些命令介绍 nfsstat: 查看NFS的运行状态,对于调整NFS的运行有很大帮助 rpcinfo: 查看rpc执行信息,可以用于检测rpc运行情况的工具。