autofs自动挂载
文章目录
- 一、应用背景
- 二、安装及配置文件分析
- 实验一:自动挂载光盘
- 安装
- 修改autofs主配置文件
- 编写autofs子配置文件
- 测试
- 实验二:自动挂载共享目录
- 一、服务端创建共享文件,编辑nfs配置文件
- 二、客户端编辑自动配置文件
- 三、测试
autofs 自动挂载服务是运行在客户端的一种 Linux 系统守护进程,在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。
一、应用背景
在一般NFS文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以在 /etc/fstab中设置开机时自动挂载,也可以在登录系统后手动利用mount来挂载。但是由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造成另外一方等待超时,如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费。
解决办法:
- 当客户端在有使用NFS文件系统的需求时才让系统自动挂载。
- 当NFS文件系统使用完毕后(autofs默认自动卸载时间为300s即5分钟),让NFS自动卸载。
二、安装及配置文件分析
[root@node1 ~] yum install autofs -y # 客户端安装
配置文件路径:/etc/auto.master
linux服务器一般会同时管理多个设备的挂载操作。如果把设备的挂载信息都写入到auto服务的主配置文件中,必定会让配置文件臃肿,不利于服务执行效率,也不利于后续修改,解决办法就是将需要挂载的设备独立配置成子文件,主配置文件只存储配置挂载设备的文件名
/etc/auto.master内容格式:挂载父目录 子配置文件
- 挂载目录不需要事先存在,因为autofs会自动创建该目录
- 子配置文件内容格式为:本地挂载子目录 [+参数] 服务器地址:目录
- 例如:testmnt 192.168.65.128:/data
挂载参数
| 参数 | 功能 |
|---|---|
| fg/bg | 当执行挂载时,该挂载行为会在前台(fg)还是后台(bg)执行,若在前台执行,则mount会持续尝试挂载,直到成功或time out为止;若为后台执行,则mount会在后台持续多次进行mount,而不会影响到前台的程序运行。 |
| soft/hard | hard表示当两者之间的任何一台主机脱机,则RPC会持续地呼叫,直到对方恢复连接为止。如果是soft的话,那RPC会在time out后重复呼叫,而非持续呼叫 |
| intr | 当使用上面提到的hard方式挂载时,若加上intr这个参数,则当RPC持续呼叫时,该次的呼叫是可以被中断的 |
| rsize/wsize | 读出(rsize)与写入(wsize)的区块大小。这个设置值可以影响客户端与服务器 |
实验一:自动挂载光盘
安装
[root@server ~] yum install autofs -y
修改autofs主配置文件
# 设计本地自动挂载目录路径:/media/test# 定位第7行,输入本地挂载路径的父目录和自配置文件
[root@server ~] vim /etc/auto.master
/media /etc/iso.aa
编写autofs子配置文件
[root@server ~] vim /etc/iso.aa
test -fstype=iso9660,ro,nosuid,nodev :/dev/sr0 # 冒号前有空格# 注意cdrom为挂载路径/media/cdrom的子目录
# -ftype:为文件系统格式
# iso9660:为光盘设备格式
# ro:以只读模式挂载文件系统
# nodev:不解析文件系统上的块特殊设备
# nosuid:禁止suid操作和设定sgid位(SUID 是 Set User ID, SGID 是 Set Group ID的意思)#启动
[root@server ~] systemctl start autofs
测试
[root@server ~] df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 968M 0 968M 0% /dev/shm
tmpfs 388M 9.7M 378M 3% /run
/dev/mapper/rhel-root 16G 4.2G 12G 27% /
/dev/nvme0n1p1 395M 235M 160M 60% /boot
tmpfs 194M 104K 194M 1% /run/user/0
/dev/sr0 8.5G 8.5G 0 100% /run/media/root/RHEL-9-1-0-BaseOS-x86_64[root@server ~] cd /media/
[root@server media] cd test # 触发自动挂载
[root@server cdrom]# ls
AppStream EFI extra_files.json images media.repo RPM-GPG-KEY-redhat-release
BaseOS EULA GPL isolinux RPM-GPG-KEY-redhat-beta
[root@server cdrom]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 968M 0 968M 0% /dev/shm
tmpfs 388M 9.7M 378M 3% /run
/dev/mapper/rhel-root 16G 4.2G 12G 27% /
/dev/nvme0n1p1 395M 235M 160M 60% /boot
tmpfs 194M 104K 194M 1% /run/user/0
/dev/sr0 8.5G 8.5G 0 100% /media/test # 已经自动挂载
实验二:自动挂载共享目录
服务器端创建共享目录,客户端实现自动挂载
一、服务端创建共享文件,编辑nfs配置文件
[root@server ~] mkdir /nfsfile
[root@server ~] vim /etc/exports
/nfsfile *(rw,sync,all_squash)[root@server ~] chmod -Rf 777 /nfsfile
[root@server ~] echo "hello hahaha" > /nfsfile/readme
[root@server ~] ls /nfsfile
reademe#定位服务端,启动服务,必须先启动rpcbind服务
[root@server ~] systemctl start rpcbind
[root@server ~] systemctl start nfs-server
二、客户端编辑自动配置文件
# 设计自动挂载本地目录:/nfs/testmnt
[root@node1 ~]# vim /etc/auto.master # 编辑自动挂载配置文件,定位第7行,输入
/nfs /etc/auto.nfs
# /nfs为本地挂载路径的父目录,可以不用创建,autofs回自动创建,auto.nfs为自配置文件,名称自定义# 查看共享信息
[root@node1 ~] showmount -e 192.168.65.200
Export list for 192.168.65.200:
/nfsfile *# 编辑自动挂载的子配置文件
[root@node1 ~]# vim /etc/auto.nfs # 书写本地挂载目录的子目录及远程共享目录
testmnt 192.168.65.200:/nfsfile#启动服务
[root@node1 ~]# systemctl start autofs
三、测试
[root@node1 ~] df -h # 查看挂载信息
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 867M 0 867M 0% /dev/shm
tmpfs 347M 5.7M 341M 2% /run
/dev/mapper/rhel-root 17G 4.5G 13G 27% /
/dev/nvme0n1p1 960M 299M 662M 32% /boot
/dev/sr1 9.9G 9.9G 0 100% /media
tmpfs 174M 52K 174M 1% /run/user/42
tmpfs 174M 36K 174M 1% /run/user/0[root@node1 ~] cd /nfs # 进入本地挂载目录,会自动新建
[root@node1 nfs] ls
[root@node1 nfs] cd testmnt # 进入本地挂载目录的下级目录,会触发自动挂载[root@node1 testmnt] df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 867M 0 867M 0% /dev/shm
tmpfs 347M 7.1M 340M 3% /run
/dev/mapper/rhel-root 17G 4.5G 13G 27% /
/dev/nvme0n1p1 960M 299M 662M 32% /boot
/dev/sr1 9.9G 9.9G 0 100% /media
tmpfs 174M 52K 174M 1% /run/user/42
tmpfs 174M 36K 174M 1% /run/user/0
192.168.65.200:/nfsfile 17G 4.3G 13G 25% /nfs/testmnt#可以看到共享的文件夹里面的文件
[root@node1 testmnt] ls
readme test1.txt test2 test3.txt test4.txt

