CentOS/Redhat 安装NFS v4.0文件服务器
如何在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-utils
nfs-utils软件包为内核NFS服务器和相关工具提供了守护程序,与大多数用户使用的传统Linux NFS服务器相比,该守护程序提供了更高的性能。portmap
portmap软件包应该安装在任何充当使用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,请确保在客户端和服务器上都启动以上服务。