一、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常见问题及参数相关推荐

  1. nfs client高性能参数设置

    1.背景 Linux nfs客户端对于同时发起的NFS请求数量进行了控制,若该参数配置较小会导致IO性能较差.可以如下命令配置该参数: cat /proc/sys/sunrpc/tcp_slot_ta ...

  2. 【共享服务】nfs常见问题处理

    一.nfs服务端防火墙策略配置 1.问题描述 启用nfs服务端防火墙之后,客户端无法进行showmount及挂载操作 服务端开启防火墙 ufw allow 22 ufw enable 客户端showm ...

  3. NFS挂载参数详解及使用建议

    NFS常用挂载参数 1. NFS各版本通用参数 参数 说明 使用建议 soft/hard 软挂载方式挂载系统,若NFS请求超时,则客户端向调用程序返回错误:如果使用硬连接方式则客户端一直重新请求直至成 ...

  4. 在Ubuntu Server上添加NFS共享文件夹

    Synology NAS已搭建好NFS服务 Ubuntu上安装NFS命令支持 sudo apt install nfs-common Ubuntu上先创建要映射的文件夹 sudo mkdir /tes ...

  5. 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 ...

  6. [转]讲解安装Ubuntu nfs配置系统

    转自:http://os.51cto.com/art/201001/176511.htm 对大家推荐很好使用的nfs服务系统之前,像让大家对Ubuntu nfs服务系统有所了解,然后对Ubuntu n ...

  7. AIX 访问Linux NFS共享错误案例

    AIX 访问Linux NFS共享错误案例 系统环境: 操作系统: RedHat EL4.AIX 5.3 错误现象: Linux 作为NFS Server ,AIX host 作为NFS Client ...

  8. Ubuntu NFS服务器的配置

    大部分内容转自文章: http://blog.csdn.net/yangzhu1982/article/details/6265175 这里对NFS服务器就不多加介绍,想要配置该服务器的朋友定然会知道 ...

  9. centos6.5 搭建NFS 服务

    Nfs服务 挂载命令: mount 源 目标 mount ip地址 本地地址 mount –t 192.168.1.115:/video /video 1 先开启rpc服务 2 启动nfs服务 向rp ...

最新文章

  1. antd 能自适应吗_ACC自适应巡航能当自动驾驶用吗?答:不能
  2. 面向对象 面向你(二)
  3. Scala多线程:使用线程池Executors提交Runnable任务代码示例
  4. 并查集 - 除法求值
  5. java 扑克牌排序_java 怎么写compareto方法实现扑克牌排序
  6. ffplay的快捷键以及选项
  7. python语言是一门编程语言_python是一门怎样的编程语言?老男孩python入门
  8. js 随机1-10随机数_寻找随机的错误-一个真实的故事
  9. 做技术,未来出路在哪?
  10. 用matlab进行边缘检测,利用MATLAB进行数字图像的边缘检测
  11. python基础3-运算符总结_位操作符_优先级问题
  12. docker镜像创建
  13. 百度前端技术学院---vue动态数据绑定-3
  14. Permute 3.6.5 小巧便捷的多媒体文件格式转换器
  15. 组态软件与PLC远程控制的配置
  16. 《Arduino》开发 之 用 u8g2 库 给 0.96寸OLED 刷bmp图片,OLED图片取模
  17. 写给迷茫中的程序员兄弟:如何打造最快的职场晋升神话
  18. vue-seamless-scroll大屏抽奖滚动动画实例
  19. VUE+Nodejs 商城项目练习项目(前台购物)
  20. beego使用API自动化文档生成swagger时,routers目录下无法生成commentsRouter_controllers.go文件

热门文章

  1. matlab车牌识别字符切割,车牌识别字符分割问题
  2. emnu8086快速指南
  3. AD10 PCB板的绘制步骤
  4. 中科大刘淇:从自适应学习的角度理解AI+教育
  5. 【MySQL】过年没有回老家,在出租屋里整理了一些思维导图
  6. web渗透测测试(sqlmap)
  7. 【Unity】实现镜头虚化模糊效果(Blur):camera模糊,UGUI模糊,FairyGUI模糊效果
  8. 李宏毅-机器学习深度学习-第六讲-深度学习介绍
  9. springboot 设置指定包的日志级别
  10. Vibration API