天天看点

NFS

 -----------------------nfs--------------------------

一、前言    

 nfs,即网络文件系统,简单来讲类似于windows下的文件共享。nfs允许一个系统在网络上与他人共享目录和文件。通过使用nfs,用户和程序可以像访问本地文件一样访问远端系统上的文件。

    nfs 最初是由 sun microsytem 公司於在1984 年所开发出来的,最主要的功能就是让网路上的 unix 电脑可以共享目录及档案。我们可以将远端所分享出来的档案系统,挂载 (mount) 在本地端的系统上,然後就可以很方便的使用远端的档案,而操作起来就像在本地操作一样,不会感到有甚麽不同。而使用 nfs 也有相当多的好处,例如档案可以集中管理,节省磁碟空间......等等。

       linux下的nfs一般建立在rpc(远程过程调用)服务至上,它由许多子进程构成:

nfsd:   nfs主进程,服务名为nfsd,监听tcp/udp2049端口

rpc.mountd:监听客户端请求,然后转发请求至nfsd(默认使用随机端口)

rpc.quotad:   nfs上的配额管理进(默认使用随机端口)

lockd: 文件锁进程,防止nfs重读错乱(默认使用随机端口)

rpc.statd:记录文件锁状态(默认使用随机端口)

二、安装

   nfs的安装很简单,linux一般提供有相关rpm包,安装nfs-utils,nfs-utils-lib即可,一般默认已经安装,所以只要手动启动服务即可:

# service  nfs  start

#rpcinfo  -p  ----->查看本机关于nfs的端口是否打开

三、使用

nfs的配置文件有/etc/exports,/etc/sysconfig/nfs.前者主要用来定义本机的共享点信息。

如我们要共享本机的/www  给网络上的192.168.0.0/24:

①、#vim  /etc/exports:

         /www       192.168.1.0/24(rw,sync)      

------------>以读写,同步的方式把本机的/www目录共享给192.168.0.0/24

②、之后导出需要共享问目录:

#    exportsfs  -arv             ------>导出所有共享目录 ,即可在不重启服务时重新导出

    也可使用exportsfs  -auv    :关闭所有共享目录

 # showmount   -e   192.168.0.1     -------->查看此主机上的可共享目录

③、client使用:

  mount   -n  nfs   192.168.0.1:/www     /shared   -------->挂载远程/www至本地/shared下

至此,客户端就可以正常访问共享目录咯、、、、、

        另外,如若我们想实现nfs的自动挂载,如只有访问需求时才挂载,长期不访问自动退出,可使用autofs命令实现;它也同样适用于本地目录的挂载。

他的实现很简单,需要用到autofs主配文件 /etc/auto.master。如:

①、vim   /etc/auto.master:

   /mnt       /etc/auto.shared       ---------指定nfs文件系统可自动挂载至/mnt下

②、vim     /etc/auto.shared:

   shared    -soft, intr,rw   192.168.0.155:/shared

    ------------>挂载155主机的/shared至本机的/mnt/shared

③、service  autofs  start

 之后我们会发现当我们需要访问155的/shared时,执行cd  /mnt/shared即可,即时在本机看不到此目录 。

          上面讲到了nfs的实现及访问,但是有没有想过,nfs貌似很不安全啊,它没有让你提供认证,只要给出ip或主机名即可轻松访问,这样只要我们更改适当的ip即可任意访问nfs。这是因为nfs默认只检查用户名,而且客户端说自己是哪个用户,nfsserver就认为你是哪个用户,所以一般我们的nfs会结合nis实现远程集中身份验证,即在远程有一台主机专门作为nfs的验证服务器,所有客户端的登陆都会在此主机上实现验证。

为咯实现nis,linux提供咯ypbind和ypserv软件包,分别基于nis认证客户端和nis认证服务器。

客户端必须首先加入和服务器同一个域内,过程如下:

1、vim  /etc/yp.conf   :

     domain   mynis      server     192.168.0.254  -------->加入0.254上的指定域 

2、vim /etc/nsswitch.conf:

更改: passwd:     files   nis

             shadow:     files   nis

              group:      files   nis

3、vim   /etc/sysconfig/network:

  nisdomain=mynis    -------------->指定本机加入的域名

4、service ypbind  restart      ----------->启动nis客户端服务

      service  autofs  restart

之后既可以实现身份验证登录远程nfs主机咯。

继续阅读