• 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.
Node.pm.in 93.2 KB