1. 22 Nov, 2017 1 commit
  2. 13 Nov, 2017 1 commit
    • Mike Hibler's avatar
      Speed up the (common) case where no nodes in an experiment are in the MFS. · 270878a0
      Mike Hibler authored
      On nfree, we call nfsmfs_setup will all nodes in the experiment even
      though it is unlikely that any of them are in the MFS. Even so, we were
      unconditionally doing a "zfs share -a" to make sure the exports table was
      up to date. This hurt hard in our environment where we have a zillion users
      and oodles of nodes (these are very precise thresholds!)
      
      Also, use "mount" to get the list of mounted NFS MFS filesystems rather
      than "zfs list" which likewise can be quite painful when there are a gazillion
      (1 gazillion > 1 zillion) ZFS filesystems.
      270878a0
  3. 09 Dec, 2014 1 commit
  4. 05 Dec, 2014 1 commit
    • Mike Hibler's avatar
      Support dynamically created NFS-root filesystems for admin MFS. · f36bcfab
      Mike Hibler authored
      Significant hackary involved. Similar to exports_setup, there is a boss-side
      script and an ops-side script to handle creation and destruction of the ZFS
      clones that are used for the NFS filesystem. The rest was all about when to
      invoke said scripts.
      
      Creation is easy, we just do a clone whenever the TBAdminMfsSelect is called
      to "turn on" node admin mode. Destruction is not so simple. If we destroyed
      the clone on the corresponding TBAdminMfsSelect "off" call, then we could
      yank the filesystem out from under the node if it was still running in the
      MFS (e.g., "node_admin -n off node"). While that would probably be okay in
      most uses, where at worst we would have to apod or power cycle the node, we
      try to do better. TBAdminMfsSelect "off" instead just renames the clone
      (to "<nodeid>-DEAD") so that it stays available if the node is running on
      it at the time, but ensures that it will not get accidentally used by any
      future boot. We check for, and destroy, any previous versions for a node
      every time we invoke the nfsmfs_setup code for that node. We also destroy
      live or dead clones whenever we call nfree. This ensures that all MFSes
      get cleaned up at experiment swapout time.
      f36bcfab