1. 25 Apr, 2011 1 commit
    • Mike Hibler's avatar
      Hopefully short-term fix to allow more general mixing of pnodes and vnodes. · bf0c2929
      Mike Hibler authored
      The current state of affairs is that you can only set the "link emulation"
      style at the experiment level, and that forces link emulation on physical
      nodes as well as virtual nodes. Thus you are forced into using either 802.11
      tagged vlan emulation or an OS that supports something called "veths" on
      physical nodes.
      
      From the comment:
      
         This is a very, very, very special case. If a non-encapsulating veth
         interface (veth-ne) maps 1-to-1 with an underlying physical interface,
         we want to just use the physical interface instead. This allows OSes
         (on physical nodes) which don't support a veth device (i.e., most of
         them) to talk to vnodes which are using veth-ne style.
      
         This can go away once we have separated the notion of multiplexing
         links from encapsulating links (a historical conflation) so that we
         don't have to force virtual devices onto physical nodes just because
         some virtual nodes in the same experiment require multiplexed links.
      bf0c2929
  2. 11 Apr, 2011 1 commit
  3. 03 Apr, 2011 1 commit
  4. 01 Feb, 2011 1 commit
    • Mike Hibler's avatar
      Implement limited backward compatibility with the old frisbee setup. · 1017ccce
      Mike Hibler authored
      The big backward compatibility issue is that we no longer store running
      frisbeed info in the DB.  This means that loadinfo could not return
      address:port info to clients and thus old frisbee MFSes could no longer
      work.  While not a show stopper to require people to update their MFS first,
      I made a token effort to implement backward compat as follows.
      
      When an old frisbee MFS does "tmcc loadinfo" (as identified by a tmcd
      version < 33), tmcd will invoke "frisbeehelper" to startup a daemon.
      Sound like frisbeelauncher?  Well sorta, but vastly simplified and I only
      want this to be temporary.  The helper just uses the frisbee client to make
      a "proxy" request to the localhost master server.  The Emulab configuration
      of the master server now allows requests from localhost to proxy for another
      node.
      
      frisbeehelper is also used by webfrisbeekiller to kill a running daemon
      (yes, just like frisbeelauncher).  It makes a proxy status request on
      localhost and uses the returned info to identify the particular instance
      and kill it.
      1017ccce
  5. 07 Dec, 2010 1 commit
  6. 20 Oct, 2010 1 commit
    • Mike Hibler's avatar
      Support for no shared filesystem (unsupport for shared filesystem?) and · c1c1bce2
      Mike Hibler authored
      (eventual) support for NFS servers without race conditions!
      
      This means no NFS between nodes and ops/fs. There are still NFS mounts of
      ops on boss however.
      
      Added new defs-* variable NOSHAREDFS, which when set non-zero will disable
      the export of NFS filesystems to nodes.  Involved lots of little changes:
      
       * /users, /proj, and /share filesystems are not exported to nodes.
      
       * Returned mount info now includes an FSTYPE key which will be set to "LOCAL"
         if NOSHAREDFS is in effect (by default it is set to "NFS-RACY"; more on
         this later).  In the case where it is set to LOCAL, the other mount lines
         no longer contain REMOTE=foo settings.  Because of this change,
         THE TMCD VERSION NUMBER HAS BEEN BUMPED TO 32.
      
       * The client rc.mounts script will now create local versions of /users/*,
         /proj/<pid>, and /share when FSTYPE=LOCAL.  It first runs mkextrafs to
         create a large partition for these, since someday we will likely want
         to pre-populate these with a non-trivial amount of data.  Right now,
         the only thing that is put in the user's homedir is the standard dotfiles
         for the OS and the Emulab authorized_keys file (so you can login).
      
       * Linktest had to be modified to fetch the various results files (via
         loghole) rather than just assuming they were in /proj.  And also changed
         to invoke tevc with the local copy of the event key so it won't try to
         read it over NFS.
      
       * create_image was modified to ssh to the node and run the imagezip
         command, capturing the output of ssh.  This is controlled via the "-s"
         option which defaults to on for a NOSHAREDFS system, but can also be
         used on a normal system.
      
       * elabinelab's can be configured with/without a shared FS via the
         CONFIG_SHAREDFS attribute (note polarity change) which defaults to 1.
      
      Another new defs-* variable, NFSRACY, will some day allow you to specify
      (by setting to 0) that your NFS server does NOT have the nefarious mountd
      race condition when changing /etc/exports.  Currently, this defaults to 1
      since all versions of FreeBSD supported as an "fs" node have this "feature."
      Rumor has it that FreeBSD 8 does not have this problem nor, presumably,
      would a Linux NFS server.
      
      The only use of this variable right now is to set the FSTYPE returned by the
      tmcd "mounts" call, which in turn is used by one client script, rc.topomap
      (via a libsetup function) to determine whether it should try copying
      the topo file multiple times.
      
      Random: add python2.6 to list of python's checked for in configure.
      Random: resync defs-example-privatecnet with defs-example.
      Random: did a little code-pissin here and there.
      c1c1bce2
  7. 29 Sep, 2010 1 commit
  8. 25 May, 2010 2 commits
  9. 15 Apr, 2010 2 commits
  10. 07 Mar, 2010 1 commit
  11. 03 Mar, 2010 1 commit
  12. 23 Feb, 2010 1 commit
  13. 15 Jan, 2010 1 commit
    • Mike Hibler's avatar
      Lovely, lovely hacks for BSD based Xen vnodes. · e20c2034
      Mike Hibler authored
      In dhclient-exit-hooks we stash the vnode name in $BOOTDIR/vmname where
      libsetup would expect it.
      
      In libsetup.pm we set the event server to the physical host (based on
      node names!)
      
      In libvnode_xen.pm we reflect that these hacks are now done elsewhere!
      e20c2034
  14. 13 Nov, 2009 1 commit
  15. 05 Nov, 2009 1 commit
  16. 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
  17. 19 Aug, 2009 1 commit
  18. 06 Jul, 2009 1 commit
  19. 11 Jun, 2009 1 commit
  20. 28 May, 2009 1 commit
  21. 23 Feb, 2009 1 commit
  22. 06 Feb, 2009 1 commit
    • David Johnson's avatar
      openvz support. Main thing to note is that I ditched the · 169bd788
      David Johnson authored
      bootvnodes/vnodesetup/mkX.pl train in favor of my own strawman design for
      a more generic form of virt node support.  The strawman is incomplete and
      probably wrong in places, but I had to abandon the quest for anything
      better for now.  For now, uses same server side stuff as jails.
      169bd788
  23. 10 Sep, 2008 1 commit
  24. 13 Aug, 2008 1 commit
  25. 16 Apr, 2008 1 commit
    • Leigh B. Stoller's avatar
      A set of changes to implement dynamic root passwords on local nodes · bac0172e
      Leigh B. Stoller authored
      (and vnodes). Each time a node is allocated to an experiment it gets a
      new root password (using the node_attributes table). The watchdog has
      a new section that resets the root password (defaults to hourly).  We
      still using a common password in the image to avoid totally bricking
      ourselves, but once a node boots into an experiment it gets a new root
      password.
      
      This prevents hundreds of nodes with the same password, and all of the
      problems associated with that.
      bac0172e
  26. 15 Apr, 2008 1 commit
    • Mike Hibler's avatar
      Another step along the Linux vserver path. It is now to the point that · 25a29bbb
      Mike Hibler authored
      vservers can be configured with experimental interfaces.  Think duct tape
      and baling wire here...
      
       * commmon/bootvnodes: did some code refactoring in anticipation of
         something that was never needed.  Oh well, it looks purdy anyway!
      
       * common/libsetup.pm: LINUXJAILED() predicate to indentify local Linux
         vserver setups.  getlocalevserver() to return the IP/hostname of the
         "local" event server.
      
       * common/rc.{linktest,linkagent,progagent,trace,trafgen}: use the
         getlocalevserver() function for use with -s options (Linux vserver
         based vnodes cannot bind to localhost to talk to the pnode pubsubd)
      
       * common/config/rc.ifconfig: run this for Linux vservers, put out iface
         map for veths as well as physical interfaces
      
       * common/delaysetup: add -j vnodeid option, will need this at some point
      
       * linux/liblocsetup.pm: veth (actually etun) setup for Linux vserver vnodes
      
       * linux/mkvserver.pl: first cut at getting interfaces configured in
         vservers, do all the necessary etun/br plumbing (NOT a pretty sight...)
      
       * linux/vserver/rc.invserver (moved here from linux/rc.invserver):
         run linktest in local vservers (though it won't run yet due to NFS
         problems in vservers)
      
       * linux/vserver/vserver-cnet.sh: statically configure the control net
         in a vserver, no DHCP here!
      
       * linux/vserver/vserver-{init,rc}.sh: two parts of the Funky Interface
         Setup Dance that run inside the vserver
      25a29bbb
  27. 06 Feb, 2008 1 commit
  28. 29 Jan, 2008 1 commit
  29. 08 Jan, 2008 1 commit
  30. 17 Aug, 2007 1 commit
  31. 27 Oct, 2006 1 commit
  32. 11 Jul, 2006 1 commit
  33. 03 Jul, 2006 1 commit
    • Mike Hibler's avatar
      Framework for supporting 802.1q tagged VLANs as a form of multiplexed link. · 3f1c15e2
      Mike Hibler authored
      Actually, most of the changes here were just to generalize the "virtual
      interface" state in the DB.  Other than the client-side scripts, there
      is very little specific here specific to tagged VLANs.
      
      In fact, you cannot specify "vlan" as a type yet as we haven't done the
      snmpit support for setting up the switches.
      
      For more info see bas:~mike/flux/doc/testbed-virtinterfaces.txt, which I
      will integrate into the knowledge base and the Emulab doc at some point.
      3f1c15e2
  34. 28 Jun, 2006 1 commit
    • Kirk Webb's avatar
      · a7c7c58e
      Kirk Webb authored
      Support for setting up GNU Radio on the node-side of things.
      
      This operates pretty much the same way that wifi setup does, except that
      the interface does not exist when rc.ifconfig runs.  Instead, it is
      created as part of the generated rc.ifc script.  This required a couple of
      little (non-invasive) hacks to libsetup.pm and rc.ifconfig.
      
      Note that we are not passing gain and carrier sense threshold
      parameters through to the radio interface setup, but they are easy to add.
      a7c7c58e
  35. 12 Apr, 2006 1 commit
  36. 04 Apr, 2006 1 commit
  37. 21 Mar, 2006 1 commit
    • Mike Hibler's avatar
      Add another firewall setup logging option, "tcpdump", which will start · 9d70c179
      Mike Hibler authored
      up a tcpdump on both the inside and outside interfaces on the firewall
      at boot time.  Another useful form of debugging.
      
      Note: as with the "accept" and "deny" styles of logging, "tcpdump" cannot
      be set through any interface other than setting it in the virt_firewalls
      DB table directly.
      9d70c179
  38. 09 Feb, 2006 1 commit