1. 16 Dec, 2013 21 commits
  2. 13 Dec, 2013 3 commits
  3. 12 Dec, 2013 1 commit
  4. 11 Dec, 2013 15 commits
    • Mike Hibler's avatar
      Avoid races with tearing down SAN lans while the client is still active. · c63cd75c
      Mike Hibler authored
      Add a swapout-time triggered program agent that does a "rc.storage fullreset"
      to ensure that the client has unmounted and detached from SAN volumes.
      Eventsys shutdown (which triggers the swapout event sequence) is done before
      VLAN teardown so this works.
      c63cd75c
    • Mike Hibler's avatar
    • Mike Hibler's avatar
      A skeleton for the eventual blockstore consistency checker. · a138ab3c
      Mike Hibler authored
      Right now it is just full of comments about what should be checked.
      a138ab3c
    • Mike Hibler's avatar
      Null rc.kname file for FreeNAS. · 14256de0
      Mike Hibler authored
      Note that we don't actually have an install target for FreeNAS, so this
      file mostly serves as a reminder that we must overwrite the FreeBSD version
      of rc.kname on freenas.
      14256de0
    • Mike Hibler's avatar
    • Mike Hibler's avatar
      The parser-side of persistent blockstore support. · 09177fb2
      Mike Hibler authored
      In parse-ns, we generate a list of accessible blockstores and put that in
      the .input file. The accessiblity check right now is just that the blockstore
      (actually lease) pid must match that of the experiment. This needs to be
      generalized.
      
      The blockstore set-lease command verifies that the asked-for lease matches
      one of those accessible blockstores. If it does, it make sure the correct
      size and other info wind up in the virt_blockstores table. Less obviously,
      but of critical importance, it emits a "lease" virt_blockstore_attribute
      with the correct lease index. This attributes gets converted into the
      desire that is added by vtopgen to the .vtop file.
      09177fb2
    • Mike Hibler's avatar
      Mapping changes to support persistent blockstores. · a721e561
      Mike Hibler authored
      Quite simple actually. In ptopgen we add all persistent stores, which
      are identified by having a non-zero lease_idx. To ensure they are only
      matched up with the correct virt_blockstore, we add a feature "bs-lease-NN"
      where NN is the unique lease index with weight 1.0.
      
      In vtopgen, when a request is made to map a persistent store, we first
      verify that the experiment pid matches that of the blockstore's lease
      (this is a fer-now simple check which is actually redundant as we make
      this check in the parser too) and ensure that the blockstore is not already
      mapped (indicated by the blockstore_state entry having size==0) and then
      we emit an entry with desire "bs-lease-NN" and weight 1.0.
      
      Most of the file changes were actually to get the "preassign" flag to
      vtopgen forwarded into the various libvtop modules so that I can check it
      and not perform the permission/size check if it is set.
      a721e561
    • Mike Hibler's avatar
      Pass PERSIST=1 when the blockstore is persistent. · 8ac5ad30
      Mike Hibler authored
      This is a bit hacky as noted in the comment:
      
                     * XXX we only put out the PERSIST flag if it is set.
                     * Since the client-side is stupid-picky about unknown
                     * attributes, this will cause an older client to fail
                     * when the attribute is passed. Believe it or not,
                     * that is a good thing! This will cause an older
                     * client to fail if presented with a persistent
                     * blockstore. If it did not fail, the client would
                     * proceed to unconditionally create a filesystem on
                     * the blockstore, wiping out what was previously
                     * there.
      8ac5ad30
    • Mike Hibler's avatar
      Added a bstore_allowed attribute for exported blockstores. · 6177887d
      Mike Hibler authored
      This specifies what types of bstores are allowed to be allocated from
      the space. Currently, just used to isolate datasets to one particular pool.
      6177887d
    • Mike Hibler's avatar
      Add AvailableCapacity method. · 1fb3e726
      Mike Hibler authored
      1fb3e726
    • Mike Hibler's avatar
      First cut at refactoring FreeNAS code. · a2bccf93
      Mike Hibler authored
      Move the command execution and storage-related stuff from
      libvnode to libfreenas. The interface and vlan stuff is still in
      libvnode since it is currently the only one that uses it.
      a2bccf93
    • Mike Hibler's avatar
      Differentiate persistent blockstores. · 60eace23
      Mike Hibler authored
      We don't want to alloc/dealloc them on vnode setup.
      60eace23
    • Mike Hibler's avatar
      Doh, fix the path for the proxy program. · 20ec5f28
      Mike Hibler authored
      20ec5f28
    • Mike Hibler's avatar
    • Mike Hibler's avatar
      FreeNAS support for bscontrol program. · 8932fdbf
      Mike Hibler authored
      Right now, libfreenas.pm is largely a duplication of libvnode_freenas.
      The two need to be refactored.
      8932fdbf