NFS:网络文件系统 (固定端口:2049)
RPC:远程过程调用协议
用途:主要用于类unix系统进行文件共享服务;
基于RPC才能提供网络共享服务;
NAS (Network Attached Storage:网络附属存储) :按字面意思简单解释就是连接在网络上,具备资料存储功能的装置,
因此也称为“网络存储器”,它是一种专用数据存储服务器;
多台客户端通过NFS对NAS的访问示意图:
==========服务步骤=========
1》安装相关软件,启动NFS;
软件包: nfs-utils rpcbind
相关命令:service rpcbind restart ***注意:要先启动rpcbind,然后nfs才可以启动成功;
service nfs restart
启动rpcbind进程,开启了111端口,启用了RPC机制;
NFS与RPC的关系:
NFS的守护进程:
NFS的不同功能由不同的守护进程提供;
NFS的每个功能由RPC固定或随机分配的端口进行监听;
rpcbind: 主要负责端口的映射工作
nfsd: 主要负责登录权限检测
rpc.mountd: 负责管理NFS的文件系统,检测权限
rpc.rquotad: 负责远程磁盘限额服务
rpc.statd: 负责检查共享目录的一致性
2》设置NFS共享目录输出:
1> 修改主配置文件:/etc/exports
ro 只读共享
rw 可读可写共享
sync 同步写操作
async 异步写操作
wdelay 延迟写操作
no_wdelay 不延迟写操作,不能与async选项一起使用,否则不会生效
root_squash 屏蔽远程root权限
all_squash 屏蔽所有的远程用户权限
no_root_squash 不屏蔽远程root权限
2>建立共享目录,给目录中存放共享文件或目录;
3>进行防火墙设置或者关闭防火墙;
3》客户端挂载共享目录
1>客户机显示NFS服务器的共享输出:
showmount -e 192.168.1.110
2>挂载NFS服务器中的共享目录:
mount -t nfs 192.168.1.110:/movies /movies
echo “192.168.1.110:/movies /movies nfs defaults 0 0” >> /etc/fstab
4》相关测试:
rpcinfo -p 检查端口信息
=============NFS相关命令:
1>exportfs
-r 不需要重启服务便可以重新读取/etc/exports文件
-a 全部共享或全部取消共享
-u 取消共享,与-a一起使用可以取消全部共享文件系统
-v 显示其过程
2>mount 可以查看当前主机挂载的NFS共享目录
3>nfsstat 查看NFS共享状态
-s 显示服务器端状态
-c 显示客户端状态
-n 显示版本信息
-m 显示挂载信息
-l 以列表形式显示信息:
4>rpcinfo 生成RPC信息报表
-m 显示指定主机rpcbind的操作信息表
-p 显示指定主机RPC注册信息
-s 显示指定主机所有注册RPC的信息程序,不指定主机时默认显示本机信息
=======================在防火墙后端运行NFS需要解决的问题:
1>NFS需要向rpcbind动态注册端口信息,这将导致运行在防火墙后端的NFS服务器无法进行防火墙配置,因为端口信息
是动态随机生成的,防火墙可以开发某些固定的端口允许客户端进行连接,但无法设置随机端口规则;允许客户端访
问位于防火墙后面的NFS共享需要我们编辑/etc/sysconfig/nfs配置文件,配置固定的端口号。注意:端口号不可以指
定为已经被其他程序使用的;
2>配置完固定端口后,还需要对防火墙进行设置,需要为防火墙编写策略允许所有端口的数据通信;此外,还需要为
NFS开启TCP与UDP的2049端口,以及TCP与UDP的111端口,111端口被rpcbind所使用;
========================常见问题分析:
1>权限问题:
很多时候,当你在/etc/exports配置文件中设置共享目录为可读写时,却忘记了修改相应系统层面的文件以及目录权限,从而导致客户端实际挂载使用时无可写权限,系统提示信息一般为“Permission denied”,我们在对配置文件设置写权限后一定要记住修改相关目录文件的权限;另外,默认客户端使用root访问NFS共享进行读写操作时,服务器会自动把root转换为服务器本身的nfsnobody账号,这会导致root无法进行相应的操作,如果要保留root权限,则需要在配置文件中添加 no_root_squash选项;
2>RPC问题:
在没有启动rpcbind的情况下,启动nfs服务会报错:NFS mountd,rpc.rquatod,rpc.nfsd无法启动,这些服务都依赖于rpcbind服务;
3>兼容性问题:
在工作环境中,当客户端需要使用NFSv3版本挂载以满足兼容性要求时,则需要使用nfsvers选项设置特定的版本信息,并且在/etc/fstab开机自动挂载文件中也需要进行相应的修改;
mount -o nfsvers=3 172.16.0.254:/var/web /web
/etc/fstab书写格式为:
172.16.0.254:/var/web /web nfs defaults,nfsvers=3 0 0
4>挂载错误:
应仔细检查服务器上是否有相应目录,以及目录名称是否正确;
5>防火墙错误:
系统提示mount:mount to NFS server 172.16.0.254em Error: No route to host,这说明nfs服务的默认端口2049被防火墙屏蔽,需要修改iptables规则开放2049端口;