前面的内容我们提到利用NFS网络服务系统去访问服务器上的共享资源,但是大家有没有想过这样一个问题,如果我们服务器上有海量的资源需要我们去访问,难道我们要针对每一个资源进行挂载吗?如果是这样那么我们面临的工作量是巨大的,同时,如果挂载的远程资源太多,则会给网络带宽和服务器的硬件资源带来巨大的负载;甚至挂载了长期不使用的话,对我们的硬件资源更是一种浪费。
autofs自动挂载服务可以帮助我们解决这一个问题。autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。相比于我们每次要在/etc/fstab文件中填入挂载信息,autofs服务程序可以在用户需要用到时动态的挂载信息,很大程度的节约了网络资源和硬件资源。
那么下面我们就来部署autofs吧,大家一定要动手实验哦!!
第一步:安装autofs服务程序,执行以下命令
[root@blue ~]# dnf install autofs
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:0:29:25 前,执行于 2022年12月13日 星期二 16时58分09秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
Installing:
autofs x86_64 1:5.1.4-29.el8 BaseOS 755 k
事务概要
================================================================================
安装 1 软件包
总计:755 k
安装大小:3.5 M
确定吗?[y/N]: y
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
Installing : autofs-1:5.1.4-29.el8.x86_64 1/1
运行脚本 : autofs-1:5.1.4-29.el8.x86_64 1/1
验证 : autofs-1:5.1.4-29.el8.x86_64 1/1
Installed products updated.
已安装:
autofs-1:5.1.4-29.el8.x86_64
完毕!
第二步:在autofs服务程序的主配置文件中按照“挂载目录 子配置文件”的格式进行填写。挂载目录是设备挂在位置的上一级目录。例如,光盘设备一般挂载到/media/cdrom目录中,那么挂载目录写成/media即可。对应的子配置文件则是对这个挂载目录内的挂载设备信息做进一步说明。子配置文件需要用户自定义设置,文件名字没有严格要求,但后缀建议以.misc结束。
[root@blue ~]vim /etc/auto.master
# Sample auto.master file
# This is a 'master' automounter map and it has the following format:
# mount-point [map-type[,format]:]map [options]
# For details of the format look at auto.master(5).
#
/media /etc/iso.misc
/misc /etc/auto.misc
第三步:在子配置文件中,应按照“挂载目录 挂载文件类型及权限:设备名称”的格式进行填写。例如,要把光盘设备挂载到 /media/iso 目录中,可将挂载目录写为 iso,而-fstype 为文件系统格式参数,iso9660为光盘设备格式,ro 、nosuid及nodev为光盘设备具体的权限参数,/dev/cdrom
则是定义要挂载的设备名称。配置完成后再顺手将autofs服务程序启动并加入到系统启动项中:
[root@blue ~] vim /etc/iso.misc
iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
[root@blue ~] systemctl start autofs
[root@blue ~] systemctl enable autofs
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
第四步:查看当前的光盘挂载情况,确认光盘设备没有被挂载上,而且/media目录中根本没有iso子目录:
[root@blue ~] df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 9.9M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 4.0G 14G 23% /
/dev/sdb1 2.0G 47M 2.0G 3% /newFS
/dev/sda1 1014M 160M 855M 16% /boot
tmpfs 392M 16K 392M 1% /run/user/42
tmpfs 392M 3.5M 389M 1% /run/user/0
172.25.0.254:/nfsfile 17G 4.0G 14G 24% /nfsfile
[root@blue ~] cd /media
[root@blue media] ls
第五步:这个时候却使用cd命令切换到这个iso子目录下,而且光盘设备会被立即自动挂载上,并且可以查看光盘的内容。
[root@blue ~] cd /media
[root@blue media] ls
[root@blue media] cd iso
[root@blue iso] ls
AppStream EULA images RPM-GPG-KEY-redhat-beta
BaseOS extra_files.json isolinux RPM-GPG-KEY-redhat-release
EFI GPL media.repo TRANS.TBL
[root@blue iso] df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 9.9M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 4.0G 14G 23% /
/dev/sr0 6.7G 6.7G 0 100% /media/iso
大家做完实验有没有大吃一惊,光盘设备我们没有挂载,同时/media目录下没有iso子目录,但是我们只要切换到iso目录中,光盘设备就会被自动挂载上了!!!因此autofs服务可以动态的去挂载信息,当我们有需要时就可以去部署这个服务。