Chinaunix首页 | 论坛 | 博客
  • 博客访问: 441274
  • 博文数量: 90
  • 博客积分: 20016
  • 博客等级: 上将
  • 技术积分: 1035
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-31 15:24
文章分类

全部博文(90)

文章存档

2011年(9)

2010年(80)

2006年(1)

分类:

2010-04-08 17:03:35

在客户端上执行 nfsstat -n 命令,以显示 NFS 版本。例如,输出

[root@nas bin]# nfsstat -n    #显示nfsd的版本
Server nfs v3:
null       getattr    setattr    lookup     access     readlink   
0       0% 25967451 19% 627992  0% 13020231  9% 16022769 11% 190     0% 
read       write      create     mkdir      symlink    mknod      
50877114 37% 13603627 10% 4218978  3% 19815   0% 0       0% 0       0% 
remove     rmdir      rename     link       readdir    readdirplus
3376059  2% 24921   0% 209243  0% 3229    0% 0       0% 275524  0% 
fsstat     fsinfo     pathconf   commit     
182     0% 0       0% 0       0% 5757974  4% 

表示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

阅读(3791) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~