File:  [NetBSD Developer Wiki] / wikisrc / projects / project / new-automounter.mdwn
Revision 1.7: download - view: text, annotated - select for diffs
Wed Dec 11 06:31:57 2019 UTC (2 years, 6 months ago) by tkusumi
Branches: MAIN
CVS tags: HEAD
autofs: "for DragonflyBSD" -> "a port from DragonFlyBSD"

[[!template id=project

title="New automounter"



duration="3 months"
done_by="Tomohiro Kusumi <> (a port from DragonflyBSD)"

NetBSD currently uses amd for automatically mounting (network) file systems. This software package implements an automounter file system as a userland NFS daemon. While this generally works it has major drawbacks:

* File systems are not mounted directly on the desired mount point. As a result applications frequently use incorrect pathnames (e.g. `/amd/server/home/user` instead of `/home/user`) for automatically mounted directories or files beneath them. This is especially problematic in heterogeneous enviroments where not all machines use the same automounter.
* The automounter daemon cannot handle high I/O load very well; file access occasionally fails with intermittent errors.
* Userland NFS daemons are prone to deadlocking.

The milestones of this project are:

* implement a new automounter solution which has configurable mount points
* improve behavior under load I/O
* show benchmarks and implement automated tests

There are at least two possible approaches: one is to port FreeBSD's
autofs(4), which is an in-kernel file system. This has the advantage
of already existing, and being at least loosely Linux and Solaris
compatible. (One could also write a new autofs but that doesn't seem
like a dominant strategy.)

Another possible approach is a new userland daemon using puffs.

Note that automount configuration is a complex and largely unsolved
problem. While it's desirable to be compatible with existing
automounter configuration (because often organizations like to
distribute automounter maps through NIS or other facilities) it's also
desirable to have a simple, comprehensible, and cogent configuration
scheme and these desires are rather at odds.

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb