NetApp存储基础学习汇总(第四部分)

存储设备 0 795 团子精英 收藏

注意:资源与内容较老,参考即可

目   录

一、NFS管理.................................................................................................................. 1

1.1NFS基础知识................................................................................................... 1

1.2NFS启动的 RPC daemons(后台进程)................................................................. 4

1.3NFS 的文件存取权限(linux为例).................................................................. 5

1.4NFS Server 端的设定........................................................................................ 6

1.5/etc/exports文件讲解......................................................................................... 9

1.6exportfs命令................................................................................................... 12

1.7、主机端如何mount输出的资源......................................................................... 13

二、NETAPP关于NFS的文档....................................................................................... 15

2.1NFS基础知识................................................................................................. 15

2.2NFS的配置..................................................................................................... 17

2.3、访问权限测试.................................................................................................. 20

2.4NFS的性能调整.............................................................................................. 23


一、NFS管理

1.1、NFS基础知识

NFS 就是 Network FileSystem 的缩写,最早是由 Sun 公司所提出的。 它最大的功能就是可以通过网络,让不同的计算机、不同的操作系统、可以彼此分享档案 (share files)所以,也可以简单的将它看做是一个档案服务器 (file server)!这个 NFS 服务器可以让你的PC将网络远端的 NFS 主机分享的目录,挂载到本地端的机器当中, 在本地端的机器看起來,那个远端主机的目录就好像是自己的一个磁盘分区(partition)!使用上相当的方便!

既然 NFS 是通过网络来进行资料的传输,那么 NFS 使用那个 port来进行传输呢?答案是....不知道!因为 NFS 用来传输的 port 是随机选择小于 1024 以下的端口来使用的。 那用户端怎么知道服务器端使用那个port 呢?这时候就得要远程过程调用(Remote Procedure Call, RPC) 协议来辅助了。

远程过程调用 (RPC) 是一种协议程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。

因为NFS支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些 port 来传输资料,因此, NFS 的功能所对应的 port 才没有固定住, 而是采用随机取用一些未被使用的小于1024 的端口来作为传输之用。但如此一来又造成客户端想要连上服务器的困扰, 因为客户端必须要知道服务器端的相关端口才能够连接。

这时候RPC 最主要的功能就是指定每个NFS 功能所对应的 port number ,并且反馈给客户端,让客户端可以连接到正确的端口上去。 RPC 又是如何知道每个NFS 的端口呢?这是因为服务器在启动NFS 时会随机取用数个端口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口对应的 NFS 功能,然后RPC 又是固定使用 port 111 来监听客户端的需求并反馈客户端正确的端口。

所以在服务器端启动NFS服务之前,RPC对应的portmap服务就要启动了,否则NFS无法注册端口。

由于 NFS 的各项功能都必須要向 RPC 来注册,如此一来 RPC 才能了解 NFS 这个服务的各项功能的 port number, PID, NFS 服务器所监听的 IP 等等,而客户端才能够通过 RPC 找到正确对应的端口。 也就是说,NFS 必須要有 RPC 存在时才能成功的提供服務, 因此我们称 NFS RPC server 的一种。事实上,有很多这样的服务器都是向 RPC 注册的, 比如,NIS (Network Information Service) 也是 RPC server 的一种。 此外,不论是客户端还是服务器端,在要使用 NFS 时,两者都需要启动 RPC 才行。

linux服务器上启动NFS服务的过程

[root@rhel5   ~]# service nfs start          ç==没有启动portmap服务前,NFS启动不了

Starting   NFS services:  [  OK  ]

Starting   NFS quotas: Cannot register service: RPC: Unable to receive; errno =   Connection refused

rpc.rquotad:   unable to register (RQUOTAPROG, RQUOTAVERS, udp).

[FAILED]

Starting   NFS daemon: [FAILED]

Starting   NFS mountd: Cannot register service: RPC: Unable to receive; errno =   Connection refused

[FAILED]

[root@rhel5 ~]# service portmap start    ç==先启动portmap服务后,NFS启动正常

Starting portmap:   [  OK    ]

[root@rhel5 ~]#   service nfs start

Starting NFS   services:  [  OK  ]

Starting NFS   quotas: [  OK  ]

Starting NFS   daemon: [  OK  ]

Starting NFS   mountd: [  OK  ]

------------------------------------------------------------------------------------------------------------

[root@rhel5 ~]#   ps -ef|grep rpc

root      1842       1  0 Dec12 ?        00:00:00 rpc.statd

root      1875       1  0 Dec12 ?        00:00:00 rpc.idmapd

rpc       9280     1    0 18:53 ?        00:00:00   portmap

root      9310       1  0 18:53 ?        00:00:00 rpc.rquotad

root      9319       7  0 18:53 ?        00:00:00 [rpciod/0]

root      9326       1  0 18:54 ?        00:00:00 rpc.mountd

 [root@rhel5 ~]# netstat -ultn

Active Internet   connections (only servers)

Proto Recv-Q   Send-Q Local Address                 Foreign Address             State     

tcp        0        0 127.0.0.1:2208              0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:2049                0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:5801                0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:5901                0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:111                 0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:752                 0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:6001                0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:1010                0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:47093               0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:21                  0.0.0.0:*                   LISTEN     

tcp        0        0 127.0.0.1:631               0.0.0.0:*                   LISTEN     

tcp        0        0 0.0.0.0:601                 0.0.0.0:*                   LISTEN     

tcp        0        0 127.0.0.1:25                0.0.0.0:*                   LISTEN     

tcp        0        0 127.0.0.1:2207              0.0.0.0:*                   LISTEN     

tcp        0        0 :::6001                       :::*                          LISTEN     

tcp        0        0 :::22                         :::*                          LISTEN     

udp        0        0 0.0.0.0:1024                0.0.0.0:*                              

udp        0        0 0.0.0.0:2049                0.0.0.0:*                              

udp        0        0 0.0.0.0:1212                0.0.0.0:*                              

udp        0        0 0.0.0.0:5353                0.0.0.0:*                              

udp        0        0 0.0.0.0:746                 0.0.0.0:*                              

udp        0        0 0.0.0.0:749                 0.0.0.0:*                              

udp        0        0 0.0.0.0:1007                0.0.0.0:*                               

udp        0        0 0.0.0.0:111                 0.0.0.0:*                              

udp        0        0 0.0.0.0:631                 0.0.0.0:*                              

udp        0        0 0.0.0.0:1022                0.0.0.0:*                               

udp        0        0 :::1025                       :::*                                     

udp        0        0 :::5353                       :::*                                     

[root@rhel5   ~]# rpcinfo -p localhost

    program vers proto   port

    100000    2     tcp    111  portmapper

    100000    2     udp    111  portmapper

    100011    1     udp   1007  rquotad

    100011    2     udp   1007  rquotad

    100011    1     tcp   1010  rquotad

100011    2     tcp   1010  rquotad

       NFS版本

    100003    2     udp   2049  nfs

    100003    3   udp     2049  nfs

    100003    4   udp   2049    nfs

    100003      2     tcp   2049  nfs

    100003      3     tcp   2049  nfs

    100003      4     tcp   2049  nfs

    100021      1   udp   1212    nlockmgr

    100021      3   udp   1212    nlockmgr

    100021      4   udp   1212    nlockmgr

    100021      1   tcp  47093    nlockmgr

    100021      3   tcp  47093    nlockmgr

    100021      4   tcp  47093    nlockmgr

    100005      1   udp   1022    mountd

    100005      1   tcp    601    mountd

    100005      2   udp   1022    mountd

    100005      2   tcp    601    mountd

    100005      3   udp   1022    mountd

100005    3   tcp      601  mountd

[root@rhel5 ~]#   cat /etc/services|grep 111

sunrpc          111/tcp         portmapper      # RPC 4.0 portmapper TCP

sunrpc          111/udp         portmapper      # RPC 4.0 portmapper UDP

tan> netstat   -an       ç==在存储上看111端口也是开的

Active TCP   connections (including servers)

Local   Address         Remote Address         Swind Send-Q  Rwind    Recv-Q State     

*.80                  *.*                        0      0        0      0 LISTEN    

*.445                 *.*                        0      0        0      0 LISTEN    

*.139                 *.*                        0      0        0      0 LISTEN    

*.10568               *.*                        0      0        0      0 LISTEN    

*.10569               *.*                        0      0        0      0 LISTEN    

*.10567               *.*                        0      0        0      0 LISTEN    

*.10571               *.*                        0      0        0      0 LISTEN    

*.22                  *.*                        0      0        0      0 LISTEN    

*.514                 *.*                        0      0        0      0 LISTEN    

*.23                  *.*                        0      0        0      0 LISTEN    

*.4047                *.*                        0      0        0      0 LISTEN    

*.4045                *.*                        0      0        0      0 LISTEN    

*.4046                *.*                        0      0        0      0 LISTEN    

*.2049                *.*                        0      0        0      0 LISTEN    

*.111                 *.*                        0      0        0      0 LISTEN    

Active UDP   sockets (including servers)

Local   Address         Remote Address        Send-Q Recv-Q

*.138                 *.*                        0      0

*.137                 *.*                        0      0

*.69                  *.*                        0      0

*.161                 *.*                        0      0

*.4049                *.*                        0      0

*.4047                *.*                        0      0

*.4045                *.*                        0      0

*.4046                *.*                        0      0

*.2049                *.*                        0      0

*.111                 *.*                        0      0

*.520                 *.*                        0      0

NFS是一个分布式文件系统,它容许用户访问远程系统上的文件和目录,这些文件和目录对用户来说好像是在本地。用户可以使用OS命令创建,删除,读写远程文件和目录,以及设置远程文件和目录的属性,而这一切都是在本地完成的。NFS使用RPC而不受本地机器类型、OS和网络结构的限制。

 NFS基于客户机/服务器模式。一个NFS服务器拥有本地磁盘上的文件,客户机通过NFS访问它。拥有实际磁盘,并通过NFS将这些磁盘共享出来的主机叫NFS服务器,通过NFS访问文件系统的叫NFS客户机。服务器给客户机共享文件系统的操作叫做导出(export ).客户机要访问服务器导出的文件系统之前,必须在本地先挂接(mount)这个文件系统。

  NFS服务器导出的目录叫做远程资源,并通常写做:hostname:pathname 格式,其中hostnameNFS服务器的主机名,pathname是服务器上被导出目录的绝对路径。在客户机上安装远程资源的那个目录叫做挂接点(mount point)

更多内容请下载附件查看:

登录访问
本站用户 免费查看
登录账号
您未登录,请登录注册后查看

相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码