Linux NFS机制工作原理及实例解析
什么是NFS?
network file system 网络文件系统
通过网络存储和组织文件的一种方法或机制。
为什么要用NFS?
前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一放到后端的存储上。
共享存储的好处:方便数据的查找与取出,缺点:存储服务器压力大,坏了丢失全部数据。
NFS工作原理
NFS功能,有很多服务,每个服务都有自己的端口,并且经常变换。
客户端查找这些端口,就需要一个中间人---RPC服务(默认端口号111)。
工作流程:
1.启动RPC服务
2.启动NFS服务(同时向RPC服务注册启动的端口)
3.客户端向RPC请求NFS服务
4.RPC返回端口到客户端
5.客户端用返回的端口地址向NFS请求传输数据。
安装NFS服务
安装:yum install nfs-utils rpcbind
查看:rpm -qa nfs-utils rpcbind
开启服务并设置开机自启:systemctl start rpcbind.service systemctl enable rpcbind.service
systemctl start nfs systemctl enable nfs
配置NFS
nfs配置文件 /etc/exports
执行命令man exports 找到其中的:
配置文件的格式:
要共享的目录 访问的主机(权限)
①要共享的目录:存取数据的目录
②访问的主机:单个主机:172.16.1.7或主机名 网段:172.16.1.0/24或172.16.1.*
③权限:rw 可读 ro 只读 sync 写到远端磁盘(慢,安全) async 异步写到远端缓冲区(快,不安全)
root_squash anonuid=匿名用户的UID anongid=匿名用户的GID
all_squash 无论客户端是什么用户,到服务端都当做nfsnobody
[root@nfs01 ~]# vim /etc/exports
注:一个目录可同时给多个主机共享,如上图test。注意小括号和前面的字符中间没有空格。
创建目录:[root@nfs01 ~]# mkdir -p /data
nfs的默认用户是nfsnobody,所以要对目录进行授权:[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data
重启NFS:[root@nfs01 ~]# systemctl reload nfs 或者 exportfs -r (平滑重启)
检查:
打开web01虚拟机,安装rpc和nfs服务(原则上客户端只安装rpc即可,我们这里是为了测试showmount命令)
挂载共享目录,并创建文件测试