Linux 系统下的NFS网络文件系统配置

1. 服务器端配置步骤

1.1 安装rpcbind和nfs-utils包

# yum install rpcbind nfs-utils

1.2 启动nfs服务

# service rpcbind start
# service nfs start

1.3 修改nfs服务随系统启动

# chkconfig --level 2345 rpcbind on
# chkconfig --level 2345 nfs on

1.4 固定nfs随机生成的端口

修改/etc/sysconfig/nfs文件内容

LOCKD_TCPPORT=32890
LOCD_UDPPORT=32890
MOUNTD_PORT=32888
STATD_PORT=32889

1.5 配置exports文件

修改/etc/exports文件内容

/oadata 11.8.8.0/24(rw,sync,all_squash)
参数 说明
rw 读写权限,ro为只读权限
sync 数据同步写入磁盘,async数据先写入缓冲区,再写入磁盘
all_squash 将远程访问的所有普通用户及所属组映射为匿名用户和用户组(nobody),默认参数为no_all_squash
root_squash 将root用户及所属组映射为匿名用户和用户组(默认参数),相反为no_root_squash
anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
anongid=xxx 将远程访问的所有用户组都映射为匿名用户组,并指定该用户组为本地用户组账户(GID=xxx)

1.6 生效

使用命令exportfs使服务端配置生效。该命令可在NFS配置发生变化时不需要重启NFS服务即时生效。

参数 说明
-a 全部挂载或卸载/etc/exportfs中的全部内容
-r 重新读取/etc/exportfs中的信息
-u 卸载单一目录(和-a一起使用为卸载/etc/exportfs中所有的目录
-v 在exportfs的时候,将详细信息输出到屏幕上

2. 客户端挂载NFS操作

2.1 创建目录

# mkdir /oadata

2.2 测试与服务端通讯

# telnet 服务端IP 111

注意:

2.3 查看服务端分享的目录

# showmount -e 服务端IP

2.4 挂载网络文件系统

# mount -t nfs -o vers=4,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=50,intr,retrans=3,bg 11.8.8.110:/oadata /oadata
参数 说明 参数设置
vers NFS协议版本,根据实际情况选择3或4 在高可靠性环境中推荐使用NFS v3
proto 传输协议方式,根据实际情况选择tcp或udp tcp
rsize 读时传输块大小,单位为字节 rhel6推荐为1048576,rhel7推荐为16384
wsize 写时传输块大小,单位为字节 推荐1048576
timeo 超时重传时间,单位为十分之一秒 推荐50
retrans 超时重试次数 3

2.5 验证

# mount

3. NFS常见问题处理

3.1 AIX系统挂载Linux系统NFS问题处理

当客户端为AIX,服务端为Linux,此时挂载NFS需要在AIX上设置参数:

# nfso -o nfs_use_reserved_port=1

3.2 客户端用户修改文件权限问题处理

主机 用户 用户id
服务端S user 1000
客户端A user1 1000
客户端B user2 1000

此时,客户端A见到的文件属主为user1;客户端B看到的文件属主为user2,此时user2对user1生成的文件进行修改时,没有权限问题;
当user1与user2的id不一致时,user1产生的文件,user2无法进行修改。

解决方法:
建议服务端与所有客户端创建一个nfsgrp的组,并且id保持一致,然后将user1与user2添加至该组。那么user1产生的文件默认权限

Editing is enabled. Use the "Save changes" button below the editor to commit modifications to this file.