NFS之autofs自动挂载问题(原创)

本文记录了一次生产环境中因NFS与autofs配置不当导致的自动挂载失败问题,详细描述了故障现象、配置错误及解决方案,强调了正确配置的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NFS之autofs自动挂载问题


笔者在生产环境中遇到这样一个问题,使用autofs自动挂载nfs共享时,由于配置上的失误导致了生产环境中业务的短暂中断,好在及时恢复了,没有造成大的损失。

故障描述:nfs客户端使用autofs故障导致/home目录挂载的卷被卸载。

客户端/etc/auto.master的配置文件如下:

注意:笔者就是该配置中犯了第一个错误,将/home目录设置为/etc/auto.nfs的主目录。也就是说,笔者将服务器端的10.241.96.124:/home/clfx挂载至nfs客户端本地的/home/clfx目录

## autofs的主配置文件
[root@node01 home]# cat /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).
#
#/misc	/etc/auto.misc
/home	/etc/auto.nfs
#
# NOTE: mounts done from a hosts map will be mounted with the
#	"nosuid" and "nodev" options unless the "suid" and "dev"
#	options are explicitly given.
#
/net	-hosts
#
# Include /etc/auto.master.d/*.autofs
# The included files must conform to the format of this file.
#
+dir:/etc/auto.master.d
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master

## auto.nfs的配置如下
[root@node01 ~]# cat /etc/auto.nfs
clfx -fstype=nfs,rw,bg,hard,rsize=32768,wsize=32768 10.241.96.124:/home/clfx


在未挂载之前,/home目录中是存在如下子目录的

[root@node01 ~]# ls /home/
admin  clfx

接下来,笔者就启动autofs自动挂载nfs共享,当挂载完成后,生产环境中该客户端服务器上/home目录下的tomcat和应用目录都不见了。且业务也无法正常访问。

此时,再次查看/home目录

## 再次查看/home目录,发现admin目录不见了。
[root@node01 ~]# ls -l /home/
total 0

## cd到挂载目录,可以进入,并且已经挂载了服务器端共享
[root@node01 ~]# cd /home/clfx
[root@node01 clfx]# ls
aaaaaa  node01.chan.com  test1.txt  test2.txt  test3.txt
[root@node01 clfx]# cd ..

## 再次查看/home,发现只有clfx,没有admin
[root@node01 home]# ls -l
total 0
drwxrwxr-x 2 root root 116 Jan 16 23:45 clfx

生产环境中,验证业务已经无法正常访问,发现了应用目录不见了,笔者这里的是admin目录,场景是一样的。

此时,笔者再次犯了第二个错误,将autofs停止了,但是停止后,admin目录还是没有出现。而生产环境中,/home目录本来就是已经挂载了/dev/mapper/lv_home这个逻辑卷的,autofs也已经将/dev/mapper/lv_home这个逻辑卷给umount了。

[root@node01 home]# systemctl stop autofs.service
[root@node01 home]# ls -l
total 0

笔者尝试将/etc/auto.master中的如下配置注释掉,重新启动autofs,发现还是没有发现admin目录

[root@node01 home]# ls -l
total 0

尝试重新启动autofs,还是没有admin目录,还是没有发现admin目录。

[root@node01 home]# systemctl restart autofs.service
[root@node01 home]# ll
total 0

尝试查看mount

[root@node01 ~]# mount |grep 'home'
/etc/auto.nfs on /home type autofs (rw,relatime,fd=-1,pgrp=38150,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=-1)

在这里,我们发现,/home目录现在挂载了/etc/auto.nfs,而这个只是一个配置文件。

解决方案:

umount掉/etc/auto.nfs

[root@node01 ~]# umount /etc/auto.nfs
[root@node01 ~]# mount|grep /home
[root@node01 ~]# 
[root@node01 ~]# ls /home/
admin  clfx
[root@node01 ~]# 

再次查看发现已经发现了admin目录。

生产环境中,即使umount掉了/etc/auto.nfs,/home目录本来就是已经挂载的/dev/mapper/lv_home则需要手动执行挂载命令了。

### AutoFS 自动挂载服务配置 #### 配置基础环境 为了使 `autofs` 正常工作,需确认已安装该软件包。通常情况下,在大多数 Linux 发行版中可通过包管理器完成此操作。 对于基于 Red Hat 的系统: ```bash yum install autofs ``` 对于 Debian 或 Ubuntu 系统,则应使用 apt-get 安装工具来获取并设置 `autafs`[^1]。 #### 编辑主配置文件 `/etc/auto.master` 这是定义所有自动装载点的主要位置。每条记录指定了一个或多个子映射的位置以及它们对应的路径。例如: ```bash /misc /etc/auto.misc /net -hosts ``` 上述命令表示将读取位于 `/etc/auto.misc` 文件中的额外映射信息用于 `/misc` 路径下的资源;而 `-hosts` 则意味着会利用网络上的主机名作为键去查找相应的 NFS 导出目录。 #### 创建特定于需求的地图文件 假设要创建名为 `auto.mydata` 的新地图文件,其中包含指向远程服务器上共享的数据集链接。编辑后的文件可能如下所示: ```bash /data1 server:/exported/path/to/data1 /data2 server:/another/exported/path/ ``` 这里每一项都代表了一个可由客户端请求访问的具体目标地址。 #### 更新 master map 并重启服务 当完成了对自定义地图文件的编写之后,记得将其加入到 `/etc/auto.master` 中,并通过下面这条指令让更改生效: ```bash service autofs restart ``` 这一步骤确保了最新的配置能够立即应用至整个系统当中。 --- ### 故障排查指南 如果遇到无法正常工作的状况,可以按照以下方法尝试解决问题: - **日志审查**: 查看 `/var/log/messages` 或者专门的日志文件(取决于发行版本),寻找有关错误的信息提示。 - **验证权限**: 确认用户具有足够的权利执行必要的动作,比如读写指定的目标文件夹等。 - **测试连接性**: 对于涉及网络资源的情况,请先单独检验能否顺利连通远端机器及其所提供的服务接口。 - **简化配置**: 尝试移除复杂的选项设定,回到最简单的状态重新评估问题所在之处。 - **查阅手册页**: 使用 man 命令查看官方文档获得更详细的说明和支持建议,如 `man 5 auto.master` 和 `man 8 automount`.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值