Changes between Version 25 and Version 26 of GENIExperimenter/ExperimentExample-stitching


Ignore:
Timestamp:
07/18/13 13:35:16 (11 years ago)
Author:
lnevers@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/ExperimentExample-stitching

    v25 v26  
    1010
    1111== 1. Design the Stitching Experiment ==
    12 
    1312{{{
    1413#!html
    1514<img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/design.png?format=raw" alt="Design/Setup"></a>
    1615}}}
    17 At this time GENI network stitching is supported by several aggregate, this example shows a simple stitching scenario with one server VM in the GPO InstaGENI rack and one VM client in the Utah InstaGENI rack that are connected with a link.  The server-gpo
    18 host is configured to be both a Web Server and an Iperf server, also a routable IP address is requested to access the web server.
    19 
    20 We will define an RSpec with 2 nodes and one link between them. The link ''' ''must'' ''' specify the 2 aggregates that are the
     16At this time GENI network stitching is supported by several aggregate, this example shows a simple stitching scenario with one server VM in the GPO InstaGENI rack and one VM client in the Utah InstaGENI rack that are connected with a link.  The server-gpo host is configured to be a Web, Iperf and PingPlus server, it also has a routable IP address that is used to access the web server and display results for all traffic types.
     17
     18We define an RSpec with 2 nodes and one link between them. The link ''' ''must'' ''' specify the 2 aggregates that are the
    2119endpoints of the link.  The tools will do the rest of the work required to stitch the topology. This is the request RSpec used for this experiment:
    22 
    23 Assemble a Request Rspec that includes one VM at each rack site:
    2420{{{
    2521<?xml version="1.0" encoding="UTF-8"?>
     
    6258</rspec>
    6359}}}
    64 In the above RSpec, the link information in the ''component_manager name'' is used by the stitcher.py script to contact the GENI Stitching Computation Service and determine a path between the end-point.
     60In the above RSpec, the link information in the ''component_manager name'' is used by the ''stitcher.py'' to contact the GENI Stitching Computation Service and determine a path between the end-point hosts.
    6561
    6662
     
    7167}}}
    7268
    73 We will now use the new Omni tool named ''stitcher.py'' to set up a stitched topology between the two nodes. The ''stitcher.py'' tool deliver:
    74  - Simpler experiment set-up. ''Stitcher.py'' creates slivers at all aggregates including network stitching path.
     69We now use the ''stitcher.py'' to set up a stitched topology between the two nodes. The ''stitcher.py'' tool deliver:
     70 - Simpler experiment set-up, it creates slivers at all aggregates including network stitching path.
    7571 - Stitcher.py parses RSpec to determine all compute resource aggregates from your RSpec. No longer need to specify “-a aggregateName”.
    7672 - ''Stitcher.py'' uses the MAX Stitching Computation Service (SCS) to determine VLAN path needed for your experiment.
     
    7975First create a slice for this experiment:
    8076{{{
    81 $ omni.py createslice ig-gpo-ig-utah
    82 07:30:58 INFO     omni: Loading config file /home/lnevers/.gcf/omni_config
    83 07:30:58 INFO     omni: Using control framework portal
    84 07:30:59 INFO     omni: Created slice with Name ig-gpo-ig-utah, URN urn:publicid:IDN+ch.geni.net:ln-prj+slice+ig-gpo-ig-utah, Expiration 2013-07-25 00:00:00
    85 07:30:59 INFO     omni:  ------------------------------------------------------------
    86 07:30:59 INFO     omni:  Completed createslice:
     77$ omni.py createslice gpo2utah
     7813:23:22 INFO     omni: Loading config file /home/lnevers/.gcf/omni_config
     7913:23:22 INFO     omni: Using control framework portal
     8013:23:23 INFO     omni: Created slice with Name gpo2utah, URN urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah, Expiration 2013-07-25 14:41:19
     8113:23:23 INFO     omni:  ------------------------------------------------------------
     8213:23:23 INFO     omni:  Completed createslice:
    8783
    8884  Options as run:
     
    9086                project: ln-prj
    9187
    92   Args: createslice ig-gpo-ig-utah
    93 
    94   Result Summary: Created slice with Name ig-gpo-ig-utah, URN urn:publicid:IDN+ch.geni.net:ln-prj+slice+ig-gpo-ig-utah, Expiration 2013-07-25 00:00:00
    95 07:30:59 INFO     omni:  ============================================================
    96 
    97 }}}
    98 
    99 Now, we create slivers using the ''stitcher.py'' script. There is no need to specify the ''-a'' aggregate option, aggregates are determined from the RSpec and need not be specified. Note that a file is created in the directory where the sliver is created that capture the aggregates associated with the slice.  Following is the stitcher operation that setup up all slivers:
    100 {{{
    101 $ stitcher.py createsliver ig-gpo-ig-utah stitch-ig-gpo-ig-utah.rspec -o
    102 07:31:45 INFO     stitcher: Loading config file /home/lnevers/.gcf/omni_config
    103 07:31:45 INFO     stitcher: Using control framework portal
    104 07:31:45 INFO     stitcher: Checking that slice ig-gpo-ig-utah is valid...       <==(1)
    105 07:31:46 INFO     stitcher: Slice urn:publicid:IDN+ch.geni.net:ln-prj+slice+ig-gpo-ig-utah expires on 2013-07-25 00:00:00 UTC
    106 07:31:47 INFO     stitcher: <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> speaks AM API v3, but sticking with v2 <==(2)
    107 07:31:47 INFO     stitcher: <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> speaks AM API v3, but sticking with v2   <==(2)
    108 07:31:47 INFO     stitcher: <Aggregate urn:publicid:IDN+emulab.net+authority+cm> speaks AM API v3, but sticking with v2          <==(2)
    109 07:31:47 INFO     stitch.Aggregate: Writing to '/tmp/ig-gpo-ig-utah-createsliver-request-11-instageni-gpolab-bbn-com.xml'  <==(3)
    110 07:31:47 INFO     stitch.Aggregate:
    111         Stitcher doing createsliver at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am
    112 07:32:04 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> complete.
    113 07:32:04 WARNING  stitch.Aggregate: Slivers at PG Utah may not be requested initially for > 5 days. PG Utah slivers will expire earlier than at other aggregates - requested expiration being reset from 2013-07-25T00:00:00Z to 2013-07-21T11:12:04Z
    114 07:32:04 INFO     stitch.Aggregate: Writing to '/tmp/ig-gpo-ig-utah-createsliver-request-11-emulab-net.xml'                <==(3)
    115 07:32:04 INFO     stitch.Aggregate:
    116         Stitcher doing createsliver at https://www.emulab.net:12369/protogeni/xmlrpc/am
    117 07:33:12 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+emulab.net+authority+cm> complete.
    118 07:33:12 INFO     stitch.Aggregate: Writing to '/tmp/ig-gpo-ig-utah-createsliver-request-11-utah-geniracks-net.xml'         <==(3)
    119 07:33:12 INFO     stitch.Aggregate:
    120         Stitcher doing createsliver at https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am
    121 07:33:33 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> complete.
    122 07:33:33 INFO     stitch.Aggregate: Writing to '/tmp/ig-gpo-ig-utah-createsliver-request-11-ion-internet2-edu.xml'          <==(3)
    123 07:33:33 INFO     stitch.Aggregate:
    124         Stitcher doing createsliver at http://geni-am.net.internet2.edu:12346                                           
    125 07:34:18 INFO     stitch.Aggregate: DCN AM <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am>: must wait for status ready....  <==(4)
    126 07:34:18 INFO     stitch.Aggregate: Pause to let circuit become ready...
    127 07:34:55 INFO     stitch.Aggregate: DCN circuit 22931 is ready
    128 07:35:02 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am> complete.
    129 07:35:02 INFO     stitch.launcher: All aggregates are complete.
    130 07:35:02 INFO     stitcher: Writing to 'ig-gpo-ig-utah-manifest-rspec-stitching-combined.xml'
    131 07:35:02 INFO     stitcher: Saved combined reservation RSpec at 4 AMs to file ig-gpo-ig-utah-manifest-rspec-stitching-combined.xml    <==(5)
    132 Stitching success: Reserved resources in slice ig-gpo-ig-utah at 4 Aggregates (including 2 intermediate aggregate(s) not in the
    133 original request), creating 1 link(s). 
    134 
    135 }}}
    136 
    137  (1) Sticher.py get your slice credential to make sure you have named a valid slice in which to create your circuit and runs rspeclint on the stitch-ig-gpo-ig-utah.rspec file, if rspeclint is found in your path. [[BR]]
     88  Args: createslice gpo2utah
     89
     90  Result Summary: Created slice with Name gpo2utah, URN urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah, Expiration 2013-07-25 14:41:19
     91 
     9213:23:23 INFO     omni:  ============================================================
     93}}}
     94
     95Now, we create all slivers using the ''stitcher.py''. Remember there is no need to specify the ''-a'' aggregate option, aggregates are determined from the RSpec and need not be specified. Note that a file is created in the directory where the slivers are created that capture the aggregates associated with the slice.  Following is the stitcher command used:
     96{{{
     97$ stitcher.py createsliver gpo2utah stitch-ig-gpo-ig-utah.rspec -o 
     9813:25:59 INFO     stitcher: Loading config file /home/lnevers/.gcf/omni_config
     9913:25:59 INFO     stitcher: Using control framework portal
     10013:25:59 INFO     stitcher: Checking that slice gpo2utah is valid...            <==(1)
     10113:26:00 INFO     stitcher: Slice urn:publicid:IDN+ch.geni.net:ln-prj+slice+gpo2utah expires on 2013-07-25 14:41:19 UTC
     10213:26:00 INFO     stitcher: <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> speaks AM API v3, but sticking with v2  <==(2)
     10313:26:00 INFO     stitcher: <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> speaks AM API v3, but sticking with v2 <==(2)
     10413:26:00 INFO     stitcher: <Aggregate urn:publicid:IDN+emulab.net+authority+cm> speaks AM API v3, but sticking with v2 <==(2)
     10513:26:00 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-instageni-gpolab-bbn-com.xml' <==(3)
     10613:26:00 INFO     stitch.Aggregate:
     107        Stitcher doing createsliver at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am   <==(4)
     10813:26:16 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> complete.
     10913:26:16 WARNING  stitch.Aggregate: Slivers at PG Utah may not be requested initially for > 5 days. PG Utah slivers will expire earlier than at other aggregates - requested expiration being reset from 2013-07-25T14:41:19Z to 2013-07-23T17:06:16Z
     11013:26:16 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-emulab-net.xml'    <==(3)
     11113:26:16 INFO     stitch.Aggregate:
     112        Stitcher doing createsliver at https://www.emulab.net:12369/protogeni/xmlrpc/am    <==(4)
     11313:26:58 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+emulab.net+authority+cm> complete.
     11413:26:58 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-utah-geniracks-net.xml'  <==(3)
     11513:26:58 INFO     stitch.Aggregate:
     116        Stitcher doing createsliver at https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am  <==(4)
     11713:27:17 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> complete.
     11813:27:17 INFO     stitch.Aggregate: Writing to '/tmp/gpo2utah-createsliver-request-11-ion-internet2-edu.xml'   <==(3)
     11913:27:17 INFO     stitch.Aggregate:
     120        Stitcher doing createsliver at http://geni-am.net.internet2.edu:12346 <==(4)
     12113:28:02 INFO     stitch.Aggregate: DCN AM <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am>: must wait for status ready....
     12213:28:02 INFO     stitch.Aggregate: Pause to let circuit become ready...     <==(5)
     12313:28:39 INFO     stitch.Aggregate: DCN circuit 23221 is ready
     12413:28:45 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am> complete.
     12513:28:45 INFO     stitch.launcher: All aggregates are complete.
     12613:28:45 INFO     stitcher: Writing to 'gpo2utah-manifest-rspec-stitching-combined.xml'
     12713:28:45 INFO     stitcher: Saved combined reservation RSpec at 4 AMs to file gpo2utah-manifest-rspec-stitching-combined.xml  <==(6)
     128Stitching success: Reserved resources in slice gpo2utah at 4 Aggregates (including 2 intermediate aggregate(s) not in the original request), creating 1 link(s).
     129
     130}}}
     131
     132 (1) Sticher.py gets your slice credentials to make sure you have named a valid slice in which to create your circuit and then it runs rspeclint on the ''stitch-ig-gpo-ig-utah.rspec '' file, if rspeclint is found in your search path. [[BR]]
    138133 (2) Sticher.py contacts the Stitching Computation Service (SCS) and returns the list of AMs that are needed to establish the stitching path in addition to the Internet2/ION aggregate.[[BR]]
    139134 (3) Stitcher.py generates a request RSpec for each of the aggregates in the path to request both network and compute resources. [[BR]]
    140  (4) Request at Internet2/ION waits for DCN circuits. If this request fails, stitcher.py will try again after 600 seconds. [[BR]]
    141  (5) A combined manifest rspec is assembled by the stitcher.py to show all aggregates and VLANs used in the sliver.
     135 (4) Creates sliver at each aggregate (path & end-points)
     136 (5) Request at Internet2/ION waits for DCN circuits. If this request fails, stitcher.py will try again after 600 seconds. [[BR]]
     137 (6) A combined manifest rspec is assembled by the stitcher.py to show all aggregates and VLANs used in the sliver.
    142138
    143139The above stitched scenario sliver creation brings together various areas that are normally involved in the manual setup of an equivalent circuit:
    144  - Switch configuration at rack endpoints.
     140 - Switch configuration at rack endpoints
    145141 - Static circuit to get to ION
    146142 - ION/OSCARS creation of a dynamic circuit with VLAN translation
     
    149145 - A dynamic circuit and then a fixed circuit to Utah InstaGENI.
    150146
    151 The combined manifest [http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/ExperimentExample-stitching/ig-gpo-ig-utah-manifest-rspec-stitching-combined.xml ig-gpo-ig-utah-manifest-rspec-stitching-combined.xml] is attached. Also, the overall information about allocated resources that can be found in the file are shown here:
     147The combined manifest [http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/ExperimentExample-stitching/gpo2utah-manifest-rspec-stitching-combined.xml gpo2utah-manifest-rspec-stitching-combined.xml] is attached. Also, the overall information about allocated resources that can be found in the file are shown here:
    152148
    153149[[Image(IG-GPO-IG-Utah-tags.jpg)]]