NFS mount失败及优化
来源:互联网 发布:索尼和夏普电视 知乎 编辑:程序博客网 时间:2024/04/29 07:31
http://blog.sina.com.cn/s/blog_451b643001014otn.html
- nfs mount出错整理:
mount -t nfs -o nolock 192.168.1.99:/pub/share /mnt
出现RPC: Timed out 原因整理:
A.防火墙,SELinux
B.iptables规则(或者直接关掉防火墙)
C. /etc/export 是否正确(读写权限,网段)
D.server和client的/etc/resolv.conf,这一点往往被忽略。当服务器和客户端都在内网,dns服务器不可用但是又设置了dns时,因为系统搜索dns server而使nfs mount失败,这时候应该将dnsserver用“;”注释掉 - nfs: server 192.168.1.99 not responding
造成NFS没有回应的原因有3个,分别为网络拥塞、服务器过载和网卡丢包。一台设备使用一个nfs服务器一般不会出现服务器过载情况,一般是网络拥塞或网卡丢包。nfs over tcp比较稳定,nfs over udp速度较快。通过proto=tcp可以选择tcp或udp传输。如果ifconfig发现网卡丢包的话,还是首先解决网络问题是上策。 - NFS:server not responing ,still trying
原因是服务器和设备网卡传输速率冲突,使得设备需要大量时间复制大量数据包,其实如果设备的网卡速率够大,则不用分那么多包,也不会冲突。比如用设备挂载服务器出现无响应,但是用另外一台电脑挂载就很顺畅时,就很有可能是这个问题。这时需要调整rsize=1024,wsize=1024参数。
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.99:/pub/share /mnt
nfs 优化和安全 http://blog.chinaunix.net/uid-83572-id-3330.html
在客户端上执行 nfsstat -n 命令,以显示 NFS 版本。例如,输出
表示nfs v3。在服务器上使用 rpcinfo -p | grep -iE "service|NFS" 命令,显示服务器上可使用的 NFS
版本。例如,输出
program vers proto port service
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
150001 1 udp 719 pcnfsd
150001 2 udp 719 pcnfsd
150001 1 tcp 720 pcnfsd
150001 2 tcp 720 pcnfsd
表示服务器可提供 NFS PV2 和 NFS PV3。
nfs server出现not responding, still trying讯息
状况:
在RedHat Enterprise Linux AS3.0的版本中,常会发生
Jan 31 15:01:46 nfs: server linux15 not responding, still trying
Jan 31 15:01:46 nfs: server linux15 OK
nfs server没有响应,然后又OK,这是发生在同一秒的事,而且会连续发生
推测
1. 网络环境有问题
2. 负载过大
如网络环境有问题,需对网络软硬件做检测
如为负载过大问题,可尝试增加服务的instance
步骤
1. 编辑NFS启动档: vi /etc/rc.d/S60nfs(较次) 或 /etc/sysconfig/nfs(优先),找出RPCNFSDCOUNT变数
nfs: server xxx.xxx.xxx.xxx not responding, still trying的现象是mount正常,但PING的时候丢包率比较
大,拷贝或运行一些数据量大于1K的程序将马上出现这个提示,然后几乎无响应;
这个问题的解决办法如下:
1、使用加参数的办法:mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/
2、不通过HUB,直接使用交叉线连接开发板和宿主机
mount -t nfs -o nolock,nosuid,proto=tcp,rsize=1024,wsize=1024,intr,rw,bg,soft 10.0.0.6:/soft /nfs
-t nfs : 指的是 mount文件系统的类型 这里是 nfs 文件系统
-o : 指的是 需要给mount的文件系统指定特定选项
nolock :
nosuid : 指定不允许通过该安装执行 setuid 和 setgid 程序
proto : 指定传输协议
rsize : 设置读缓冲区为 n 个字节。缺省值是 8192
wsize : 设置写缓冲区大小为 n 个字节。缺省值是 8192
intr : 在硬安装时允许键盘中断。
rw : 指定安装的文件是可读/写的。rw 是缺省值。
bg : 如果第一次尝试是失败的,试图在后台安装。缺省值是 fg (如果第一次尝试是失败的,试图在前台中安装)
soft : 如果服务器不响应,返回错误
在服务器端,一定要确保有足够的 NFS 内核线程来处理所有客户机。在默认情况下,只启动一个线程,但是 Red Hat 和 Fedora 系统会启动 8 个线程。对于繁忙的 NFS 服务器,应该提高这个数字,比如 32 或 64。可以用 nfsstat -rc 命令评估客户机,了解是否有阻塞的现象,这个命令显示客户机远程过程调用(RPC)统计数据。清单 5 显示一个 Web 服务器的客户机统计数据。
清单 5. 显示 NFS 客户机的 RPC 统计数据
# nfsstat -rc
Client rpc stats:
calls retrans authrefrsh
1465903813 0 0
第二列 retrans 是零,这表示从上一次重新引导以来没有出现需要重新传输的情况。如果这个数字比较大,就应该考虑增加 NFS 内核线程。设置方法是将所需的线程数量传递给 rpc.nfsd,比如 rpc.nfsd 128 会启动 128 个线程。任何时候都可以进行这种设置。线程会根据需要启动或销毁。同样,这个设置应该放在启动脚本中,尤其是在系统上启用 NFS 的脚本。
加强NFS安全的方法:
1、合理的设定/etc/exports中共享出去的目录,最好能使用anonuid,anongid以使MOUNT到NFS SERVER的CLIENT仅仅有最小的权限,最好不要使用root_squash。
2、使用IPTABLE防火墙限制能够连接到NFS SERVER的机器范围
iptables -A INPUT -i eth0 -p TCP -s 10.0.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 10.0.0.0/24 --dport 111 -j ACCEPT
3、为了防止可能的Dos攻击,需要合理设定NFSD 的COPY数目。
linux中的NFSD的COPY数目是在/etc/rc.d/init.d/nfs这个启动文件中设置的, RPCNFSDCOUNT=8 默认是8个NFSD,对于这个参数的设置一般是要根据可能的CLIENT数目来进行设定的,和WSIZE、RSIZE一样也是要通过测试来找到最近的数值。
4、修改/etc/hosts.allow和/etc/hosts.deny达到限制CLIENT的目的
/etc/hosts.allow
portmap: 10.0.0.0/255.255.255.0 : allow
/etc/hosts.deny
portmap: ALL : deny
- NFS mount失败及优化
- nfs mount失败解决方案
- nfs及mount的使用
- 开启nfs后mount失败的原因!
- mount命令+nfs挂载失败原因
- mount命令+nfs挂载失败原因
- mount命令+nfs挂载失败原因
- mount命令+nfs挂载失败原因
- NFS客户端mount挂载优化
- nfs mount 失败,NFS mount failed, reason given by server: Permission denied 的解决办法
- linux的NFS及mount使用方法
- Linux的nfs及mount使用方法
- linux的NFS及mount使用方法 |
- linux的NFS及mount使用方法
- mount:nfs
- NFS & mount
- mount NFS
- NFS mount
- php中的PDO使用详解
- 关于苹果APNS推送机制中各生成文件(CSR、证书、Provisioning文件)的关系的梳理,以及各种坑
- UML类图中会涉及到的一些概念、关系
- poj1603 floyd算法入门
- Effective.C 读书笔记03
- NFS mount失败及优化
- 按位 BEQ(相等跳转) bne(不相等跳转) 手札
- xcode6下使用autolayout+sizeclass实践
- php帮助
- 约瑟夫环
- [Python]Eclipse安装配置PyDev插件
- STAF/STAX 安装配置
- MapReduce Design Patterns(7、输入输出模式)(十三)
- 使用 Google V8 引擎开发可定制的应用程序