目录
一、简介
NFS简介:
NFS是Network File System的缩写,中文称为网络文件系统,它的主要功能是通过网络(一个局域网)让不同的主机系统之间可以共享文件或目录,NFS的客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器共享的数据目录挂载到NFS客户端本地系统中,从客户端本地看,NFS服务器端共享目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录。
NFS服务器挂载结构图:
RPC简介:
- RPC服务类似于NFS服务器端和NFS客户端中间的一个中介
- 因为NFS支持的功能相当多,而不同的功能会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口无法固定
- 因为端口不固定,这样一来就会造成NFS客户端与NFS服务器端的通信障碍,因为NFS客户端必须要知道NFS服务器端的数据传输端口才能进行通信,才能交互数据
- 要解决上面的困扰,就需要通过远程过程调用RPC服务来帮忙了,NFS的RPC服务最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端发出请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而确保客户端可以连接到正确的NFS端口上去,达到实现数据传输、交互数据目的
二、NFS工作原理
流程:
1.首先服务器端启动RPC服务,并开启111端口
2.服务器端启动NFS服务,并向RPC注册端口信息
3.客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
4.服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
5. 客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输
三、NFS的安装部署
1.NFS服务端的部署:
1.1 关闭防火墙
1.2 软件安装
1.3 创建共享文件目录,设置权限,编辑配置文件
cpp
[root@localhost ~]# mkdir /data
[root@localhost ~]# chmod o+w /data
[root@localhost ~]# vim /etc/exports
/data 192.168.75.128(rw,all_squash,sync)
1.4 使配置生效,先启动rpc服务再启动nfs服务
在启动 NFS 之前,要先启动 RPC ,否则 NFS 会无法向 RPC 注册。另外, RPC 若重新启动,原来 注册的数据会消失不见,因此 RPC 重启后,它管理的所有服务都需要重新启动以重新向 RPC 注册。
2.NFS客户端部署
2.1 软件安装
2.2 查询有哪些共享目录可用
2.3 新建本地挂载目录,使用mount远程挂载服务器的目录到客户端的本地目录,并新建文件
2.4客户端使用开机自动挂载实现永久挂载
cpp
[root@localhost ~]# vim /etc/fstab
192.168.75.128:/data /xixi nfs defaults 0 0
[root@localhost ~]# mount -a
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 866M 0 866M 0% /dev/shm
tmpfs tmpfs 347M 7.2M 340M 3% /run
/dev/mapper/rhel-root xfs 17G 4.2G 13G 26% /
/dev/nvme0n1p2 xfs 960M 292M 669M 31% /boot
/dev/nvme0n1p1 vfat 599M 7.0M 592M 2% /boot/efi
tmpfs tmpfs 174M 96K 174M 1% /run/user/1000
/dev/sr0 iso9660 9.9G 9.9G 0 100% /mnt
tmpfs tmpfs 174M 36K 174M 1% /run/user/0
192.168.75.128:/data nfs4 17G 4.2G 13G 26% /xixi
关于NFS配置权限设置,即/etc/exports文件配置格式中小括号()里的参数集:
四、autofs自动挂载服务
产生原因 :由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何 一方脱机都可能造成另外一方等待超时,如果在资源挂载后长期不使用,也会造成服务器硬件资源 的浪费。
解决办法:当客户端在有使用NFS文件系统的需求时才让系统自动挂载。 当NFS文件系统使用完毕后(autofs默认自动卸载时间为300s即5分钟),让NFS自动卸载
配置文件路径:/etc/auto.master 文件内容格式: 挂载的父目录 子配置文件
- 挂载父目录不需要事先存在,因为autofs为主动创建该目录
- 自配置文件可以自定义 eg: /etc/auto.suibian
- 内容格式如: /dirmaster /etc/auto.suibian
子配置文件:(自己创建的)内容格式:
- 本地挂载子目录 服务器地址:目录
- 例如: xixi 192.168.75.128:/data
服务端部署同上
客户端部署:
1.先查看有哪些共享目录可用
- 编辑自动挂载配置文件
cpp
主配置文件:
[root@localhost ~]# vim /etc/auto.master 定位第七行输入
子配置文件(必须和上面创建的自配置文件一样)
/dirmaster /etc/auto.suibian
xixi 192.168.75.128:/data
3.启动服务并测试
cpp
[root@localhost ~]# systemctl start autofs
[root@localhost ~]# df -Th 查看挂载信息
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 866M 0 866M 0% /dev/shm
tmpfs tmpfs 347M 7.2M 340M 3% /run
/dev/mapper/rhel-root xfs 17G 4.2G 13G 26% /
/dev/nvme0n1p2 xfs 960M 292M 669M 31% /boot
/dev/nvme0n1p1 vfat 599M 7.0M 592M 2% /boot/efi
tmpfs tmpfs 174M 96K 174M 1% /run/user/1000
/dev/sr0 iso9660 9.9G 9.9G 0 100% /mnt
tmpfs tmpfs 174M 36K 174M 1% /run/user/0
[root@localhost ~]# cd /dirmaster/ 进入本地目录,会自动新建
[root@localhost dirmaster]# ls
[root@localhost dirmaster]# cd xixi 进入本地挂载目录的下级目录,会出发自动挂载
[root@localhost xixi]# ls
1
[root@localhost xixi]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 866M 0 866M 0% /dev/shm
tmpfs tmpfs 347M 7.2M 340M 3% /run
/dev/mapper/rhel-root xfs 17G 4.2G 13G 26% /
/dev/nvme0n1p2 xfs 960M 292M 669M 31% /boot
/dev/nvme0n1p1 vfat 599M 7.0M 592M 2% /boot/efi
tmpfs tmpfs 174M 96K 174M 1% /run/user/1000
/dev/sr0 iso9660 9.9G 9.9G 0 100% /mnt
tmpfs tmpfs 174M 36K 174M 1% /run/user/0
192.168.75.128:/data nfs4 17G 4.2G 13G 26% /dirmaster/xixi
4.设置超时时间,当退出挂载目录3秒后会自动卸载服务
cpp
[root@localhost ~]# vim /etc/autofs.conf
定位26行
timeout = 3
[root@localhost ~]# systemctl restart autofs 重启服务