一、NFS简单介绍
1.什么是NFS
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
2.NFS优点
节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
3.NFS组成
NFS体系至少有两个主要部分:
一台NFS服务器和若干台客户机
客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据。
在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数。
4.NFS的组成
多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。不同客户端可在NFS上观看影视文件,节省本地空间。在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。
NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行。
二、NFS实验部署
在nfs服务器设置好一个共享目录(客户端看到的不一定是这个名字,因为我们可以改变客户端看见共享目录的名称)后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到本地。并且能够看到服务端/data的所有数据。因为挂载在本地的/data目录,其实就是服务器端的/data目录。
实验环境:两台rhle7.3的虚拟机,一台客户端用作客户端,一台服务端,两台虚拟机都需要做好本地解析
环境部署服务端本地解析
客户端本地解析
实验部署
注意
sync代表内存数据与硬盘里的数据的是同步的(可靠性高)
async不实时同步,会使写的效率提高(响应速度快)可靠性低
nfs不需要重启,用参数exportfs -rv更新(重启之后客户端挂载就出问题了,因为重启就有一个空档期,客户端如果在写,就会一直访问,这个时候会出问题,如果客户端不用,可以重启但是不建议。)
实验开始前关闭火墙服务 systemctl stop firewalld
1.服务器端安装软件
[root@server ~]# yum install nfs-utils.x86_64 -y
2.编辑共享文件
/etc/exports文件指定了哪个文件系统 NFS应该输出(有时被称为“共享”)。 /etc/exports里面每行指定一个输出的文件系统和哪些机器可以访问该文件系统。在指定机器访问权限的同时,访问选项开关也可以被指定。
/mnt172.25.65.0/24(ro,async)输出的文件是/mnt,以及可以访问的机器是172.25.65.网段的都可以映射,ro,async是只读挂载,为了实验效果,采用async,响应的速度较快
3.开启服务
[root@server ~]# systemctl start nfs-server[root@server ~]# systemctl status nfs-server
4.更新/加载文件
[root@server ~]# exportfs -rv
客户端
1.安装软件
2.查看映射
3.挂载到/mnt下建立文件
不能建立文件,因为是只读挂载
4.退出共享文件系统并卸载
服务端重新进行读写挂载
客户端重新映射挂载
建立文件
三:NFS网络文件系统管理
参数介绍
anonuid=1001,anongid=1001 指定转换为1001这个用户身份,1001这个是服务端的
no_root_squash 谁管理用谁的身份并且anonuid不生效(沿用客户端自己的用户身份)
all_squash 身份全部转换(这个在的时候no_root_squash不生效,anonuid生效,去使用服务端的客户身份,如果不指定anonuid,就沿用服务端的匿名身份)
文件共享配置anonuid=1001,anongid=1001
参数效果是客户端所有人的身份都转换到1001用户
1.服务端建立用户
配置文件设置anonuid=1001,anongid=1001
2.客户端在共享目录下建立文件并查看文件拥有者
显示拥有者为1001是因为客户端没有用户id为1001的用户
3.服务端查看即为用户名
文件共享配置no_root_squash
参数效果是沿用客户端的用户,即哪个用户建立的文件,那么文件拥有着就为谁,使anonuid以及anongid参数不生效
1.服务端进行文件配置
2.客户端再次建立文件,查看文件拥有者
文件共享配置all_squash
1.服务端进行文件配置
2.客户端建立文件并查看
通过上述实验我们可以发现,服务端每次更新共享文件内容,客户端都需要卸载之后重新手动挂载,比较麻烦,
所以下面的实验关于autofs就可以实现自动挂载与卸载
四、autofs(分离NFS系统和存储)
autofs文件自动挂载系统
Autofs与Mount/Umount的不同之处在于,它是一种看守程序。如果它检测到用户正试图访问一个尚未挂接的文件系统,它就会自动检测该文件系统,如果存在,那么Autofs会自动将其挂接。
另一方面,如果它检测到某个已挂接的文件系统在一段时间内没有被使用,那么Autofs会自动将其卸载。因此一旦运行了Autofs后,用户就不再需要手动完成文件系统的挂接和卸载。
1.客户端安装autofs
2.查看autofs服务的配置文件
3.更改配置文件默认的等待时间
[root@desktop ~]# vim /etc/autofs.conf
默认等待时间是300为了实验更改为10s
4.客户端查看默认共享文件系统的挂载
进入到共享文件系统目录下查看文件
等待10s后查看挂载已经被卸掉了
5.更改共享文件系统挂载点修改主策略文件,在文件中加入
/mnt /etc/auto.nfs
[root@desktop ~]# vim /etc/auto.master
6.编写子策略文件
[root@desktop ~]# vim /etc/auto.nfs[root@desktop ~]# cat /etc/auto.nfsredhat172.25.65.165:/mnt
重启服务
[root@desktop ~]# systemctl restart autofs
7.进入到/mnt/redhat目录查看挂载
退出共享目录10s后自动卸载
8.子策略文件中设置挂载版本以及挂载方式
进入到挂载目录下进行查看
9.设置不同用户在不同的挂载点
这样可以使得不同用户只能看到自己的共享文件,比较安全服务器端建立不同目录并在不同目录下建立不同文件
客户端更改子策略文件
客户端进入不同共享目录下查看共享文件
如果觉得《NFS网络文件系统的共享》对你有帮助,请点赞、收藏,并留下你的观点哦!