nfs客户端挂载出错 mount.nfs access denied by server while mounting
2017-06-01 20:18
465 查看
原文地址: http://zhaochj.blog.51cto.com/368705/1719640 点击打开链接
在生产环境中一系统因架构变化后,把一模块原有的单节点扩展成了两个节点,前端采用用nginx做负载的架构,而这两个节点需要一个公共的存储来存放用户上传的图片,用户的并发不高,再因原有业务模块是从nginx主机上剥离出来的,在原nginx主机上有“img”这个存储图片的目录,所以考虑在nginx主机上安装nfs服务,再在两个节点上同点挂载“img”目录实现集群节点对图片目录的访问。
NFS服务的安装比较简单,但在上生产环境时还是应该在自己的测试环境先验证,这里把安装过程记录如下:
服务端配置
NFS服务端系统环境:
如果系统没有安装nfs服务,运行以下命令安装:
配置共享目录:
#此文件的配置格式为:<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
#注释
insecure 当mount监听端口大于1024时需要使用此参数
rw read-write,可读写;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
重新加载/etc/exports的配置:
查看本机共享的目录:
客户端配置
客户端系统环境:
在客户端只需要安装nfs-client端即可,如果没有安装请使用以下命令进行安装:
列出nfs服务端共享的目录:
因生产环境是需要把nfs服务器的tomcat用户家目录下的img目录共享出来后让现有的两个节点的tomcat用户来挂载到家目录的img目录下,所以需要先切换到tomcat用户下创建img目录,如下:
挂载nfs的共享目录:
root@rabbit-0:~# mount -t nfs 192.168.207.129:/home/tomcat/img /home/tomcat/img -o proto=tcp -o nolock
mount.nfs: access denied by server while mounting 192.168.207.129:/home/tomcat/img
原因:在centos 6 x64的系统下使用的是NFSv4,在/var/log/messages中能看到nfs启动时的日志输出:
使用NFSv4时,在nfs服务端做如下操作:
重启服务:
再在客户端再次尝试挂载:
成功挂载。
测试:直接用root用户创建一个文件,但这个文件的权限还是500的,在服务端uid为500的用户是tomcat,这正在我需要的效果。
最后让此目录自动在主机重启后自动挂载,我这里直接写入到/etc/rc.local里:
重启测试一下能否成功挂载。
在生产环境中一系统因架构变化后,把一模块原有的单节点扩展成了两个节点,前端采用用nginx做负载的架构,而这两个节点需要一个公共的存储来存放用户上传的图片,用户的并发不高,再因原有业务模块是从nginx主机上剥离出来的,在原nginx主机上有“img”这个存储图片的目录,所以考虑在nginx主机上安装nfs服务,再在两个节点上同点挂载“img”目录实现集群节点对图片目录的访问。
NFS服务的安装比较简单,但在上生产环境时还是应该在自己的测试环境先验证,这里把安装过程记录如下:
服务端配置
NFS服务端系统环境:
#注释
insecure 当mount监听端口大于1024时需要使用此参数
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
重新加载/etc/exports的配置:
客户端系统环境:
root@rabbit-0:~# mount -t nfs 192.168.207.129:/home/tomcat/img /home/tomcat/img -o proto=tcp -o nolock
mount.nfs: access denied by server while mounting 192.168.207.129:/home/tomcat/img
原因:在centos 6 x64的系统下使用的是NFSv4,在/var/log/messages中能看到nfs启动时的日志输出:
相关文章推荐
- nfs客户端挂载出错 mount.nfs access denied by server while mounting
- nfs客户端挂载出错 mount.nfs access denied by server while mounting
- nfs挂载出错:mount.nfs: access denied by server while mounting
- 远程挂载NFS时mount.nfs: access denied by server while mounting 一个解决办法
- linux中nfs挂载问题(mount.nfs: access denied by server while mounting )
- NFS挂载时出现"mount.nfs: access denied by server while mounting "的解决方法
- 转备忘录 linux开启防火墙挂载nfs 与 mount.nfs: access denied by server while mounting 一个解决办法
- 挂载NFS磁盘时报错:mount.nfs: access denied by server while mounting
- mount.nfs:access denied by server while mounting **原因
- mount.nfs: access denied by server while mounting 一个解决办法
- mount.nfs: access denied by server while mounting
- ubuntu 使用nfs服务报错:mount.nfs:access denied by server while mounting
- ubuntu nfs配置 以及mount.nfs:access denied by server while mounting问题解决
- mount.nfs: access denied by server while mounting
- mount.nfs: access denied by server while mounting 解决办法
- mount.nfs: access denied by server while mounting 一个解决办法
- mount.nfs: access denied by server while mounting 一个解决办法
- mount.nfs: access denied by server while mounting 192.168.254.200:/xen/vm/
- mount.nfs: access denied by server while mounting 一个解决办法
- mount.nfs: access denied by server while mounting 一个解决办法