scuess 发表于 2019-4-17 20:38:55

CentOS 7搭建NFS服务

  NFS(Network File System)即网络文件系统,主要用于在内网中实现一个共享的文件系统,从而达到协同工作的效果。
NFS是基于RPC(Remote Procedure Call)远程函数调用的基础上进行开发,程序去调用RPC客户端的接口,然后RPC客户端将请求发给远端RPC的服务端,而在RPC的服务端中存储了NFS监听的端口,并将该端口发回给RPC的客户端,由RPC客户端(此处有疑问)重新对返回的端口发起请求,从而完成一次请求。
对于用户来说,NFS就类似一个普通的目录,只要在使用前对其进行挂载,就可以像访问本机的目录一样,访问远端的文件系统。
  在CentOS 7上,服务端需要有rpcbind和nfs-utils这两个程序,其中rpcbind是centos本身自带的,只需确保其是运行状态即可。安装nfs的命令为:
yum install nfs-utils -y
然后确保安装成功, rpm -qa nfs-utils
之后启动服务 systemctl start nfs
将需要共享的目录写入到配置文件 /etc/exports 中,这里以本机IP为192.168.14.133 ,共享的目录为/data ,可读写,并进行同步为例,允许192.168.14.0/24网段进行访问
echo "/data 192.168.14.0/24(rw,async)" >> /etc/exports
执行 showmount -e 192.168.14.133进行验证是否写入配置文件成功
https://s1.运维网.com/images/blog/201901/04/0bb0f89d5bbf2867aa5580e2093e63ab.png
然后,很重要的一步,更改共享的目录的属组
chown -R nfsnobody:nfsnobody /data
  此处还有一个隐藏问题,如果该服务器的防火墙没有将192.168.14.0这个网段设置为允许访问,将会出现该网段的其他主机访问不到该目录的情况,此时可以将该网段加入到允许访问
  客户端也需要安装nfs-utils和rpcbind,此处不再赘述
然后通过showmount 查看是否可以看到服务端共享出来的目录,如果看不到的话,查看防火墙是否没做好配置。
通过挂载将服务端的共享目录挂载到客户端的某个目录中,此处以/mnt/nfs1为例
mount -t nfs 192.168.14.133:/data /mnt/nfs1
如果需要开机自动挂载的话,可以将上面的命令写入到/etc/profile中,然后source /etc/profile 来使配置文件立即生效。
之后访问本机的/mnt/nfs1就可以对远端的/data目录进行操作,其中客户端可操作的范围在服务端写入配置文件时就已经被限定,此文章限定权限是可读写(rw),优先写入内存缓冲区,必要时才写入硬盘(async),async的效率较高,但一致性较sync差一点。
  https://www.cnblogs.com/st-jun/p/7742560.html 此文章中有nfs的较详细的配置与故障解决的描述。



页: [1]
查看完整版本: CentOS 7搭建NFS服务