1. 03 Feb, 2016 3 commits
    • Leigh B Stoller's avatar
      Add support for multiple pre-reservations per project: · 103e0385
      Leigh B Stoller authored
      When creating a pre-reserve, new -n option to specify a name for the
      reservation, defaults to "default". All other operations require an
      -n option to avoid messing with the wrong reservation. You are not allowed
      to reuse a reservation name in a project, of course. Priorities are
      probably more important now, we might want to change the default from 0 to
      some thing higher, and change all the current priorities.
      
      For bookkeeping, the nodes table now has a reservation_name slot that is
      set with the reserved_pid. This allows us to revoke the nodes associated
      with a specific reservation. Bonus feature is that when setting the
      reserved_pid via the web interface, we leave the reservation_name null, so
      those won't ever be revoked by the prereserve command line tool.
      
      New feature; when revoking a pre-reserve, we now look to see if nodes being
      revoked are free and can be assigned to other pre-reserves. We used to not
      do anything, and so had to wait until that node was allocated and released
      later, to see if it could move into a pre-reserve.
      
      Also a change required by node specific reservations; when we free a node,
      need to make sure we actually use that node, so have to cycle through all
      reservations in priority order until it can used. We did not need to do
      this before.
      103e0385
    • Leigh B Stoller's avatar
      Turn on socket keep alives so that long running connections (say, · 70c94bca
      Leigh B Stoller authored
      statewait) are not killed by the stateful firewall.
      70c94bca
    • Leigh B Stoller's avatar
      Minor bug fix. · 4eeb7e8c
      Leigh B Stoller authored
      4eeb7e8c
  2. 02 Feb, 2016 8 commits
  3. 01 Feb, 2016 3 commits
  4. 31 Jan, 2016 4 commits
    • Mike Hibler's avatar
      Rudiments of TRIM support in frisbee/imageunzip. · 3a477018
      Mike Hibler authored
      Consists of just a command line option right now!
      3a477018
    • Mike Hibler's avatar
      Add TRIM support to clientside of frisbee MFS. · 2f3b1c67
      Mike Hibler authored
      Currently this is done using the -E (erase) option to zapdisk to
      erase a partition or the entire disk.
      
      We run zapdisk before starting a frisbee load. Ultimately, I want
      TRIM support in frisbee proper (to erase rather than skip or zero
      free blocks), but erasing the entire disk might be a better option
      anyway (frisbee itself will benefit from the TRIMed disk).
      
      Notes:
      
      We only trim the disk when a node is in reloading. Didn't want to take
      a chance on having a user reload a partition on their disk and wind up
      getting the entire disk erased. That should not happen, but I didn't
      want to think through all the possibilities right now.
      
      Only works on FreeBSD right now. Linux MFS will still need to be modified.
      Just didn't want to track down how Linux does block erase right now.
      
      The clientside here is different than what is used on the Moonshots.
      On the Linux-based Moonshot MFS, we TRIM in slicefix by running fstrim
      on the root FS we just layed down. This used to be a good alternative
      back when the root FS occupied the entire disk, but now it won't work
      as well as we will only trim blocks from the first 6GB. Need to switch
      this over to the zapdisk (or frisbee) based TRIM.
      
      The server infrastructure on the Moonshots is the same: tmcc passes a
      TRIM=1 flags in "loadinfo" when the disk should be trimmed. So when to
      TRIM is based on the time since the last TRIM, and can now be specified
      site-wide, per-nodetype, or per-node.
      
      Currently, slicefix (x86 or ARM) doesn't do anything to the FS layed
      down to ensure that TRIM is done during the lifetime of the FS. Both
      FreeBSD and Linux have such options that can be set when the FS is
      created or added with tunefs. We need to think about this for mkextrafs
      and local blockstores as well.
      2f3b1c67
    • Mike Hibler's avatar
      Tweaks to TRIM reporting code. · f927aba6
      Mike Hibler authored
      Make the interval between TRIM operations a per nodetype (or per node)
      attribute instead of a global site variable. The sitevar will still be
      used to turn TRIM on or off globally.
      f927aba6
    • Leigh B Stoller's avatar
  5. 29 Jan, 2016 13 commits
  6. 28 Jan, 2016 9 commits