CentOS/Redhat 安装NFS v4.0文件服务器

时间:2020-01-09 10:34:12  来源:igfitidea点击:

如何在CentOS/RHEL v5.x下设置NFS v4.0分布式文件系统访问服务器,以便与UNIX和Linux工作站共享文件?
如何使用NFSv4导出目录?
如何使用NFSv4挂载目录?
网络文件系统(NFS)是最初由Sun Microsystems开发的网络文件系统协议。
它允许您的用户或客户端计算通过网络访问文件。

Linux和UNIX之类的操作系统(包括MS-Windows)可以通过网络安装文件系统,并可以在本地安装文件系统。
这是共享文件或集中式主目录的理想选择。
NFS版本4与NFSv3或更早版本相比具有以下优点:

  • 性能提升
  • 要求安全性和ACL
  • 默认情况下,NFS v4可在TCP上运行
  • 易于设置的防火墙选项
  • 以及更多。

必需的软件包

您需要安装以下软件包:

  • nfs-utilsnfs-utils软件包为内核NFS服务器和相关工具提供了守护程序,与大多数用户使用的传统Linux NFS服务器相比,该守护程序提供了更高的性能。
  • portmapportmap软件包应该安装在任何充当使用RPC协议的服务器的机器上。
  • nfs4-acl-tools这个软件包包含Linux NFSv4客户端的命令行和GUI ACL实用程序。

安装NFS服务器

键入以下命令(在客户端系统上也安装nfs4-acl-tools和nfs-utils):

# yum install nfs-utils nfs4-acl-tools portmap

输出示例:

Loaded plugins: downloadonly, protectbase, rhnplugin, security, verify


================================================================================
Package           Arch      Version              Repository               Size
================================================================================
Installing:
nfs-utils         x86_64    1:1.0.9-44.el5       rhel-x86_64-server-5    390 k
nfs4-acl-tools    x86_64    0.3.3-1.el5          rhel-x86_64-server-5     44 k
portmap           x86_64    4.0-65.2.2.1         rhel-x86_64-server-5     38 k

Transaction Summary
================================================================================
Install       3 Package(s)
Upgrade       0 Package(s)

Total download size: 472 k
Is this ok [y/N]: y

Running Transaction
  Installing     : portmap                                                  1/3 
  Installing     : nfs4-acl-tools                                           2/3 
  Installing     : nfs-utils                                                3/3 

Installed:
  nfs-utils.x86_64 1:1.0.9-44.el5      nfs4-acl-tools.x86_64 0:0.3.3-1.el5     
  portmap.x86_64 0:4.0-65.2.2.1       

Complete!

共享文件系统

/etc/exports这是主要的NFS服务器配置文件,用于控制NFS服务器导出的目录(与客户端共享)。
它使用以下格式:

/directory1 server.example.com(options)
/directory2 192.168.1.0/24(options) 
/directory3 192.168.1.5(options) 192.168.1.15(options) pc192.theitroad.com(options)

您可以按以下方式共享/sales文件系统。
编辑/etc/exports,输入:

# vi /etc/exports

添加配置如下:

/sales                       192.168.1.15(rw,sync,fsid=0) 192.168.1.16(rw,sync,fsid=0)

/sales在其中共享此目录。

  • 192.1681.15和192.168.1.16允许来自192.168.1.15和192.168.1.16的用户以读写权限挂载/sales。
  • rw读写选项。
  • fsid = 0通过NFS v4导出目录。 NFSv4具有整个导出文件系统根目录的概念。以fsid = 0导出的导出点将用作此根。/sales目录将是客户机的根目录。例如,如果您获得/sales/mumbai,/sales/pune子目录,则客户端会将其视为/mumbai和/pune目录。请注意,这只能导出带有fsid = 0选项的目录。

保存并关闭文件。
开启服务:

# chkconfig nfs on
# chkconfig portmap on

启动portmap和nfs服务,输入:

# service portmap start

输出示例:

Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]

请注意,NFSv4不需要端口映射服务。

可选:NFS服务器配置GUI工具

键入以下命令以使用GUI工具:

# system-config-nfs

输出示例:
Linux NFS服务器配置

NFSv4防火墙配置

编辑/etc/sysconfig/iptables,输入:

# vi /etc/sysconfig/iptables

打开NFSv4使用的TCP端口2049。
添加以下行,确保它们出现在RH-Firewall-1-INPUT链的最后LOG和DROP行之前:

-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT

保存并关闭文件。
重新启动RHEL/CentOS防火墙:

# service iptables restart

请参阅如何在RHEL/CentOS Linux下为NFSv3及更早版本配置防火墙。

TCP包装器配置

TCP Wrapper是基于主机的联网ACL系统,用于过滤对Internet的网络访问。
编辑/etc/hosts.deny,输入:

# vi /etc/hosts.deny

添加以下行(对NFSv4和NFSv3都有用):

portmap:ALL

最后,编辑/etc/hosts.allow并添加您的子网:

portmap:192.168.1.0/24

保存并关闭文件。

NFS客户端配置

然后,客户端可以使用以下命令安装NFSv4导出:

# mkdir /sales
# mount -t nfs4 servername:/ /sales/
# df -H
# su - username
$ cd /sales/mumbai
$ ls
$ >testfile
$ ls testfile && rm testfile

有关用户管理的注意事项

使用NIS或OpenLDAP进行大量用户的用户管理。
如果您的NFS客户端数量很少,请使用useradd命令将其添加到系统中。
确保UID和GID正确匹配。
例如,如果用户Hyman(UID = 500)是NFSv4服务器上的组Hyman(gid = 500)和销售组(Gid = 502)的一部分,则可以使用以下命令将用户添加到" NFSv4客户端":

# grep -q '^sales' /etc/group || /usr/sbin/groupadd -g 502 sales
# /usr/sbin/useradd -s /bin/bash -d /sales -M -u 500 -g 500 -G 502 sales
# su - sales
$ pwd
$ ls && cd mumbai && >testfile && ls -l testfile && rm testfile

上面的命令匹配客户端和服务器的UID和GID。
否则,您将在NFSv4客户端上收到权限被拒绝的消息。
如前所述,对于大量NFSv4用户/客户端,请使用NIS或OpenLDAP等集中式身份验证系统。

使用/etc/fstab挂载NFS文件系统

编辑/etc/fstab,输入:

# vi /etc/fstab

追加条目,输入:

server:/    /sales  nfs4   soft,intr,rsize=8192,wsize=8192,nosuid

保存并关闭文件。
确保netfs服务已打开:

# chkconfig netfs on

如何查看NFS统计信息?

要显示有关NFS客户端和服务器活动的统计信息,请输入:

# nfsstat

输出示例:

Server rpc stats:
calls      badcalls   badauth    badclnt    xdrcall
28131      0          0          0          0       

Server nfs v3:
null         getattr      setattr      lookup       access       readlink     
10        0% 12302    58% 62        0% 166       0% 2122     10% 35        0% 
read         write        create       mkdir        symlink      mknod        
7         0% 4039     19% 52        0% 3         0% 0         0% 0         0% 
remove       rmdir        rename       link         readdir      readdirplus  
47        0% 2         0% 6         0% 0         0% 1         0% 2273     10% 
fsstat       fsinfo       pathconf     commit       
21        0% 13        0% 0         0% 4         0% 

Server nfs v4:
null         compound     
8         0% 6726     99% 

Server nfs v4 operations:
op0-unused   op1-unused   op2-future   access       close        commit       
0         0% 0         0% 0         0% 54        0% 2019      7% 0         0% 
create       delegpurge   delegreturn  getattr      getfh        link         
0         0% 0         0% 1         0% 8563     30% 2094      7% 0         0% 
lock         lockt        locku        lookup       lookup_root  nverify      
0         0% 0         0% 0         0% 78        0% 0         0% 0         0% 
open         openattr     open_conf    open_dgrd    putfh        putpubfh     
2022      7% 0         0% 14        0% 0         0% 6710     24% 0         0% 
putrootfh    read         readdir      readlink     remove       rename       
12        0% 70        0% 16        0% 7         0% 5         0% 3         0% 
renew        restorefh    savefh       secinfo      setattr      setcltid     
1         0% 2022      7% 2025      7% 0         0% 4         0% 5         0% 
setcltidconf verify       write        rellockowner 
5         0% 0         0% 2003      7% 0         0%

如何显示有关共享目录的信息?

要查看NFS服务器的安装信息(需要rpc portmap服务),请输入:

# showmount -e
# showmount -d
# showmount -a server.ip

关于NFSv4服务的说明

  • NFSv4服务器可以在没有portmap,rpc.lockd和rpc.statd守护程序的情况下工作。服务器上仍需要rpc.mountd守护程序。
  • NFSv4客户端无需rpc.lockd和rpc.statd即可工作。
  • 但是,如果要混合使用NFSv4和NFSv3,请确保在客户端和服务器上都启动以上服务。