1. 12 Apr, 2016 1 commit
  2. 23 Dec, 2015 1 commit
  3. 21 Oct, 2015 1 commit
  4. 07 Oct, 2015 2 commits
  5. 13 Aug, 2015 1 commit
  6. 06 Aug, 2015 1 commit
  7. 04 Aug, 2015 1 commit
    • Mike Hibler's avatar
      Support for FreeNAS 9.3. · 490d011a
      Mike Hibler authored
      This REPLACES FreeNAS 9.2 support. The two are incompatible.
      
      This new code uses the REST API whereever possible (i.e., when it is
      implemented and works). There is some client-side reorg going on too.
      490d011a
  8. 28 Jan, 2015 1 commit
    • Mike Hibler's avatar
      Implement "plan 1" for dataset sharing: "ephemeral RO snapshots". · 7aefdaa1
      Mike Hibler authored
      You can now simultaneously RW and RO map a dataset because all the RO
      mappings use copies (clones) of a snapshot. Only a single RW mapping
      of course.
      
      When the RW mapping swaps out it automatically creates a new snapshot.
      So there is currently no user control over when a version of the dataset
      is "published", it just happens everytime you swapout an experiment with
      a RW mapping.
      
      A new RW mapping does not affect current RO mappings of course as they
      continue to use whatever snapshot they were created with. New RO mappings
      with get the most recent snapshot, which we currently track in the DB via
      the per-lease attribute "last_snapshot".
      
      You can also now declare a lease to be "exclusive use" by setting the
      "exclusive_use" lease attribute (via modlease). This means that it follows
      the old semantics of only one mapping at a time, whether it be RO or RW.
      This is an alternative to the "simultaneous_ro_datasets" sitevar which
      enforces the old behavior globally. Primarily, I put this attribute in to
      prevent an unexpected failure in the snapshot/clone path from wreaking
      havoc over time. I don't know if there is any value in exposing this to
      the user.
      7aefdaa1
  9. 22 Jan, 2015 1 commit
  10. 12 Jan, 2015 1 commit
  11. 09 Jan, 2015 3 commits
  12. 08 Jan, 2015 1 commit
    • Kirk Webb's avatar
      Backend support for simultaneous read-only dataset access. · 9b6e1a59
      Kirk Webb authored
      Any number of users/experiments can mount a given dataset (given that
      they have permission) in read-only mode.  Attempts to mount RW will
      fail if the dataset is currently in use.  Attempts to mount RO while
      the dataset is in use RW are also prohibited.
      
      Under the hood, iSCSI lease exports (targets) are now managed per-lease
      instead of per-experiment.  The set of authorized initiators (based
      on network) is manipulated as consumers come and go.  When the last
      consumer goes, the export is torn down. Likewise, if there are no
      current consumers, a new consumer will cause an iSCSI export to be
      created for the lease.
      
      Also included in this commit is a small tweak to implicit lease permissions.
      9b6e1a59
  13. 09 Oct, 2014 1 commit
  14. 08 Oct, 2014 1 commit
    • Kirk Webb's avatar
      Fix vlan interface handling under FreeNAS 9. · d403580d
      Kirk Webb authored
      FreeNAS 9 has reached a new level of broken in its handling of network
      configuration. Essentially each time a vlan interface is added, or
      IP configuration is added, it wipes all existing vlan configurtion
      and recreates it from its database.  Worse, when IP addresses/aliases
      are removed, it completely shuts off all network interfaces and
      re-configures them from scratch. ALL interfaces.  All of them.
      Every last one. Even those that are not in scope for the current
      modification operation.
      
      So, we now do ALL network manipulation, including create/destroy
      vlan operations, behind FreeNAS's back.  As a consequence, FreeNAS's
      UI will often not show the actual network configuration - it will only
      list those things that have been set up statically through its
      interfaces (command line or UI).
      d403580d
  15. 02 Oct, 2014 1 commit
    • Mike Hibler's avatar
      FreeNAS 9 support, "improved" FreeNAS 8 support. · 23447d73
      Mike Hibler authored
      A clientside top-level "gmake freenas-tarball" will build everything and
      construct an appropriate tarball. You must either build on FreeBSD 8.3 or
      FreeBSD 9.2, depending on the version of FreeNAS you are targetting.
      
      This cannot be done native on the FreeNAS box! In part because there is
      no compiler there, but even if there was, the install target would wreak
      havoc on a full root filesystem; it assumes it is working on a skeleton
      FS with just the Emulab stuff in it.
      
      Mostly this commit is grotesque Makefile hacking due to our tragic
      client-side tmcc OS-specific directory structure. Hey, don't blame me!
      It was, um...okay DO blame me...
      23447d73
  16. 12 Feb, 2014 1 commit
    • Kirk Webb's avatar
      Bugfix for FreeNAS iSCSI (authorized initiators) · 50ce08ee
      Kirk Webb authored
      This commit is the counterpart to Dave's recent freenas-config
      update to stabilize iSCSI configuration management in FreeNAS.
      The code here preserves the iSCSI initiator group ID tags as
      blockstores are mapped in and out.  The iSCSI target implementation
      really does not like it when these initiator groups are redefined
      while still in use by logical units (even if they are simply
      being renumbered).
      
      The bad part about this is it forced us to change the actual FreeNAS
      code.  At some point I will submit a pull request for this and see
      where it goes.
      50ce08ee
  17. 27 Jan, 2014 1 commit
  18. 22 Jan, 2014 1 commit
  19. 11 Dec, 2013 2 commits
  20. 13 May, 2013 1 commit
  21. 05 Apr, 2013 5 commits
    • Kirk Webb's avatar
      More better retries for deleting the volume. · 8cc46254
      Kirk Webb authored
      8cc46254
    • Kirk Webb's avatar
      Keep calm and carry on deleting resources · 02ab4a86
      Kirk Webb authored
      Keep trying to remove resources even when some of them fail to be reaped
      properly.  Log problems/errors, but tell mkvnode.pl that all is well in
      most cases.
      
      DO signal failure during vnode destruction if the key volume removal step
      fails.  This way we don't lose track of the state needed for a future
      cleanup attempt.
      02ab4a86
    • Kirk Webb's avatar
      Use full netmask for first IP alias. · 8cdbeb37
      Kirk Webb authored
      8cdbeb37
    • Kirk Webb's avatar
      Overhaul of blockstore vm setup/teardown/cleanup. · dde74ba0
      Kirk Webb authored
      Simplified several things - got rid of some unnecessary checks that were
      actually causing problems.  Moved IP alias creation to appropriate
      library entry points (since they are now ephemeral constructs).  Fixed
      vlan interface creation/destruction to better support lans.  Changed how
      the vnode's state (existence, running, stopped, etc.) are checked.  This
      should fix stale resource cleanup and is also more lightweight.  Finally,
      keep the lock even while retrying deallocation when volume is busy.
      dde74ba0
    • Kirk Webb's avatar
      Support multiple blockstores on the same LAN/subnet. · 647fbc40
      Kirk Webb authored
      Allow shared storage hosts to have multiple blockstore pseudo-VMs that
      are colocated on the same subnet/LAN.
      647fbc40
  22. 02 Apr, 2013 2 commits
  23. 22 Mar, 2013 1 commit
    • Kirk Webb's avatar
      Reorder iSCSI teardown sequence and add a wait. · ea49a4eb
      Kirk Webb authored
      Reorder the teardown sequence walked through for undoing the "EXPORT" storage
      directive on FreeNAS.  Hopefully this improves the reliability of this
      procedure.  Also added a wait after the iSCSI extent teardown so that whatever
      might still be holding the underlying ZVOL has time to let go before we try
      to delete it.
      ea49a4eb
  24. 27 Feb, 2013 8 commits