NFS常见问题及参数
一、nfs客户端服务端部署
省略
二、nfs工作原理
1、
NFS:Network File System 网络文件系统,基于内核的文件系统。通过使用
NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(Remote Procedure Call Protocol
远程过程调用)实现
2、
因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口并不固定,客户端要知道NFS服务器端的相关端口才能建立连接进行数据传输,而RPC就是用来统一管理NFS端口的服务,并且统一对外的端口是111,RPC会记录NFS端口的信息,如此我们就能够通过RPC实现服务端和客户端沟通端口信息。PRC最主要的功能就是指定每个NFS功能所对应的port
number,并且通知客户端,记客户端可以连接到正常端口上去。在启动NFS SERVER之前,首先要启动RPC服务(即portmap或rpcbind服务,下同)否则NFS
SERVER就无法向RPC服务区注册,另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失。因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册。一般修改NFS配置文档后,是不需要重启NFS的,直接在命令执行/etc/init.d/nfs
reload或exportfs –rv即可使修改的/etc/exports生效。
三、常见参数
ro:默认选项,以只读的方式共享。rw:以读写的方式共享。root_squash:将客户端使用的是root用户时,则映射到NFS服务器的用户为NFS的匿名用户(nfsnobody)。no_root_squash:将客户端使用的是root用户时,则映射到NFS服务器的用户依然为root用户。all_squash:默认选项,将所有访问NFS服务器的客户端的用户都映射为匿名用户,不管客户端使用的是什么用户。anonuid:设置映射到本地的匿名用户的UIDanongid:设置映射到本地的匿名用户的GIDsync:默认选项,保持数据同步,数据同步写入到内存和硬盘。async:异步,先将数据写入到内存,在将数据写入到硬盘。secure: 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);insecure:允许客户端从大于1024的tcp/ip端口连接服务器subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) no_subtree_check 和上面相对,不检查父目录权限wdelay 如果多个用户要写入NFS目录,则归组写入(默认) no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 Hide 在NFS共享目录中不共享其子目录 no_hide 共享NFS目录的子目录
四、常见命令
1、检查共享目录信息
showmount -e nfs服务端IP地址
2、查看挂载目录
df -h
3、nfs服务端查看端口映射情况
rpcinfo -p localhost
4、开机自动挂载写法
[root@web01 test]$ cat /etc/fstab
# 添加如下信息
10.0.0.1:/data /mnt nfs defaults 0 0
5、手动挂载命令
mount -t nfs ip:/data /data
6、重新加载配置文件
systemctl reload nfs-server
或者
exportfs -avr
7、查看挂载是报错的具体信息
mount -t nfs -vvvv server.example.com:/share /mnt
五、常见故障分析
1、排查nfs和客户端防火墙安全组配置
ufw ipables firewalld
2、看nfs服务端的ip能否ping通长长访问
3、查看客户端是否正常启动
4、showmount -e nfs服务端ip查看是否能够查看nfs服务端信息
5、使用mount -t nfs -vvvv server.example.com:/share /mnt查看挂载报错的具体问题
5、nfs服务端未开放相关服务组件访问端口
查看服务端rpc状态信息,其中mountd 和nlockmgr
服务启动端口不固定(可通过重启rpcbind和nfs-server服务前后对比打印信息)
[root@iZ8vb1o2lqhuz4bjn2ton6Z ~]# rpcinfo -pprogram vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 2 udp 111 portmapper100005 1 udp 20048 mountd100005 1 tcp 20048 mountd100005 2 udp 20048 mountd100005 2 tcp 20048 mountd100005 3 udp 20048 mountd100005 3 tcp 20048 mountd100003 3 tcp 2049 nfs100003 4 tcp 2049 nfs100227 3 tcp 2049 nfs_acl100003 3 udp 2049 nfs100003 4 udp 2049 nfs100227 3 udp 2049 nfs_acl100021 1 udp 40286 nlockmgr100021 3 udp 40286 nlockmgr100021 4 udp 40286 nlockmgr100021 1 tcp 33983 nlockmgr100021 3 tcp 33983 nlockmgr100021 4 tcp 33983 nlockmgr
对比nfs的端口使用情况
服务名 端口号 协议 说明
nfs 2049 tcp/udp 固定端口
portmapper 111 tcp/udp 固定端口
mountd 20048 tcp/udp 端口可以修改
nlockmgr 42315 tcp/udp 端口可以修改
更改相关端口为固定端口mountd和nlockmgr
更改mountd 服务端口为20048
echo “mountd 20048/tcp” >> /etc/services
echo “mountd 20048/udp” >> /etc/services更改nlockmgr 服务端口为42315
echo “fs.nfs.nlm_udpport=42315” >> /etc/sysctl.conf
echo “fs.nfs.nlm_tcpport=42315” >> /etc/sysctl.conf
sysctl -p
方通端口2049 、111 、20048 、42315
6、案例:在云上部署nfs服务端然后使用云上的服务端可以正常访问;但是使用idc线下服务器挂载云上的nfs服务端却始终失败,nfs服务端已放开所有端口ip访问
具体报错如下:
[root@node-01 ~]# mount -t nfs -vvvv 112.43.5.67:/data /data
mount.nfs: timeout set for Sat May 7 22:52:28 2020
mount.nfs: trying text-based options 'vers=4.1,addr=112.43.5.67,clientaddr=10.0.0.94'
mount.nfs: mount(2): Operation not permitted
mount.nfs: trying text-based options 'addr=112.43.5.67'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 8.142.149.27 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 8.142.149.27 prog 100005 vers 3 prot UDP port 20048
mount.nfs: mount(2): Permission denied
mount.nfs: Operation not permitted
分析原因:
由于nfs默认的客户端访问是secure只能允许客户端通过小于1024的特权端口连接服务端导致的权限拒绝
解决办法:
在服务端配置文件/etc/exports中配置insecure
允许客户端使用大于1024端口访问服务端
测试可以正常访问
NFS常见问题及参数相关推荐
- nfs client高性能参数设置
1.背景 Linux nfs客户端对于同时发起的NFS请求数量进行了控制,若该参数配置较小会导致IO性能较差.可以如下命令配置该参数: cat /proc/sys/sunrpc/tcp_slot_ta ...
- 【共享服务】nfs常见问题处理
一.nfs服务端防火墙策略配置 1.问题描述 启用nfs服务端防火墙之后,客户端无法进行showmount及挂载操作 服务端开启防火墙 ufw allow 22 ufw enable 客户端showm ...
- NFS挂载参数详解及使用建议
NFS常用挂载参数 1. NFS各版本通用参数 参数 说明 使用建议 soft/hard 软挂载方式挂载系统,若NFS请求超时,则客户端向调用程序返回错误:如果使用硬连接方式则客户端一直重新请求直至成 ...
- 在Ubuntu Server上添加NFS共享文件夹
Synology NAS已搭建好NFS服务 Ubuntu上安装NFS命令支持 sudo apt install nfs-common Ubuntu上先创建要映射的文件夹 sudo mkdir /tes ...
- linux ubuntu 安装samba ftp nfs tftp,Ubuntu配置TFTP和NFS和samba服务配置.doc
Ubuntu配置TFTP和NFS和samba服务配置 配置tftp服务的步骤: 1.安装相关软件包:tftpd(服务端),tftp(客户端),xinetd sudo apt-get install t ...
- [转]讲解安装Ubuntu nfs配置系统
转自:http://os.51cto.com/art/201001/176511.htm 对大家推荐很好使用的nfs服务系统之前,像让大家对Ubuntu nfs服务系统有所了解,然后对Ubuntu n ...
- AIX 访问Linux NFS共享错误案例
AIX 访问Linux NFS共享错误案例 系统环境: 操作系统: RedHat EL4.AIX 5.3 错误现象: Linux 作为NFS Server ,AIX host 作为NFS Client ...
- Ubuntu NFS服务器的配置
大部分内容转自文章: http://blog.csdn.net/yangzhu1982/article/details/6265175 这里对NFS服务器就不多加介绍,想要配置该服务器的朋友定然会知道 ...
- centos6.5 搭建NFS 服务
Nfs服务 挂载命令: mount 源 目标 mount ip地址 本地地址 mount –t 192.168.1.115:/video /video 1 先开启rpc服务 2 启动nfs服务 向rp ...
最新文章
- 2015第36周一高效程序员的45个习惯
- [收集] C++ memset ,memcpy 和strcpy 的区别
- phpstrtotime()对于31日求上个月有问题
- Android --- 从相册中选择图片或者拍着选择图片遇到的问题
- jeecg框架alert消息样式
- c语言程序设计扫雷游戏实验报告,C语言程序设计扫雷游戏实验报告.pdf
- 093:QuerySet API详解-QuerySet转换为SQL的条件
- 下拉词优化昔年谈小企业互联网推广该怎么做!
- HCIE-Security Day3:防火墙特征和组网方式
- ISO 9000 质量认证
- PaddleOCR手写体训练摸索
- delphi random_delphi产生随机数
- Circular Local MiniMax
- 揭秘消费金融之反欺诈
- YOLOV5出现.acceptable suffix is [‘.pt‘]的错误||不使用权重报错
- IntelliJ IDEA设置护眼浅绿色背景及文字大小
- 路由器设备选型参照天梯
- Organization Chart
- 《程序员》杂志社 2010SD软件开发2.0大会随笔
- 在线dockerfile 语法检测