1. 26 Dec, 2013 1 commit
  2. 20 Sep, 2013 1 commit
  3. 10 May, 2013 1 commit
  4. 21 Dec, 2012 1 commit
  5. 01 Aug, 2012 1 commit
    • Leigh Stoller's avatar
      This commit adds some simple support for using the Infiniband on the · 997b21b5
      Leigh Stoller authored
      Probe Cluster. The problem is that the IFB is a shared network that
      every node attaches to, which can looks like an ethernet device that
      can ifconfig'ed. In other words, one big lan.
      
      But we still want the user to be able to create a lan so that they can
      interact with it in thei NS file like any other network.
      
      The NS syntax is:
      
      	set lan2 [$ns make-lan "node1 node2 node3" * 0ms]
      	tb-set-switch-fabric $lan2 "infiniband"
      
      The switch fabric tells the backend to do IP assignment for the
      specific global network. Yes, I tried to be a little but general
      purpose. Lets see how this actually turns out.
      
      This first commit treats the fabric as a single big lan on the same
      subnet.
      
      NOTE 1: Since the unroutable IP space is kinda small, but the Probe
      Cluster is really big, we can easily run out of bits if we tried to do
      assignment on virtual topos. Instead, fabrics get their IP allocation
      at swapin time, and the allocations are deleted when the experiment is
      swapped out. The rationale is that the number of swapped in
      experiments is much much smaller then the number of possible topos
      that can be loaded into the DB. Still might run out, but less likely.
      
      The primary impact of above is that IP assignments can change from
      one swap to another, but this is easy to deal with if the user is
      scripting their experiment; the IP allocation is available via the
      XMLRPC interface.
      
      NOTE 2: The current code allocates from a single big network, which
      makes it easy for users to mess each other up if they start doing
      things by hand. Ultimately, we want each lan in each experinent to use
      their own subnet, but that is going to take more work, so lets do it
      in the second phase.
      
      The definition of "network fabrics" is in the new network_fabrics
      tables. As an example for probe:
      
      	INSERT INTO `network_fabrics` set
      		idx=NULL,
      		name='ifband',
      		created=now(),
      		ipalloc=1, ipalloc_onenet=1,
      		ipalloc_subnet='192.168.0.0',ipalloc_netmask='255.255.0.0'
      997b21b5
  6. 18 May, 2012 1 commit
  7. 14 May, 2012 1 commit
  8. 08 Mar, 2012 1 commit
  9. 30 Jan, 2012 1 commit
  10. 15 Dec, 2010 1 commit
  11. 17 Nov, 2010 1 commit
  12. 10 Aug, 2010 1 commit
    • Leigh Stoller's avatar
      A bunch of little changes to make bootstrapping images work properly. · 37ffe0b9
      Leigh Stoller authored
      Basically, we cannot create an image descriptor without any types
      defined, and we cannot create any types without a default image
      descriptor. I broke the circle by adding a stub pc type into the
      database fill file so that all Emulabs start with a predefined type.
      Then you can load the descriptor file, create your actual types, and
      then go back and edit the image descriptors to set the types those
      images run on (you always had to do this).
      37ffe0b9
  13. 16 Jun, 2010 1 commit
  14. 16 Apr, 2010 1 commit
  15. 11 Jul, 2008 1 commit
  16. 16 Aug, 2007 1 commit
  17. 23 Apr, 2007 1 commit
  18. 20 Mar, 2007 1 commit
  19. 13 Mar, 2007 2 commits
  20. 07 Mar, 2007 1 commit
    • Leigh Stoller's avatar
      Changes for how we distribute the initial set of imageids and osids. · 3c1678d6
      Leigh Stoller authored
      * install/dump-descriptors <filename> will write out a set of insert
        statements for the images and os_info table, slightly munged. In
        fact, what I do is create temporary tables called temp_images and
        temp_os_info, clean them a bit, and then write out the insert
        statements to load them into new tables of the same name.
      
        There are some arrays at the top of this script that says what images and
        osids to write out.
      
      * install/load-descriptors <filename> takes the output of
        dump-descriptors, creates the two temporary tables and loads the
        data into them. Then it (optionally) updates those tables with the
        local indicies of elabman and the emulab-ops project and group.
      
        Then it computes an osidtoimageid table for all class='pc' types. On a
        new testbed this is a reasonable approach, in my opinion.
      
        Next it takes the contents of the two temp tables and moves them across
        to the actual tables.
      
      * install/descriptors.sql is the current data set which has everything
        contained in sql/database-fill-supplemental.sql and install/images/*
      3c1678d6
  21. 06 Mar, 2007 1 commit
  22. 09 Jan, 2007 1 commit
  23. 26 Oct, 2006 1 commit
  24. 14 Aug, 2006 1 commit
    • Kevin Atkinson's avatar
      · 07dda0d8
      Kevin Atkinson authored
      Prep for Mike Kasick report code.  Updated database schema and
      installed hooks for his code.
      
      Cleaned up how errors were handled in tblog(...).
      
      Allow SENDMAIL to be called before the path is untained in '-T' scripts.
      
      Other small changes.
      07dda0d8
  25. 10 Apr, 2006 1 commit
    • Mike Hibler's avatar
      Its back! · fabfd1eb
      Mike Hibler authored
      node_types pxe_boot_path is going to be needed after all, so it has
      made a triumphant return.
      fabfd1eb
  26. 30 Mar, 2006 1 commit
  27. 22 Feb, 2006 1 commit
  28. 02 Feb, 2006 1 commit
    • Timothy Stack's avatar
      · 11f6065f
      Timothy Stack authored
      Finish off changes to consult the os_boot_cmd table when setting
      def_boot_cmd_line.
      
      	* db/libdb.pm.in: Add TBGetOSBootCmd function that returns the
      	boot command line for an osid/role.
      
      	* sql/database-fill-supplemental.sql: Add some queries that
      	initialize the os_boot_cmd table.
      
      	* tbsetup/assign_wrapper.in: For nodes that need linkdelays or
      	inner elab boss nodes, set their command line using
      	TBGetOSBootCmd.  Since the TBGetOSBootCmd function needs a "real"
      	OSID to work, we resolve the nextosid for any meta OSIDs.
      
      	* tbsetup/elabinelab.in: Add os_boot_cmd to the list of full
      	tables to be dumped.
      
      	* tbsetup/ns2ir/elabinelab-withfsnode.ns,
      	tbsetup/ns2ir/elabinelab.ns: Remove boot command lines,
      	assign_wrapper does it instead.
      11f6065f
  29. 25 Oct, 2005 1 commit
  30. 22 Mar, 2005 2 commits
  31. 12 Dec, 2004 1 commit
  32. 08 Nov, 2004 2 commits
  33. 25 Aug, 2004 1 commit
  34. 18 Aug, 2004 1 commit
  35. 12 Jan, 2004 1 commit
    • Leigh Stoller's avatar
      Death to proxydhcp; one less specialized daemon. DHCP will return the · 2b2b8ca1
      Leigh Stoller authored
      filename to boot, and all local nodes will boot the same pxeboot kernel,
      which has been extended to allow for jumping directly into a specific MFS
      (in addition to the usual testbed boot into a partition or multiboot
      kernel).
      
      Bootinfo and the bootwhat protocol extended to tell the client node what
      MFS to jump into directly, without a reboot. pxe_boot_path and
      next_pxe_boot_path are now deprecated, with bootinfo used to control which
      MFS to boot. Nodes now boot a single pxeboot kernel, and bootinfo tells
      them what to do next.
      
      Bootinfo greatly simplifed. temp_boot_osid has been added to allow for
      temporary booting of different kernels (such as with ndoe_admin or
      create_image). Unlike next_boot_osid which is a one-shot boot,
      temp_boot_osid causes the node to boot that OS until told not too.
      
      next_boot_path and def_boot_path in the nodes table are now ignored.
      Bootinfo gets path info strictly from the os_info table entry for the osid
      given in one of def_boot_osid, temp_boot_osid, or next_boot_osid.  This
      makes the selection of what to do in bootinfo a lot simpler (and for
      TBBootWhat in libdb). The os_info table also modified to include an MFS
      flag so that bootinfo knows to tell the client that the path refers to an
      MFS and not a multiboot kernel.
      
      Change to boot sequence; free nodes no longer boot into the default OSID.
      Instead, they are told to wait in pxeboot until told what to do, which
      will typically be when the node is allocated and a specific OSID
      picked. If the node needs to be reloaded, then the node is told to jump
      directly into the Frisbee MFS, which saves one complete reboot cycle
      whether the node has the requested OS installed, or not.  New program
      added called "bootinfosend" that is used by node_reboot to "wake up" up
      nodes sitting in pxewait mode, so that they query bootinfo again and boot.
      
      node_reboot changed to look at the event state of a node, and use
      bootinfosend to wake up nodes, rather then power cycle, since pxeboot does
      not repsond to pings. Retry (if the UDP packet is lost) is handled by
      stated.
      
      Event support added to bootinfo, to replace the event generation that was
      in proxydhcp. I have not included the caching that Mac had in proxydhcp
      since it does not appear that bootinfo packets are lost very
      often. Cleaned up all of the event and DB queury code to use lib/libtb for
      DB access, and moved all of the event code into a separate file.  The
      event sequence when a node boots now looks like this:
      
      	'SHUTDOWN'    --> 'PXEBOOTING'  (BootInfo)
      	'PXEBOOTING', --> 'PXEBOOTING'  (BootInfo Retry)
      	'PXEBOOTING', --> 'BOOTING'     (Node Not Free)
      	'PXEBOOTING', --> 'PXEWAIT'     (Node is Free)
      	'PXEWAIT',    --> 'PXEWAKEUP'   (Node Allocated)
      	'PXEWAKEUP',  --> 'PXEWAKEUP'   (Bootinfo Retry)
      	'PXEWAKEUP',  --> 'PXEBOOTING'  (Node Woke Up)
      
      Change stated to support resending PXEWAKEUP events when node times out.
      After 3 tries, node is power cycled. Other minor cleanup in stated.
      
      Clean up and simplify os_select, while adding support for temp_next_boot
      and removing all trace of def_boot_path and next_boot_path processing.
      Remove all pxe_boot_path and next_pxe_boot_path processing.  Changed
      command line interface to support "clearing" fields. For example,
      node_admin changed to call os_select like this to have the node
      temporarily boot the FreeBSD MFS:
      
      	os_select -t FREEBSD-MFS pcXXX
      
      which sets temp_boot_osid. To turn admin mode off:
      
      	os_select -c -t pcXXX
      
      which says to clear temp_boot_osid.
      
      sql/database-fill-supplemental.sql modifed to add os_info table
      entries for the FreeBSD, Frisbee, and newnode MFS's.
      
      Be sure to change dhcpd config, restart dhcp, kill proxydhcp, restart
      bootinfo,
      2b2b8ca1
  36. 11 Nov, 2003 1 commit
    • Robert Ricci's avatar
      New file: database-create-supplemental.sql - from the file: · 110ed564
      Robert Ricci authored
      Various things that need to go into new sites' databases, but don't really fit
      into database-fill.sql, which is auto-generated. Also, unlike the contents of
      database-fill.sql, inserting these is not idempotent, since a site may have
      changed them for some reason.
      110ed564