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

NFS之autofs自动挂载问题

[TOC]

笔者在生产环境中遇到这样一个问题,使用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则需要手动执行挂载命令了。

你可能感兴趣的:(NFS之autofs自动挂载问题(原创))