CentOS 7系统平台下网络文件系统NFS高级设置

98 篇文章 1 订阅
82 篇文章 3 订阅

CentOS 7系统平台下网络文件系统NFS高级设置

前言

NFS(Network File System)即网络文件系统,是一款通过网络方式共享文件系统的通用共享解决方案。NFS目前有三个版本:NFSv2、NFSv3、NFSv4。CentOS 7.2默认使用的是版本4提供网络文件系统共享服务,NFS监听在TCP 2049端口。
有关NFS的概述说明以及配置部署可以查看我的另一篇文章:运维之网络文件系统NFS介绍与部署(CentOS 7.2版本)

NFS所需服务


在CentOS 7 系统平台上提供了NFS服务,该操作系统平台提供了很多有用的服务进程,以下进程为NFS共享过程中需要相互协助工作:

  • nfs:NFS服务器主程序;
  • nfslock:为NFS文件系统提供锁机制;
  • rpcbind:提供地址与端口注册服务;
  • rpc,mountd:该进程被NFS服务用来处理NFSv2与NFSv3的mount请求;
  • rpc.nfsd:动态处理客户端请求;
  • lockd:内核线程,在服务器端与客户端运行,用来实现NLM网络协议,允许NFSv2与NFSv3客户端对文件加锁;
  • rpc.statd:该进程实现网络状态监控(NSM)协议;
  • rpc.rquotad:该进程提供用户配额信息。
  • rpc.idmapd:提供NFSv4名称映射,/etc/idmapd.conf必须被配置。


##NFS客户端配置


若要想客户端主机可以访问并使用服务器所提供的共享目录,可以通过mount命令挂载NFS共享,格式如下:

mount -t nfs -o 选项 服务主机:/服务器共享目录 /本地挂载目录

具体挂载选项如下:

  • Intr:当服务器宕机时允许中断NFS请求。
  • nfsvers=version:指定使用哪个版本的NFS协议,version可以是2、3或4。
  • noacl:关闭acl,仅与老版本操作系统兼容时使用。
  • nolock:关闭文件锁机制,仅用来连接老版本的NFS服务器。
  • noexec:在挂载的文件系统中屏蔽可以执行的二进制数据程序。
  • port=num:指定NFS服务器端口号,默认num为0,此时如果远程NFS进程没有在rpcbind注册端口信息,则使用标准NFS端口号(TCP2049端口)。
  • rsize=num:设置最大数据块调整NFS读取数据的速度,num单位为字节。
  • wsize=num:设置最大数据块大小调整NFS写入数据的速度,num单位为字节。
  • tcp:使用tcp协议挂载
  • udp:使用udp协议挂载。


##使用NFS命令工具


NFS软件还有一些命令工具,这些工具可以在不重启服务的情况下,应用新的共享配置,查看NFS的连接状态,查询实时的端口注册信息。

(1)exportfs命令
当nfs服务启动时,/usr/sbin/exports 命令会自动启动并读取/etc/exports 文件,通过控制rpc.mount处理挂载请求,然后rpc.nfsd使文件系统对远程主机可见,手动运行exportfs命令允许root在不重启NFS服务的情况下选择共享或取消部分共享目录。

  • -r:重新读取/etc/exports文件
  • -a:全部共享或全部取消共享
  • -u:取消共享,与-a使用可以全部取消共享
  • -v:显示详细信息


(2)nfsstat命令

查看NFS共享状态

选项:

  • -s,–server:不使用该参数时,默认显示服务器端与客户端的状态,使用该参数仅显示服务器端状态
  • -c,–client:仅显示客户端的参数
  • -n,–nfs:仅显示nfs状态,默认显示NFS与RPC信息
  • -num:num为数字2、3或4,仅显示NFS版本为num的状态信息
  • -m:显示挂载信息
  • -l:以列表形式显示信息

(3)rpcinfo命令

生成RPC信息报表
选项:
* -m:显示指定主机rpcbind操作信息表
* -p:显示指定主机RPC注册信息
* -s:显示指定主机所有注册RPC的信息程序,不指定主机时默认显示本机信息


在防火墙(或云主机安全组)后端运行NFS

NFS需要向rpcbind动态注册端口信息,这将导致运行在防火墙后端的NFS服务器无法进行防火墙的配置。因为端口信息是动态随机生成的,防火墙可以开放某些固定端口询问客户端进行配置,但无法设置随机端口规则。

这时需要配置固定的端口号,需要编辑/etc/sysconfig/nfs 配置文件,配置固定的端口号。
注意端口不可以指定当前已经被其他服务占用的端口号。
固定的端口配置为:


  • MOUNTD_PORT=端口号:设置mountd程序端口号
  • LOCKD_TCPPORT=端口号:设置tcp的lockd程序端口号
  • LOCKD_UDPPORT=端口号:设置udp的lockd程序端口号
  • STATD_PORT=端口号:设置rpc.statd程序端口号

    配置完端口号,就需要对防火墙(或云服务器的安全组)进行配置相应的规则。此外,还需要为NFS开启TCP和UDP的2049端口,以及TCP与UDP的111端口,111端口被rpcbind所使用。


##常见问题分析

1. 权限问题:
在配置文件中设置共享目录为可读写时,却忘记修改相应系统层面的文件及目录权限,从而导致客户端实际挂载使用无写权限。另外默认客户端使用root访问NFS共享进行读写操作时,服务器会自动把root权限转换为服务器本身的nobody账号,导致root无法进行相关的操作,如果要保留root权限,则要在配置文件中添加bo_root_squash选项。

2. rpcbind问题
在没有启动rpcbind的情况下,启动nfs服务时系统会报错,是由于nfs等相关服务都依赖于rpcbind服务,这样就需要先确保rpcbind服务当前已经启动。可以使用rpcinfo -p命令查看基于RPC协议的服务是否成功与rpcbind通信,并注册信息。

3. 兼容性问题
在挂载时,注意使用的nfs的版本

4. 挂载错误
检查是否有相依的挂载点

5. 防火墙错误
当确认nfs服务器端与客户端是可以进行网络通信的情况下,报服务器错误或无法连接的错误,那就是防火墙或是安全组的配置问题,需要检查并修改配置。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值