NFS 原理介绍
NFS = network file system 网络文件系统
基于RPC协议,RPC = remote procedure call 。 RPC存在的意义在于解决NFS服务端和客户端通信多端口并且端口不固定的问题。因为NFS的服务端和客户端通信的时候,并不是只有一个端口,且端口不固定,因此需要一个中心,来记录这些不固定的端口。
场景架构:
A机器分享数据出来,B和C分别去挂载A上面共享的数据目录。
这样 A B C 3台机的读取到的都是一样的,各自的写入别的机也都能看到。
NFS服务原理:
NFS服务启动的时候,会将端口信息注册到RPC,会先启动一个 rpcbind 服务。
客户端运行NFS需要先启动一个rpc服务,客户端无须启动NFS服务。
服务端运行NFS也需要先启动一个rpc服务,然后启动NFS服务。
RPC服务:
用于获取所有NFS服务的端口,PID信息,互相的IP等,是NFS服务重要的信息中转站。
通信流程:
用户在nfs客户端发出存取文件请求,向NFS服务端的RPC 的111端口发出存取的询问请求,NFS服务端找到对应端口以后通知 nfs客户端的rpc服务 ,nfs客户端获取到正确的接口并和NFS服务端建立连接。
NFS 配置
yum install -y nfs-utils 安装(客户端服务端一致)
可见rpc是会被安装上
vim /etc/exports
/home/nfstestdir # 设置服务端需要共享的目录
192.168.222.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
rw指read和write
sync 指同步版
all_squash 指所有用户挂载完以后都映射到 用户uid=1000的身份,这个可以自己去设置,具体名字可以去
mkdir /home/nfstestdir
systemctl start nfs-server #以前的版本也有直接叫 nfs 的
systemctl enable nfs-server
需要关闭一下防护墙
服务正常以后会有的进程
#客户端上测试服务端的连通情况
showmount -e 服务端IP
服务未注册情况
服务端在网段内的注册情况和共享的目录
查询出这个信息则说明服务端是可以被挂载的情况了
挂载
mount -t nfs 服务端ip:/服务端共享路径 /客户端挂载路径
开机自挂载设置
/etc/fastab 的方式开机挂载
测试设置成功没有不需要重启服务器的,只需要如下:
umount 挂载点
df -h 检查挂载点还有没有
mount -a
df -h 检查挂载点还有没有