1. 21 May, 2012 2 commits
  2. 15 May, 2012 1 commit
  3. 17 Apr, 2012 1 commit
    • Ryan Jackson's avatar
      Fixes to libvnode_openvz for Fedora 15 · 7eec7e37
      Ryan Jackson authored
      Set the hostname for the vnode using vzctl to make sure it gets set
      correctly.  Otherwise the vnode will inherit the physical host's
      hostname, and since this is not "localhost" or "localhost.localdomain"
      the networking scripts inside the container will not set reset it to
      the value in /etc/sysconfig/network.
      
      Use the "inside" MAC address rather than the "outside" one when
      creating macvlan devices.
      
      Only try to delete interfaces if they still exist when tearing down
      the vnode.  The kernel itself automatically deletes "virtual"
      interfaces, which includes imq and macvlan.
      7eec7e37
  4. 09 Apr, 2012 1 commit
    • Ryan Jackson's avatar
      IMQ devices are now created dynamically · 413b6954
      Ryan Jackson authored
      The IMQ driver has been patched to allow devices to be created
      dynamically.  They will be automatically deleted when the container is
      shut down, as will the macvlan devices.
      413b6954
  5. 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
  6. 05 Dec, 2011 1 commit
  7. 02 Dec, 2011 1 commit
  8. 29 Nov, 2011 1 commit
    • David Johnson's avatar
      Lots of changes: debug; macvlans; details below. · fdf97b51
      David Johnson authored
      I added debug options for each LVM and vzctl call; you can toggle it
      on by touching /vz/.lvmdebug, /vz.save/.lvmdebug, /.lvmdebug, and
      /vz/.vzdebug, /vz.save/.vzdebug, /.vzdebug.  I also added dates to
      debug timestamps for debugging longer-term shared node problems.
      
      I added support for using macvlan devices instead of openvz veths
      for experiment interfaces.  Basically, you can add macvlan devices
      atop any other ethernet device to "virtualize" it using fake mac
      addresses.  We use them like this: if the virtual link/lan needs to
      leave the vhost on a phys device or vlan device, we attach the macvlan
      devices to the appropriate real device.  If the virtlan is completely
      internal to the vhost, we create a dummy ethernet device and attach
      the macvlan devices to that.
      
      The difference between macvlan devices and veths is that macvlan
      devices are created only in the root context, and are moved into
      the container context when the vnodes boot.  There is no "root
      context" half -- the device is fully in the container's network
      namespace.  BUT, the underlying device is in the root network
      namespace.
      
      We use macvlans in "bridge" mode, so that when one macvlan device sends
      a packet, the device driver checks any other macvlan devices attached
      to the underlying physical, vlan, or dummy device, and delivers the packet
      accordingly.  The difference between this fake bridge and a real bridge
      is that the macvlan driver knows the mac of each attached interface,
      and does not have to do any learning whatsoever.  I haven't looked at
      the code, but it should be a very, very simple, fast, and zero-copy
      transmit from one macvlan device onto another.
      
      This is essentially the same as the planetlab shortbridge, but since
      I haven't looked at the code, I can't say that there aren't more
      opportunities to optimize.  Still, this should hopefully be faster
      than openvz veths.
      
      Oh, and I also added support for using Linux tc's netem modules
      for doing delay and loss shaping, instead of using our custom
      kernel modules.  I got tired of pulling our patches forward and
      adapting to the packet sched API changes in the kernel!  netem is
      more advanced than our stuff, anyway, and should do a fine job.
      fdf97b51
  9. 10 Nov, 2011 1 commit
  10. 01 Nov, 2011 1 commit
  11. 30 Oct, 2011 2 commits
  12. 28 Oct, 2011 2 commits
  13. 27 Oct, 2011 1 commit
  14. 26 Oct, 2011 1 commit
  15. 21 Jul, 2011 1 commit
  16. 20 Oct, 2010 2 commits
  17. 19 Oct, 2010 1 commit
  18. 21 Sep, 2010 1 commit
  19. 07 Sep, 2010 1 commit
  20. 24 Aug, 2010 1 commit
  21. 22 Jun, 2010 1 commit
  22. 12 Mar, 2010 1 commit
  23. 07 Dec, 2009 1 commit
  24. 13 Nov, 2009 1 commit
  25. 22 Oct, 2009 2 commits
  26. 19 Oct, 2009 1 commit
  27. 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
  28. 25 Sep, 2009 1 commit
  29. 24 Sep, 2009 1 commit
  30. 15 Sep, 2009 1 commit
    • David Johnson's avatar
      Make sure LVM volumes are mounted inside vnodeState if the vnodes appear · b9871e67
      David Johnson authored
      to exist but their LVM volumes are not mounted.  Also make sure to
      activate volumes cause they seem to go inactive across reboots.
      
      Also bump the imq device limit down to 64 for now.  I still prefer to
      fixup the problems with the 2.6.27 ovz kernel and change the imq setup
      there, rather than add dynamic imq device alloc in 2.6.18... but we'll
      see.
      b9871e67
  31. 14 Sep, 2009 1 commit
    • David Johnson's avatar
      Add LVM snapshot devices underneath openvz "filesystems". This makes · 62efac0a
      David Johnson authored
      vnode creation time linear with the number of images (currently there is
      only one, although this support allows for different images for vnodes on
      the same vhost).  LVM is currently the default, but I left the old code
      too.  Right now, the master logical device for each image gets 8GB; the
      snapshots each get 1GB for CoW data.  This all needs to be exposed to user
      control somehow.
      
      Also made a ton of resources unlimited, not that it has seemed to improve
      performance though.
      
      mkextrafs.pl now supports some basic LVM creation stuff.
      62efac0a
  32. 27 Aug, 2009 1 commit
  33. 24 Aug, 2009 1 commit
  34. 18 Aug, 2009 1 commit
  35. 17 Aug, 2009 1 commit