1. 22 Apr, 2014 1 commit
  2. 26 Mar, 2014 1 commit
  3. 07 Mar, 2014 1 commit
  4. 27 Feb, 2014 1 commit
  5. 26 Feb, 2014 1 commit
  6. 24 Jan, 2014 1 commit
  7. 16 Dec, 2013 1 commit
    • Leigh B Stoller's avatar
      Couple of fixes for XEN. · 8311c7f3
      Leigh B Stoller authored
      1. The backend process that starts the XEN vm (xl/xm) was not happy
         with the signal mask settings. By pass that for the vnodeboot call
         so that xl/xm sees a clean mask. The sympton was processes getting
         left behind.
      
      2. Watch for a XEN container being rebooted from inside, by waiting a
         little bit to see if comes back on its own. We used to fold right
         away, but now keep running.
      8311c7f3
  8. 19 Sep, 2013 1 commit
  9. 23 Jul, 2013 1 commit
  10. 30 Apr, 2013 1 commit
  11. 27 Feb, 2013 2 commits
  12. 30 Jan, 2013 1 commit
    • Kirk Webb's avatar
      Refactor generic vnode setup code a bit for OS independence · f7c51ea6
      Kirk Webb authored
      In order to hook in via the "generic vnode" path for setting up
      blockstores under FreeNAS, I've done a bit of shuffling in order to
      make things more OS-independent and reusable.
      
      * mkvnode.pl
      
      Moved to clientside/tmcc/common.  OS-dependent bits (really only some
      IPtables stuff) abstracted, and moved to tmcc/linux/libvnode.pm.
      
      * libvnode.pm
      
      Moved generic vnode stuff to a new module.  Moved miscellaneous
      utility functions to a new module.  Left OS-specific stuff.  Not
      really sure if what is left should be merged into libsetup/liblocsetup
      or left here - deferring this decision for now.
      
      * libgenvnode.pm
      
      New module currently containing generic vnode stuff.  Currently, the
      VNODE_* predicates are here.
      
      * libutil.pm
      
      New module containing miscellaneous utility functions (fatal,
      mysystem, mysystem2, setState, etc.)
      
      Files referencing libvnode.pm have been updated, as have the relevant
      Makefiles.
      f7c51ea6
  13. 03 Oct, 2012 1 commit
  14. 28 Sep, 2012 2 commits
  15. 25 Sep, 2012 1 commit
    • Leigh B Stoller's avatar
      Changes to support XEN shared nodes and guest snapshots. · 2489c09b
      Leigh B Stoller authored
      Snapshots are done a little differently then openvz of course, since
      there are potentially multiple disk partitions and a kernel. The basic
      operation is:
      
      1. Fire off reboot_prepare from boss. Changes to reboot_prepare result
         in the guest "halting" insted of rebooting.
      
      2. Fire off the create-image client script, which will take imagezips
         of all of the disks (except the swap partition), and grab a copy of
         the kernel. A new xm.conf file is written, and then the directory
         is first tar'ed and then we imagezip that bundle for upload.
      
      3. When booting a guest, we now look for guest images that are
         packaged in this way, although we still support the older method
         for backwards compatability. All of the disks are restored, and a
         new xm.conf created that points to the new kernel.
      2489c09b
  16. 24 Sep, 2012 1 commit
    • Eric Eide's avatar
      Replace license symbols with {{{ }}}-enclosed license blocks. · 6df609a9
      Eric Eide authored
      This commit is intended to makes the license status of Emulab and
      ProtoGENI source files more clear.  It replaces license symbols like
      "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
      blocks that contain actual license statements.
      
      This change was driven by the fact that today, most people acquire and
      track Emulab and ProtoGENI sources via git.
      
      Before the Emulab source code was kept in git, the Flux Research Group
      at the University of Utah would roll distributions by making tar
      files.  As part of that process, the Flux Group would replace the
      license symbols in the source files with actual license statements.
      
      When the Flux Group moved to git, people outside of the group started
      to see the source files with the "unexpanded" symbols.  This meant
      that people acquired source files without actual license statements in
      them.  All the relevant files had Utah *copyright* statements in them,
      but without the expanded *license* statements, the licensing status of
      the source files was unclear.
      
      This commit is intended to clear up that confusion.
      
      Most Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the Affero GNU General Public License, version 3
      (AGPLv3).
      
      Most Utah-copyrighted files related to ProtoGENI are distributed under
      the terms of the GENI Public License, which is a BSD-like open-source
      license.
      
      Some Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the GNU Lesser General Public License, version 2.1
      (LGPL).
      6df609a9
  17. 29 Aug, 2012 1 commit
  18. 16 Aug, 2012 1 commit
  19. 17 Jul, 2012 1 commit
    • Leigh B Stoller's avatar
      Add tracking of control net mac addresses in the node_history. · bb66f52e
      Leigh B Stoller authored
      For InstaGeni, need to record and be able to search for history by
      control net mac address. We now record this in the node_history table,
      with corresponding change to the ShowNodeHistory web page.
      
      The backend changes required are that we 1) actually generate a mac
      address for VMs and stick it into the interfaces record, 2) return
      that mac from tmcd in the jailconfig, and 3) have the openvz library
      create the control net interface using that mac.
      
      On the openvz image, needed to switch to using a control network
      bridge for all interfaces (not just routable ones) so that traffic
      leaves the node with the correct mac.
      bb66f52e
  20. 05 Jul, 2012 2 commits
  21. 02 Jul, 2012 1 commit
  22. 06 Jun, 2012 1 commit
  23. 23 May, 2012 1 commit
  24. 17 Jan, 2012 1 commit
  25. 10 Jan, 2012 1 commit
  26. 09 Jan, 2012 1 commit
  27. 04 Jan, 2012 1 commit
    • Leigh B Stoller's avatar
      A big set of robustness changes to how vnodes are created and · 6991d85f
      Leigh B Stoller authored
      managed.
      
      * Try much harder to prevent broken VMs from getting left behind.
      
      * Try even harder to prevent left of state (devices, volumes, etc)
        from getting left behind once a VM breaks.
      
      * Store all the assorted bits of state we create in a file so that it
        it can be cleaned up later.
      
      * Watch for "stale" VMs that got left behind, using the UUID, which is
        regenerated each time an experiment is swapped in. Since we now
        store all the state that was associated with the stale VM, we can
        actually tear it down later. To do this by hand:
      
         node> sudo /usr/local/etc/emulab/mkvnode.pl -c pcvmXXX-YYY
      
      * Lots of changes to signal handling to avoid a common problem case;
        trying to reboot or halt a VM that is still setting up.
      6991d85f
  28. 19 Nov, 2011 1 commit
  29. 21 Jul, 2011 1 commit
  30. 25 Oct, 2010 1 commit
  31. 19 Oct, 2010 1 commit
  32. 23 Jun, 2010 1 commit
  33. 18 Jun, 2010 1 commit
  34. 07 Dec, 2009 1 commit
  35. 13 Nov, 2009 1 commit
  36. 22 Oct, 2009 1 commit
  37. 12 Oct, 2009 1 commit
    • David Johnson's avatar
      Add the ability to load images on virtnodes. For now, we just overload · c6c57bc9
      David Johnson authored
      the tb-set-node-os command with a second optional argument; if that is
      present, the first arg is the child OS and the second is the parent OS.
      We add some new features in ptopgen (OS-parentOSname-childOSname) based
      off a new table that maps which child OSes can run on which parents, and
      the right desires get added to match.  We setup the reloads in os_setup
      along with the parents.  Also needed a new opmode, RELOAD-PCVM, to handle
      all this.
      
      For now, users only have to specify that their images can run on pcvms, a
      special hack for which type the images can run on.  This makes sense in
      general since there is no point conditionalizing childOS loading on
      hardware type at the moment, but rather on parentOS.  Hopefully this stuff
      wiill mostly work on shared nodes too, although we'll have to be more
      aggressive on the client side garbage collecting old frisbee'd images for
      long-lived shared hosts.
      
      I only made these changes in libvtop, so assign_wrapper folks are left in
      the dark.
      
      Currently, the client side supports frisbee.  Only in openvz for now, and
      this probably breaks libvnode_xen.pm.  Also in here are some openvz
      improvements, like ability to sniff out which network is the public
      control net, and which is the fake virtual control net.
      c6c57bc9