NFS相关问题

环境:CentOS 6.5 64bit

在一台客户端机上执行mount命令挂载nfs,结果报如下错误:

1
2
3
4
5
6
mount: wrong fs type, bad option, bad superblock on 192.168.0.10:/bak,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

是因为我的客户端机器没有安装nfs-utils,执行如下命令:

1
yum -y install nfs-utils

之后再挂载,正常。


在客户端和服务端使用命令:showmount -e 10.10.209.148  报错

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

解决方法:

被访问的NFS服务器上的防火墙没有添加规则,向iptables里面添加以下查看的所有端口即可(目前解决的方法,当然你也可以关闭防火墙,不过这样是比较不安全的,如果你的nfs作用不大,建议你另选别的应用来替代吧!毕竟开那么多的端口,比较不安全呀!)

#vim /etc/sysconfig/iptables

#service iptables stop  //关闭防火墙

NFS相关问题

通过#rpcinfo -p 10.10.209.148

[root@rh01 /]# rpcinfo -p 10.10.209.148
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 52943 status
100024 1 tcp 37706 status
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 37438 nlockmgr
100021 3 udp 37438 nlockmgr
100021 4 udp 37438 nlockmgr
100021 1 tcp 46331 nlockmgr
100021 3 tcp 46331 nlockmgr
100021 4 tcp 46331 nlockmgr
100005 1 udp 57177 mountd
100005 1 tcp 43147 mountd
100005 2 udp 49154 mountd
100005 2 tcp 54810 mountd
100005 3 udp 55707 mountd
100005 3 tcp 58309 mountd


2015-3-12

服务器端安装yum install nfs-utils

修改nfs共享权限:

NFS服务的配置

只需要在NFS的主配置文件/etc/exports中进行设置就行,然后启动NFS服务。

/nfs/public  192.168.14.0/24(rw,async)  *(ro)——*[注意] 一个共享文件夹目录

/home/data/ 10.124.177.249(ro,async,no_root_squash)

NFS的设置选项:


 访问权限选项

 说明

 ro

 设置输出共享目录为只读

 rw

设置输出共享目录为可读写 

 用户映射选项

说明 

 all_squash

 将远程访问的所有普通用户及所属用户都映射为匿名用户或用户组(一般均为nfsnobody)
 no_all_squash   不将远程访问的所有普通用户及所属用户都映射为匿名用户或用户组(默认设置)

 root_squash

 将root用户及所属用户组都映射为匿名用户或用户组(默认设置)

 no_root_squash

 不将root用户及所属用户组都映射为匿名用户或用户组

 anonuid=xxx

 将远程访问的所有用户都映射为匿名用户,并指定该匿名用户账户为本地用户账户(UID=xxx)

 anongid=xxx

 将远程访问的所有用户组都映射为匿名用户组账户,

并指定该匿名用户组账户为本地用户组账户(GID=xxx)

 其它选项

说明 

 secure

 限制客户端只能从小于1024的TCP/IP端口连接NFS服务器(默认设置)

 insecure

 允许客户端从大于1024的TCP/IP端口接连NFS服务器

 sync

 将数据同步写入内存缓冲区与磁盘中,虽然这样做效率较低,但可以保证数据的一致性

 async

 将数据先保存在内存缓冲区,必要时才写入磁盘

 wdelay

 检查是否有相关的写操作,如果有,则将这些写操作一起执行,这样可以提高效率(默认设置)



 no_wdelay  若有写操作则立即执行,应与sync配合使用

 subtree_check

 若输出共享目录是一个子目录,则NFS服务器将检查其父目录的权限(默认设置)

 no_subtree_check

 即使输出目录是一个子目录,NFS服务器也不检查其父目录的权限,这样做可提高效率



服务启动顺序:

service rpcbind start

service nfslock  start

service nfs  start


服务停止顺序:


service nfslock stop

service nfs stop

service rpcbind stop


2015-12-11

nfs修改共享权限后,使之生效!

service nfs reload



2016-03-02

nfs性能调优

http://blog.****.net/anghlq/article/details/8532312

http://blog.****.net/yangzhongxuan/article/details/7918884

http://blog.chinaunix.net/uid-26557245-id-3428672.html  

linux中的NFSD的COPY数目是在/etc/rc.d/init.d/nfs这个启动文件中设置的,默认是8个NFSD,对于这个参数的设置一般是要根据可能的CLIENT数目来进行设定的,和WSIZE、RSIZE一样也是要通过测试来找到最近的数值。


2016-03-02


[root@localhost /]# umount /data/
umount.nfs: /data: device is busy

通过这条命令查看:

[root@localhost /]# fuser -m -v /data/
         用户 进程号 权限  命令
/data/:  root 2798   ..c.. bash
          root 2996    ..c.. su

如上所示,有两个进程占用了,将其kill掉,再重新取消挂载。

[root@localhost /]# kill -9 2798

[root@localhost /]# kill -9 2996

[root@localhost /]# umount /data/
[root@localhost /]#










本文转自 南非波波 51CTO博客,原文链接:http://blog.51cto.com/nanfeibobo/1603687,如需转载请自行联系原作者
上一篇:[爱偷懒的程序员系列]-Section 1. “懒”是一切需求的根源


下一篇:移动互联网广告初窥