启东的个人博客 - nfs
type: channel
link: https://echo.solo90.com/tag/nfs/
items: centos7安装nfs服务

centos7安装nfs服务
type: item
date: 2018-11-20T12:36:00+00:00
description: NFS是Network File System的缩写，即网络文件系统。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。nfs为什么需要RPC?因为NFS支持的功能很多，不同功能会使用不同程序来启动，因此，NFS对应的功能所对应的端口无法固定。端口不固定造成客户端与服务端之间的通信障碍，所以需要RPC来从中帮忙。NFS启动时会随机取用若干端口，然后主动向RPC服务注册取用相关端口和功能信息，RPC使用固定端口111来监听来自NFS客户端的请求，并将正确的NFS服务端口信息返回给客户端，这样客户端与服务端就可以进行数据传输了。NFS的工作流程[scode type="share"]1、由程序在NFS客户端发起存取文件的请求，客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。2、NFS服务端的RPC找到对应已注册的NFS端口，通知客户端RPC服务。3、客户端获取正确的端口，并与NFS daemon联机存取数据。4、存取数据成功后，返回前端访问程序，完成一次存取操作。[/scode]所以无论客户端，服务端，需要使用NFS，必须安装RPC服务。NFS的RPC服务。Centos5下名为portmap,Centos6下名称为rpcbind。NFS服务安装配置nfs-utils、rpcbind查看是否安装NFS> rpm -qa nfs-utils rpcbind > yum install nfs-utils rpcbind启动rpcbind服务查看服务状态> systemctl status rpcbind.service如果不知道rpcbind命令在哪> which rpcbind启动rpc服务> systemctl restart rpcbind.service查看rpc> lsof -i :111 > netstat -lntup|grep rpcbind如果出现-bash未找到命令可执行下面命令> yum install net-tools lsof查看nfs服务向rpc注册的端口信息> rpcinfo -p localhost检查rpcbind是否开机启动> chkconfig --list rpcbind启动NFS服务> systemctl start nfs.service查看状态> systemctl status nfs.service再次查看rpc注册的端口信息> rpcinfo -p localhostNFS常见进程详解> ps -ef|egrep "rpc|nfs"root 19101 2 0 14:13 ? 00:00:00 [rpciod] rpc 21231 1 0 14:52 ? 00:00:00 /sbin/rpcbind -w rpcuser 21371 1 0 14:52 ? 00:00:00 /usr/sbin/rpc.statd root 21394 1 0 14:52 ? 00:00:00 /usr/sbin/rpc.idmapd root 21395 1 0 14:52 ? 00:00:00 /usr/sbin/rpc.mountd root 21405 2 0 14:52 ? 00:00:00 [nfsd4_callbacks] root 21411 2 0 14:52 ? 00:00:00 [nfsd] root 21412 2 0 14:52 ? 00:00:00 [nfsd] root 21413 2 0 14:52 ? 00:00:00 [nfsd] root 21414 2 0 14:52 ? 00:00:00 [nfsd] root 21415 2 0 14:52 ? 00:00:00 [nfsd] root 21416 2 0 14:52 ? 00:00:00 [nfsd] root 21417 2 0 14:52 ? 00:00:00 [nfsd] root 21418 2 0 14:52 ? 00:00:00 [nfsd] root 24279 18106 0 15:49 pts/1 00:00:00 grep -E --color=auto rpc|nfsnfsd(rpc.nfsd)主进程，主要是管理客户端能否登入服务端，登入者ID判别。mountd(rpc.mountd)管理NFS文件系统，登入者的权限管理rpc.lockd(非必要)用来锁定文件，用于客户端同时写入rpc.statd(非必要)检查文件一致性rpc.idmapd 名字映射后台进程配置NFS开机自启动> chkconfig rpcbind on > chkconfig nfs on > chkconfig --list rpcbi…