Autofs, Cambridge 2014

Autofs, Cambridge 2014

Autofs Edward Tomasz Napierała / FreeBSD Foundation What's an automounter? • Have all filesystems accessible all the time, without keeping them mounted. • Dynamic maps, to avoid configuring every single mount • Centralized maps (LDAP) What's wrong with amd(8)? • Map format different from Sun • No LDAP in base, so amd(8) gets built without it • Calls mount(2) syscall directly • Userland NFS magic, the evil kind Autofs project scope • Cleanroom reimplementation • Proper autofs(4) • "Industry standard" map format • Directory services (LDAP) • Can mount any filesystem • Scripts, man pages, handbook Maps • auto_master(5) references individual maps # $FreeBSD$ # # Automounter master map, see auto_master(5) for details. # /net -hosts -nosuid /auto/groups autofs.group +auto.master • Maps define actual remote filesystems SLES10 -rw,nosuid elmer:/vol/vol3/sys-li9/& • Direct vs indirect maps autofs(4) • Very simple filesystem, less than 1KLOC • Triggering mechanism • Simple directory hierarchy for indirect maps • VOP forwarding to the newly mounted vnode automount(8) • Sets up autofs(4) mounts based on auto_master(5) and indirect maps • Runs during startup, or manually after auto_master(5) modification • Some utility functions, eg. "automount -u". automountd(8) • Daemon handling trigger requests from autofs(4) • Locates the map, parses it, runs mount command • One process per request; no need to be asynchronous • No state; can be restarted at any time autounmountd(8) • Watches for filesystem events using kqueue(2), records mount time, unmounts after a while • Only touches filesystems with "automounted" mount option set Extensibility • How special maps are just shell scripts • Easy to modify to fit existing LDAP infrastructure, eg removing unsupported mount options • Working around not having OpenLDAP in base • Trivial debugging - just run the script by hand Reliability • Retries, for transient network problems • Timeouts, to not wedge the system indefinitely • Cache, to avoid unnceccessary requests • ^C at any time Demo! Problems • Never block automountd(8) or any of its children, mount(8) in particular • Interaction with fts(3) • Lack of hierarchical mounts • Duplicated mounts Questions? (https://github.com/trasz/autofs).

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    14 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us