解决NFS client配置rszie和wsize不生效

基础环境信息:

[[email protected] /]# cat /etc/redhat-release 
CentOS release 6.7 (Final)
[[email protected] /]# uname -r
2.6.32-573.el6.x86_64
[[email protected] /]#

默认挂载属性为:

[[email protected] /]# showmount -e nfs01
Export list for nfs01:
/data 172.16.1.0/24
[[email protected] /]# mount -t nfs nfs01:/data /mnt
[[email protected] /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       6.9G  1.8G  4.7G  28% /
tmpfs           238M  4.0K  238M   1% /dev/shm
/dev/sda1       190M   36M  145M  20% /boot
nfs01:/data     6.9G  1.7G  4.8G  27% /mnt
[[email protected] /]# grep mnt /proc/mounts
nfs01:/data/ /mnt nfs4 rw,sync,relatime,vers=4,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.61,minorversion=0,local_lock=none,addr=172.16.1.31 0 0
[[email protected] /]#  ##tcp协议默认的rszie和wsize为65536

修改rsize和wsize:

[[email protected] nfsd]# umount /mnt
[[email protected] nfsd]# mount -t nfs -o rsize=131072,wsize=131072 nfs01:/data /mnt  
[[email protected] nfsd]# grep mnt /proc/mounts
nfs01:/data/ /mnt nfs4 rw,relatime,vers=4,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.61,minorversion=0,local_lock=none,addr=172.16.1.31 0 0
[[email protected] nfsd]#   ##可以看到修改后并没有生效

使用tcpdump命令抓包查看过程:

[[email protected] ~]# tcpdump -nn -i eth1  -w wireshark.cap -s 0

使用wireshark对包进行分析

发现rsize和wsize是和服务端协商,并由服务端答复而来的(NFS V4 compound reply包)。

查阅相关资料得知:NFS 服务器在决定默认的最大读写块大小时考虑到内存占用情况,每个 NFS 内核线程最多只使用 1/4096 的物理内存大小,对于 UDP 来说,由于一个 UDP 包最大才 64KB,因此使用 UDP 协议的 NFS 读写块大小最大不超过 48KB,而 kernel 中则直接限制为 32KB 了;而使用 TCP 协议的 NFS 由于没有这个限制允许更大的读写块大小,但 Linux kernel 还是将其限制为 1MB 了。对于物理内存超过 4GB 的机器才使用最大的 1MB 读写块大小。记录这个大小的文件为/proc/fs/nfsd/max_block_size.

查看服务端该文件的大小:

[[email protected] ~]# cat /proc/fs/nfsd/max_block_size 
65536
[[email protected] ~]#

找到问题的所在了!然后我做了如下的修改

1、停止nfs服务

[[email protected] ~]# /etc/init.d/nfs stop
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Shutting down RPC idmapd:                                  [  OK  ]
[[email protected] ~]#

2、修改max_block_size

[[email protected] ~]# echo 1048576 >  /proc/fs/nfsd/max_block_size 
[[email protected] ~]# cat /proc/fs/nfsd/max_block_size
1048576
[[email protected] ~]#  ##直接改为最大1M。

3、启动nfs服务

[[email protected] ~]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[[email protected] ~]#

4、客户端进行挂载

[[email protected] nfsd]# mount -t nfs -o rsize=131072,wsize=131072 nfs01:/data /mnt
[[email protected] nfsd]# grep mnt /proc/mounts
nfs01:/data/ /mnt nfs4 rw,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.61,minorversion=0,local_lock=none,addr=172.16.1.31 0 0
[[email protected] nfsd]#   ##修改成功!

问题解决!

时间: 2024-11-05 14:45:41

解决NFS client配置rszie和wsize不生效的相关文章

NFS完整配置

NFS介绍(关键字:共享) 1.什么是NFS? (安装软件:nfs-utils.rpcbind)NFS是Network File System的缩写,中文意思是网络文件系统.它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录,NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器端要共享的数据目录挂载到NFS客户端,本地系统中(就是某一个挂载点下).在NFS客户端,可以打开挂载的'共享目录':这就完成NFS的共享任务. 2.相同功能的

NFS客户端配置为开机自动挂载报错(二)

NFS客户端配置为开机自动挂载时,系统启动报错. 报错信息类似: mount: mount: mount to NFS server '172.16.1.254' failed: mount: System Error: No route to host. 原因:网络启动后需要对网络内路由表进行"学习".在未完成路由表学习之前启动netfs服务会报错. 解决方法:延后netfs启动时间.(延时时间以实际情况为准,建议30秒) 示例: 修改:/etc/init.d/netfs脚本 在如下

Centos6.7下NFS的配置安装

一 NFS集群环境搭建准备 1.1        准备好NFS服务器 二 开始安装NFS 2.1 环境信息确认 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [[email protected] ~]# uname -r 2.6.32-573.el6.x86_64 [[email protected] ~]# uname -m x86_64 2.2 NFS软件列表 查看系统是否安装: [[ema

NFS详细配置过程

在公司主要是需求是共享服务,但是没有多余的服务器来做共享平台,现在利用一台测试机来做NFS服务器,充分利用服务器的磁盘资源       O(∩_∩)O哈哈~ 在公司安装成功后,回家后,参考博友的自己也来写一个详细的安装过程.方便以后温故. 为什么要用NFS NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,

NFS服务器端配置

服务器端配置1 创建共享目录# mkdir /home/share# chown nobody.nogroup /home/share2 创建或修改/etc/exports 配置文件这个文件的内容非常简单,每一行由抛出路径,客户名列表以及每个客户名后紧跟的访问选项构成:[共享的目录] [主机名或IP(参数,参数)] 其中参数是可选的,当不指定参数时,nfs将使用默认选项.默认的共享选项是 sync,ro,root_squash,no_delay.当主机名或IP地址为空时,则代表共享给任意客户机提

DRBD+HeartBeat+NFS:配置NFS的高可用

说明: 上周研究了DRBD的安装和配置,今天研究下DRBD的第一个应用,利用DRBD+HeartBeat+NFS:配置NFS的高可用,作为集群中的底端共享存储 NFS主要存储WEB服务器上的程序代码和一些图片文件 参考: http://network.51cto.com/art/201010/230237_all.htm http://showerlee.blog.51cto.com/2047005/1212185 环境: [[email protected] ~]# cat /etc/issu

Linux6/Centos6 NFS详细配置

为什么要用NFS NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. NFS最早是由Sun公司发展出来的, 简单的来说:它就是是可以透过网络,让不同的主机.不同的操作系统可以共享存储.以下是NFS最显而易见的好处: 1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过

Ubuntu 12.04下NFS安装配置图解

转载于:http://www.linuxidc.com/Linux/2013-08/89154.htm 用网线将主机与开发板连接起来,主机开启nfs服务后,就可以像tftp一样传文件到开发板了,有的人会问,不如直接用tftp好了,但是nfs还可以挂载根文件系统啊!我等屌丝先这样比较吧(本文主要是记录安装使用步骤)! 相关阅读: Ubuntu 12.04安装NFS server  http://www.linuxidc.com/Linux/2012-09/70728.htm NFS服务器安装配置实

Ubuntu 13.04 & 开发板 ---- NFS服务配置

Ubuntu sudo apt-get install nfs-kernel-server sudo apt-get install rpcbind sudo vim /etc/exports /home/xxx *(rw, sync, no_root_squash) sudo /etc/init.d/nfs-kernel-server restart sudo /etc/init.d/rpcbind restart 开发板 mount -o nolock xxx:/home/xxx /mnt/