环境:CentOS 6.5 64bit
在一台客户端机上执行mount命令挂载nfs,结果报如下错误:
是因为我的客户端机器没有安装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 //关闭防火墙
通过#rpcinfo -p 10.10.209.148
[root@rh01 /]# rpcinfo -p 10.10.209.148program vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 2 udp 111 portmapper100024 1 udp 52943 status100024 1 tcp 37706 status100011 1 udp 875 rquotad100011 2 udp 875 rquotad100011 1 tcp 875 rquotad100011 2 tcp 875 rquotad100003 2 tcp 2049 nfs100003 3 tcp 2049 nfs100003 4 tcp 2049 nfs100227 2 tcp 2049 nfs_acl100227 3 tcp 2049 nfs_acl100003 2 udp 2049 nfs100003 3 udp 2049 nfs100003 4 udp 2049 nfs100227 2 udp 2049 nfs_acl100227 3 udp 2049 nfs_acl100021 1 udp 37438 nlockmgr100021 3 udp 37438 nlockmgr100021 4 udp 37438 nlockmgr100021 1 tcp 46331 nlockmgr100021 3 tcp 46331 nlockmgr100021 4 tcp 46331 nlockmgr100005 1 udp 57177 mountd100005 1 tcp 43147 mountd100005 2 udp 49154 mountd100005 2 tcp 54810 mountd100005 3 udp 55707 mountd100005 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性能调优
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 /]#