1. 11 Jun, 2009 18 commits
    • Leigh B. Stoller's avatar
    • Leigh B. Stoller's avatar
      Minor changes for use on linux machines doing containers; call · 661207b8
      Leigh B. Stoller authored
      mkvnode instead of mkjail.
    • Leigh B. Stoller's avatar
      Don't run slothd inside of VM containers. · f352df82
      Leigh B. Stoller authored
      Run the shared (plab) version of the event proxy on physical nodes
      acting as a shared host.
    • Leigh B. Stoller's avatar
      Add the script locking code we use on boss, for use from the openvz · 6f29bab1
      Leigh B. Stoller authored
      library where we have to serialize access to global resources.
    • Leigh B. Stoller's avatar
    • Leigh B. Stoller's avatar
      Little bit of cleanup so that the VM mounting code can be used with · 99e0db95
      Leigh B. Stoller authored
      the openvz container code, just like we do from the mkjail path.
    • Leigh B. Stoller's avatar
      Minor changes to the plab version of the proxy, so that we can run it · 323d41dd
      Leigh B. Stoller authored
      on local shared hosts. Like plab nodes, vnodes from different
      experiments will be running on the same physnode, and the plab proxy
      does exactly what we need.
      I actually install it as evproxy_shared ...
    • Leigh B. Stoller's avatar
      Wrap up a vinterface in an object, and add methods to reserve and free · 949d9709
      Leigh B. Stoller authored
      shared bandwidth for that interface in the interface_state table.
    • Leigh B. Stoller's avatar
      Add a method to find out if an experiment has any interfaces with · ed7889f2
      Leigh B. Stoller authored
      trunking on. This is used by tbswap to determine if swapmod should
      optimize vlans setup/teardown. The optimization we currently use is
      that we leave the vlans in place, and then compare after assign
      runs. But since a trunked interface is potentially a shared resource
      of multiple lans, the optimization can break things pretty badly.
      So when an experiment has trunks, use the older method of tearing down
      all the vlans. I will need to come back to this at some point.
      When creating protovlans (as from the mapper wrapper), allow for
      attributes which get passed along when creating the actual Lan
    • 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
    • Leigh B. Stoller's avatar
      Cleanup of the physical state backup/removal code. Also fixes to the · 9b6ad61b
      Leigh B. Stoller authored
      NodeList method, which no longer uses the version in libdb (still
      trying hard to squash libdb).
    • Leigh B. Stoller's avatar
      Add a sanity check to make sure we do not release a physical node that · 5ee0076e
      Leigh B. Stoller authored
      is acting as a shared host, and has active vnodes on it. Makes for a
      real mess in the DB!
      When releasing virtnodes on sharedhosts, release the bandwidth
      allocated to that node (interface_state table).
      Minor fix; after locking the tables, reload the reservation info to
      make sure nothing has changed.
      Minor fix; reset the rtabid=0 when releasing.
    • Leigh B. Stoller's avatar
      Minor fix; after locking thet tables, reload the reservation info to · 1eddb639
      Leigh B. Stoller authored
      make sure nothing has changed.
    • Leigh B. Stoller's avatar
      Change xmlconvert to the VirtExperiment module, which wraps up all of · 6a3c51b9
      Leigh B. Stoller authored
      the virtual tables in an object, sub objects for table, subsub objects
      for rows, and all of the methods for accessing things.
      This change has been sitting in my devel tree for a long time, running
      on my elabinelab.
    • Leigh B. Stoller's avatar
      Minor fix to keys for eventlist table. · 2e89861e
      Leigh B. Stoller authored
    • Leigh B. Stoller's avatar
    • Leigh B. Stoller's avatar
      Two new minor functions: · a727dac1
      Leigh B. Stoller authored
      * tb-set-node-sharingmode{node mode} sets the sharing mode for a
        physical node. Only admins can do this, to create an experiment to
        contain shared nodes.
      * tb-set-node-usesharednode{node weight} sets a desire to use a shared
        node (for a pcvm). This goes into assign, against the a feature that
        is set for all nodes actining as a shared host.
    • Leigh B. Stoller's avatar
      Various changes to support shared nodes (a node that can be shared · 02661f36
      Leigh B. Stoller authored
      between experiments and projects using VMs (jail, vservers, openvz,
      * Add new slot to virt_nodes called "sharing_mode". Only admins can set
        this, via the NS file, to create an experiment consisting of nodes
        that are shared. A text string, in case we want to support different
        kinds of sharing modes.
      * Add new slot to reserved called "sharing_mode". This is copied from
        the virt_nodes table as above. Also, virtnodes that are currently
        allocated to a shared node, get this slot set, so that the rest of
        the system knows.
      * Add a toklen to the "erole" slot of the reserved table, called
        "sharedhost"; erole is returned to the client when it boots, and
        this is how the client knows it is acting as a shared host. We could
        probably compute this value in tmcd, but I did not want to change
        that now.
      * Add new slot to interfaces called "trunk". This is set when an
        interface should be set to trunking by "snmpit -t". We previously
        used the vinterfaces table to determine this, but there are other
        cases when we want an interface to be trunked.
        Aside: there is a problem with this approach I realized later;
        trunked interfaces are essentially shared resources of multiple
        vlans, which does not play well with the vlan optimizations in
      * Add new slot to vinterfaces called "bandwidth"; this is the amount
        of bandwidth that link is defined to use (via the NS file). This is
        used in resource scheduling of link bandwidth.
      * Add new slot to interface_state called "remaining_bandwidth". For a
        shared node, we have to reserve both the nodes and the link bandwidth.
        We use this slot (with locking) from the mapper_wrapper to make sure that
        the link has not been consumed already by another assignment running at
        the same time.
      * Add new tokens "veth-ne", "veth-en", and "vlans" to the osfeatures slot
        of the os_info table. veth-en (encap) and veth-ne (no-encap) are intended
        to replace the current "veths" feature. "vlans" is set for OSs that
        support vlan devices.
      * Fix the primary key on the linkdelays table; it needed to have the
        exptidx in the key so that we can allocated linkdelays for different
        experiments to the same node.
  2. 10 Jun, 2009 4 commits
  3. 09 Jun, 2009 4 commits
  4. 08 Jun, 2009 2 commits
  5. 05 Jun, 2009 12 commits