1、NFS基本概述
NFS是Network File System 的缩写及网络文件系统。NFS主要功能是通过局域网让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows 网络共享、网络驱动器类似,只不过windows 用于局域网,NFS用于企业集群架构中,如果是大型网站,会用到更复杂的分布式文件系统 FastDFS, glusterfs, HDFS
那么我们为什么要使用数据存储共享服务?
1、实现多台服务器之间数据共享
2、实现多台服务器之间数据一致
2、NFS应用场景
下面我将通过图解给大家展示集群需要共享存储服务的理由。
1、A用户上传图片经过负载均衡,负载均衡将上传请求调度至WEB1服务器上。
2、B用户访问A用户上传的图片,此时B用户被负载均衡调度至WEB2上,因为WEB2上没有这张图片,所以B用户无法看到A用户传的图片;
如果有共享存储的情况
1、A用户上传图片无论被负载均衡调度到WEB1还是WEB2,最终数据都被写入至共享存储
2、B用户访问A用户上传图片时,无论调度至WEB1还是WEB2,最终都会上共享存储访问对应的文件,这样就可以访问到资源了
3、NFS实现原理
Rpc.nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;
Rpc.mount: 主要功能是管理NFS的文件系统。当客户端顺利通过nfs登录NFS服务器后,在使用NFS服务器提供的文件前,还必须通过文件使用权限的验证。
Portmap:主要功能是进行端口映射工作
本地文件操作方式
1、当用户执行 mkdir 命令,该命令会调用 shell 解释器翻译给内核。
2、内核解析完成后会驱动对应的硬件设备,完成相应的操作。
NFS实现原理(需要先了解 [程序\进程\线程])
1、用户进程访问NFS客户端,使用不同的函数对数据进行处理
2、NFS客户端通过TCP/IP的方式传递给NFS服务端。
3、NFS服务端接收到请求后,会先调用portmap 进程进行端口映射。
4、nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。
5.Rpc.mount进程判断客户端是否有对应的权限进行验证。
6. idmap进程实现用户映射和压缩
7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,上内核恭外运硬件。
注:rpc 是一个远程过程调用,那么使用nfs必须有rpc服务
4.NFS服务安装
0. 环境准备
注意:不要忘记关闭防火墙,以免默认的防火墙策略