1. 15 Jul, 2009 1 commit
    • Leigh B. Stoller's avatar
      Add MaxShareCount() method to get the pcvm share count. · af2d65cb
      Leigh B. Stoller authored
      Add checks in CreateVnodes() to make sure that when creating
      a vnode on a node, it is either reserved to the experiment or
      is a shared experiment. This check is after the table lock to
      avoid races with the shared pool expanding and contracting.
  2. 09 Jul, 2009 1 commit
  3. 23 Jun, 2009 1 commit
  4. 11 Jun, 2009 1 commit
    • Leigh B. Stoller's avatar
      Add method to flush and reload the reservation info from the node · 39a76b80
      Leigh B. Stoller authored
      Method to find out if a physical node has any virtual nodes allocated
      to it.
      Method to release the bandwidth that a vnode on a shared host is
      using. This uses the vinterfaces table to find out what link is using,
      and then increments the remaining_bandwidth of the interface_state
      table. Tables are locked of course.
      Add method to allocate an rtabid, since like ssh ports on remote
      nodes, the rtabid is now a shared counter on a sharedhost.
      Hmm, a change to the TipServer() method that was for using console on
  5. 15 May, 2009 1 commit
  6. 01 May, 2009 1 commit
    • Leigh B. Stoller's avatar
      Add sharing_mode() method. · 8ca449ef
      Leigh B. Stoller authored
      Move the important part of os_select into this library as a method so
      that we can just do it from the mapper wrapper without having to call
      a shell script for each node in the topo (which on a 2000 node
      experiment, takes 45 minutes).
  7. 21 Apr, 2009 1 commit
  8. 17 Apr, 2009 1 commit
  9. 18 Mar, 2009 1 commit
  10. 06 Mar, 2009 1 commit
  11. 27 Feb, 2009 1 commit
  12. 19 Feb, 2009 1 commit
  13. 13 Feb, 2009 1 commit
  14. 12 Feb, 2009 1 commit
  15. 29 Jan, 2009 1 commit
  16. 10 Sep, 2008 1 commit
  17. 03 Sep, 2008 1 commit
  18. 10 Jul, 2008 2 commits
  19. 09 Jul, 2008 1 commit
  20. 03 Jun, 2008 1 commit
  21. 20 May, 2008 1 commit
  22. 19 May, 2008 1 commit
  23. 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
      This prevents hundreds of nodes with the same password, and all of the
      problems associated with that.
  24. 14 Mar, 2008 1 commit
  25. 25 Feb, 2008 1 commit
  26. 20 Dec, 2007 1 commit
  27. 05 Dec, 2007 2 commits
  28. 21 Aug, 2007 1 commit
    • Leigh B. Stoller's avatar
      Another round of widearea node hacking for CMU. These changes add · 99346dc0
      Leigh B. Stoller authored
      widearea reloading support.
      * New slot in the images table to store an access key which remote
        sites must provide in order to download an image (via https).
      * tmcd returns a different kind of ADDRESS field from doloadinfo.
        Instead of the multicast stuff, return a URL that points to boss'
        web server. The URL is of the form:
        which as you can see is fully specified; the client does not need
        to know anything else.
      * New webpage and backend scripts appropriately called "spewimage"
        which also includes support for the http HEAD request (from wget) to
        avoid downloading images that are already on the node. I just
        learned about this HEAD request stuff today ... but otherwise these
        operate as expected, spewing the image if the access key is provided.
      * Changes to rc.frisbee to deal with remote loading. In addition to
        URL support, I also added support for simple paths, the intent being
        that we will probably distribute images offline (say, at night) so
        that when a node reboots it doesn't actually have to wait 60 minutes
        for an image to download. I have not added any server side support
        for this yet though. Maybe later this week.
      * Other bits and pieces and fixes to make this work.
  29. 16 Aug, 2007 1 commit
  30. 02 Aug, 2007 1 commit
  31. 20 Jun, 2007 1 commit
    • Leigh B. Stoller's avatar
      Add summary node utilization stats. The initial values are derived by · 21890006
      Leigh B. Stoller authored
      processing the node_history table, but that is *way* too slow to do on
      the fly (say, from the web interface) cause of the number of records,
      so the summary info is stored in the new node_utilization table. I
      generate the summary info as new entries are added to node_history (in
      SetNodeHistory) but if that becomes too messy, we can just as easily
      shift to processing the table on a nightly basis.
      Note that I added a new "inception" date field to the nodes table,
      which will get set on new nodes, but for existing nodes I have to
      derive it from the first entry in the node_history table, or else the
      numbers will not make sense.
  32. 09 May, 2007 1 commit
  33. 07 May, 2007 1 commit
    • Leigh B. Stoller's avatar
      Mostly this commit is the switch from SVN archives to ZIP archives. · 55d1bb6e
      Leigh B. Stoller authored
      Other stuff leaked in too ...
      I did separate out a lot of tbsetup/libArchive into db/Archive, and
      whats left in libArchive.pm will eventually move over into the
      Template library.
      Note that I have dropped archiving of plain experiments; this is not
      really owrth it outside the workbench context, and it just wastes
      space and makes a lot if stuff painful in the web interface.
  34. 06 Mar, 2007 1 commit
  35. 23 Oct, 2006 1 commit
  36. 18 Jul, 2006 1 commit
    • Leigh B. Stoller's avatar
      Changes necessary for moving most of the stuff in the node_types · 624a0364
      Leigh B. Stoller authored
      table, into a new table called node_type_attributes, which is intended
      to be a more extensible way of describing nodes.
      The only things left in the node_types table will be type,class and the
      various isXXX boolean flags, since we use those in numerous joins all over
      the system (ie: when discriminating amongst nodes).
      For the most part, all of that other stuff is rarely used, or used in
      contexts where the information is needed, but not for type descrimination.
      Still, it made for a lot of queries to change!
      Along the way I added a NodeType library module that represents the type
      info as a perl object. I also beefed up the existing Node module, and
      started using it in more places. I also added an Interfaces module, but I
      have not done much with that yet.
      I have not yet removed all the slots from the node_types table; I plan to
      run the new code for a few days and then remove the slots.
      Example using the new NodeType object:
      	use NodeType;
      	my $typeinfo = NodeType->Lookup($type);
              if ($typeinfo->control_interface(\$control_iface) ||
                  !$control_iface) {
        	    warn "No control interface for $type is defined in the DB!\n";
      or using the Node:
      	use Node;
              my $nodeobject = Node->Lookup($node_id);
              my $imageable  = $nodeobject->NodeTypeInfo()->imageable();
              my $rebootable = $nodeobject->isrebootable();
              $nodeobject->NodeTypeAttribute("control_interface", \$control_iface);
      Lots of way to accomplish the same thing, but the main point is that the
      Node is able to override the NodeType (if it wants to), which I think is
      necessary for flexibly describing one/two of a kind things like switches, etc.
  37. 12 Oct, 2005 1 commit
  38. 04 Aug, 2005 1 commit
    • Mike Hibler's avatar
      Further hackery to deal with more than 254 physical nodes in the testbed · 65e807a3
      Mike Hibler authored
      when assigning vnode (control net) IP addresses.  Once we hit 255, we
      increment the low bit of the network address ala:
      	on pc254: 172.16.254.N
      	on pc255: 172.17.1.N
      Note that the Utah case is different than the default in that we wrap at
      200 rather than 254.  This is so that we "wrap" at the boundary of the
      new cluster (which starts at pc201); i.e., pc201 has addresses 172.18.1.N.