天天看点

NFS相关问题

环境:CentOS 6.5 64bit

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

<code>mount</code><code>: wrong fs </code><code>type</code><code>, bad option, bad superblock on 192.168.0.10:</code><code>/bak</code><code>,</code>

<code>       </code><code>missing codepage or helper program, or other error</code>

<code>       </code><code>(</code><code>for</code> <code>several filesystems (e.g. nfs, cifs) you might</code>

<code>       </code><code>need a </code><code>/sbin/mount</code><code>.&lt;</code><code>type</code><code>&gt; helper program)</code>

<code>       </code><code>In some cases useful info is found </code><code>in</code> <code>syslog - try</code>

<code>       </code><code>dmesg | </code><code>tail</code>  <code>or so</code>

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

<code>yum -y </code><code>install</code> <code>nfs-utils</code>

之后再挂载,正常。

在客户端和服务端使用命令: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  //关闭防火墙

通过#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性能调优

<a href="http://blog.csdn.net/anghlq/article/details/8532312" target="_blank">http://blog.csdn.net/anghlq/article/details/8532312</a>

<a href="http://blog.csdn.net/yangzhongxuan/article/details/7918884" target="_blank">http://blog.csdn.net/yangzhongxuan/article/details/7918884</a>

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

[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 /]#

本文转自 南非波波 51CTO博客,原文链接:http://blog.51cto.com/nanfeibobo/1603687,如需转载请自行联系原作者

继续阅读