Re: Issue with automounter file breaks cluster

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2019-01-31 at 22:26 +0100, Frank Thommen wrote:
> Dear all,
> 
> We have a weird issue with an automounter file, where a one-line change 
> leads to the situation, that after a while (10-30 minutes?, maybe less), 
> some of the mounts stop working on some(!) nodes (not always the same) 
> of our HPC cluster.  This issue currently breaks our complete HPC 
> cluster.  To make it worse, it is not really reproducible. However after 
> three days of checking back and forth we are desperate and hope to find 
> some helpful hint through the this maillist.
> 
> The symptom is, that trying to access one of the "virtual" automounted 
> directories is answered with "No such file or directory" (see below). 
> autofs doesn't seem to even try to mount the respective filesystem and I 
> cannot recognize any previous problem in the log (debugging mode).

Is it always the same directory that becomes unresponsive?

Do you see anything at all in the log when accessing the directory
and getting the ENOENT?

Does the problem also occur if you use a HUP signal to re-read the
maps?

I have seen situations where an automount point becomes unresponsive
even though the kernel dentry flags appeared as they should to trigger
the automount.

I could never work out how this occurred but one possibility occurred
to me recently, see below.

> 
> We were initially mounting the following directory structure
> 
> (1)
> /base
>      +--sub1
>          +-- sub11
>          |    +-- [83 subdirectories via auto.sub11]
>          +-- sub12
>          +-- sub13
>          +-- sub14
>          +-- sub15
>          +-- sub16
>          |    +-- sub161
>          +-- sub17
> 
> 
> but needed to change this to
> 
> (2)
> /base
>      +--sub1
>      |   +-- sub11
>      |   |    +-- [83 subdirectories via auto.sub11]
>      |   +-- sub12
>      |   +-- sub13
>      |   +-- sub14
>      |   +-- sub15
>      |   +-- sub16
>      |        +-- sub161
>      +-- sub17
> 
> 
> In /etc/auto.master we have:
> 
> --------------------------
> /base         /etc/auto.base         browse
> --------------------------
> 
> (there are others, but only the mounts configured through /etc/auto.base 
> are affected by the problem)
> 
> 
> There are two variants of /etc/auto.base.
> 
> This variant works fine and doesn't seem to trigger any errors.  It 
> represents the directory structure (1) which we needed to change :
> --------------------------
> sub1 /sub11    -fstype=autofs,vers=3,sec=sys file:/etc/auto.sub11 
>                                        \
>           /sub12     -fstype=nfs,vers=3,sec=sys 
> share.big-fs1:/ifs/data/group/base/sub12     \
>           /sub13     -fstype=nfs,vers=3,sec=krb5 
> pool3.fast-fs1:/ifs/data/group1-sub13         \
>           /sub14         -fstype=nfs,vers=3,sec=sys 
> share.big-fs2:/ifs/data/group/base/sub14         \
>           /sub15 -fstype=nfs,vers=3,sec=sys 
> share.big-fs2:/ifs/data/group/base/sub15 \
>           /sub17       -fstype=nfs,vers=3,sec=sys 
> sub17.big-fs2:/ifs/sub17/data/sub17           \
>           /sub16/sub161 -fstype=nfs,vers=3,sec=sys 
> share.big-fs2:/ifs/data/group/base/sub16
> #        /imaging file:/etc/auto.imaging
> # sub12 is share.big-fs1:/ifs/data/group/base/sub12
> --------------------------
> 
> 
> This one results in autofs to be broken after a while on some nodes.  It 
> represents the directory structure (2) (see above):
> --------------------------
> sub1 /sub11    -fstype=autofs,vers=3,sec=sys file:/etc/auto.sub11 
>                                        \
>           /sub12     -fstype=nfs,vers=3,sec=sys 
> share.big-fs1:/ifs/data/group/base/sub12     \
>           /sub13     -fstype=nfs,vers=3,sec=krb5 
> pool3.fast-fs1:/ifs/data/group1-sub13         \
>           /sub14         -fstype=nfs,vers=3,sec=sys 
> share.big-fs2:/ifs/data/group/base/sub14         \
>           /sub15 -fstype=nfs,vers=3,sec=sys 
> share.big-fs2:/ifs/data/group/base/sub15 \
>           /sub16/sub161 -fstype=nfs,vers=3,sec=sys 
> share.big-fs2:/ifs/data/group/base/sub16
> 
> sub17       -fstype=nfs,vers=3,sec=sys   sub17.big-fs2:/ifs/sub17/data/sub17
> --------------------------
> 
> I fail to see any syntax problems in any of these two files variants.

The syntax looks ok to me too.

> 
> /etc/auto.sub11 is a list of 83 subdirectories for /base/sub1/sub11/. 
> No further mount options are defined in  /etc/auto.sub11.  It's a plain 
> "key server:share" list.
> 
> After deploying the "bad" file and restarting the automounter everything 
> works fine.  After a while, problems start happening:

That delay could correspond to the expiring away of the submount
at sub11.

Recently RedHat QE reported a problem where directories could be
created in the autofs fs after automount shutdown when the autofs
fs remained mounted due to it being in use.

Nowadays it's important for the directory topology of the autofs
file system to remain unchanged over restart so the ability to
do this has been prevented in the kernel.

That kernel change won't be included in RHEL until 7.7.

The existence of a directory within sub11, perhaps created over
restart, might be preventing the sub11 submount from being mounted
again after the expire.

So it's probably better to use a HUP signal to re-read the maps
rather than a restart.

There's also the possibility that the sub11 mount has not been
properly expired away but that should show up in the log and as
long as the map entries relating to that map are the same automount
should reconstruct the mount tree ok at start up.

Yes, you need to be careful when using sub-mounts and modifying
your maps because the daemon doesn't know what the map was before
the restart and a previously valid directory might cause odd
problems.

I'm pretty sure, for the case of a submount being expired away
I don't unconditionally remove the entire directory tree, it's
done that way for historic reasons but could possibly be changed
now.

But, having said all this, I can't say for sure what's causing
this.

> 
> --------------------------
> $ ls /base/sub1/
> sub11  sub16  sub14  sub13  sub17  sub12  sub15
> $ ls /base/sub1/sub11/
> ls: cannot open directory /base/sub1/sub11/: No such file or directory
> $
> --------------------------
> 
> We found, that if we constantly run `\ls /base/sub1/sub11`, e.g. in a 
> loop, once per minute, then the problem doesn't seem to emerge.
> 
> We are running autofs 5.0.7, release 70.el7_4.1 on CentOS 7.4.1708. 
> Updating the CentOS release ist not possible due to hardware and 
> software constraints.

Is patching and re-building the CentOS kernel possible in your
environment?

There have been other problems related to the autofs directory
tree becoming out of sync leading to unresponsive mounts but
I don't think there was anything along those lines between 7.4
and now.

> 
> 
> I can provide the debug log from a timepoint shortly after the 
> automounter has been restarted (everything ok) until a timepoint, when 
> the problem occurs.

It would probably be better to review this type of info. in a
bugzilla bug.

I'd rather not do that in CentOS bugzilla because if there is a
change needed in RHEL there needs to be a RHEL bug for me to get
it reviewed and possibly included.

You can always log a bug directly in RedHat bugzilla against the
corresponding RHEL release. It doesn't matter to me that your
using CentOS but ...

Be aware that bugs logged directly in Bugzilla are best effort
as time permits with bugs that come in via support or other
internal sources having priority, as you'd expect.

Ian




[Index of Archives]     [Linux Filesystem Development]     [Linux Ext4]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux