Changes between Version 3 and Version 4 of GENIExperimenter/ExperimentExample-stitching


Ignore:
Timestamp:
07/15/13 21:42:58 (11 years ago)
Author:
lnevers@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/ExperimentExample-stitching

    v3 v4  
    11= GENI Network Stitching Example =
    22
    3 This page used gcf 2.4 preview 7 to show an example experiment that creates a network stitching path between the GPO InstaGENI and the Utah InstaGENI racks.  The experiment uses [http://groups.geni.net/geni/wiki/GeniClearinghouse GENI Clearinghouse] credentials with omni tools.
    4  
    5 == Omni Configuration ==
    63
    7 GENI network stitching does not require any special configuration. If you haven't already configured Omni, please follow [http://trac.gpolab.bbn.com/gcf/wiki/OmniConfigure/Automatic these configuration instructions].
    8 
     4This page used gcf 2.4 preview 7 to show an example experiment that creates a network stitching path between the GPO InstaGENI and the Utah InstaGENI racks. The experiment uses [http://groups.geni.net/geni/wiki/GeniClearinghouse GENI Clearinghouse] credentials with the omni tool named ''stitcher.py''.  GENI network stitching does not require any special configuration. If you haven't already configured Omni, please follow [http://trac.gpolab.bbn.com/gcf/wiki/OmniConfigure/Automatic these configuration instructions].
    95
    106== Design Experiment ==
    11 
    12 {{{
    13 #!html
    14 <img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/design.png?format=raw" width="150" alt="Design/Setup"></a>
    15 }}}
    16 
    17 
    187
    198{{{
     
    2211}}}
    2312
     13At 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, captured in the following Request RSpec:
     14
     15<<Insert Image>>
     16
     17Assemble a Request Rspec that includes one VM at each rack site:
     18{{{
     19<?xml version="1.0" encoding="UTF-8"?>
     20<rspec type="request"
     21        xmlns="http://www.geni.net/resources/rspec/3"
     22        xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1"
     23        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     24       xmlns:stitch="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/"
     25        xsi:schemaLocation="http://www.geni.net/resources/rspec/3
     26        http://www.geni.net/resources/rspec/3/request.xsd"> 
     27  <node client_id="server-gpo" component_manager_id="urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm" exclusive="false">
     28    <sliver_type name="emulab-openvz"/>
     29    <services>
     30      <execute command="sudo /local/install-script.sh" shell="sh"/>
     31      <install install_path="/local" url="http://www.gpolab.bbn.com/~lnevers/StitchDemo.tar.gz"/>
     32   </services>
     33    <emulab:routable_control_ip xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"/>
     34    <interface client_id="server-gpo:if0">
     35      <ip address="192.168.4.1" netmask="255.255.255.0" type="ipv4"/>
     36    </interface>
     37  </node>
     38  <node client_id="client-utah" component_manager_id="urn:publicid:IDN+utah.geniracks.net+authority+cm" exclusive="false">
     39    <sliver_type name="emulab-openvz"/>
     40   <services>
     41      <execute command="sudo /local/install-script.sh" shell="sh"/>
     42      <install install_path="/local" url="http://www.gpolab.bbn.com/~lnevers/StitchDemo.tar.gz"/>
     43    </services>
     44    <interface client_id="client-utah:if0">
     45      <ip address="192.168.4.2" netmask="255.255.255.0" type="ipv4"/>
     46    </interface>
     47  </node>
     48  <link client_id="link">
     49    <component_manager name="urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm"/>
     50    <component_manager name="urn:publicid:IDN+utah.geniracks.net+authority+cm"/>
     51    <interface_ref client_id="server-gpo:if0"/>
     52    <interface_ref client_id="client-utah:if0"/>
     53    <property source_id="server-gpo:if0" dest_id="client-utah:if0" capacity="100000"/>
     54    <property source_id="client-utah:if0" dest_id="server-gpo:if0" capacity="100000"/>
     55  </link>
     56</rspec>
     57}}}
     58In 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.
     59
     60
     61
     62== Execute the Experiment ==
    2463{{{
    2564#!html
    26 <img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/execute.png?format=raw" height="150" alt="Execute"></a>
     65<img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/execute.png?format=raw" alt="Execute"></a>
    2766}}}
    2867
     68First create a slice for the experiment:
     69{{{
     70$ omni.py createslice ig-gpo-ig-utah
     7121:19:10 INFO     omni: Loading config file /home/lnevers/.gcf/omni_config
     7221:19:10 INFO     omni: Using control framework portal
     7321:19:11 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
     7421:19:11 INFO     omni:  ------------------------------------------------------------
     7521:19:11 INFO     omni:  Completed createslice:
     76
     77  Options as run:
     78                framework: portal
     79                project: ln-prj
     80
     81  Args: createslice ig-gpo-ig-utah
     82
     83  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
     8421:19:11 INFO     omni:  ============================================================
     85}}}
     86
     87A sliver that included a stitched VLAN path can be created 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. Also 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:
     88{{{
     89$ stitcher.py createsliver ig-gpo-ig-utah stitch-ig-gpo-ig-utah.rspec -o
     9021:28:50 INFO     stitcher: Loading config file /home/lnevers/.gcf/omni_config
     9121:28:50 INFO     stitcher: Using control framework portal
     9221:28:50 INFO     stitcher: Checking that slice ig-gpo-ig-utah is valid...             <<==(1)
     9321:28:51 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
     9421:28:52 INFO     stitcher: <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> speaks AM API v3, but sticking with v2  <==(2)
     9521:28:52 INFO     stitcher: <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> speaks AM API v3, but sticking with v2
     9621:28:52 INFO     stitcher: <Aggregate urn:publicid:IDN+emulab.net+authority+cm> speaks AM API v3, but sticking with v2
     9721:28:52 INFO     stitch.Aggregate: Writing to '/tmp/ig-gpo-ig-utah-createsliver-request-11-instageni-gpolab-bbn-com.xml'  <==(3)
     9821:28:52 INFO     stitch.Aggregate:
     99        Stitcher doing createsliver at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am
     10021:29:04 ERROR    omni:  {'output': 'vlan tag for link not available', 'code': {'protogeni_error_log': 'urn:publicid:IDN+instageni.gpolab.bbn.com+log+907dbcc8cf1d9204562b3c224e0c714f', 'am_type': 'protogeni', 'geni_code': 1, 'am_code': 1, 'protogeni_error_url': 'https://boss.instageni.gpolab.bbn.com/spewlogfile.php3?logfile=907dbcc8cf1d9204562b3c224e0c714f'}, 'value': 0}
     10121:29:34 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-21T01:09:34Z
     10221:30:12 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+emulab.net+authority+cm> complete.
     10321:30:12 INFO     stitch.Aggregate: Writing to '/tmp/ig-gpo-ig-utah-createsliver-request-11-utah-geniracks-net.xml'
     10421:30:12 INFO     stitch.Aggregate:
     105        Stitcher doing createsliver at https://boss.utah.geniracks.net:12369/protogeni/xmlrpc/am
     10621:30:39 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+utah.geniracks.net+authority+cm> complete.
     10721:30:39 INFO     stitch.Aggregate: Writing to '/tmp/ig-gpo-ig-utah-createsliver-request-12-instageni-gpolab-bbn-com.xml'  <==(4)
     10821:30:39 INFO     stitch.Aggregate:
     109        Stitcher doing createsliver at https://boss.instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am
     11021:30:56 ERROR    omni:  {'output': 'vlan tag for link not available', 'code': {'protogeni_error_log': 'urn:publicid:IDN+instageni.gpolab.bbn.com+log+f90141724ac70ca40144bd5b8775e40f', 'am_type': 'protogeni', 'geni_code': 1, 'am_code': 1, 'protogeni_error_url': 'https://boss.instageni.gpolab.bbn.com/spewlogfile.php3?logfile=f90141724ac70ca40144bd5b8775e40f'}, 'value': 0}
     11121:31:41 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm> complete.
     11221:31:41 INFO     stitch.Aggregate: Writing to '/tmp/ig-gpo-ig-utah-createsliver-request-11-ion-internet2-edu.xml'       <==(3)
     11321:31:41 INFO     stitch.Aggregate:
     114        Stitcher doing createsliver at http://geni-am.net.internet2.edu:12346
     11521:32:25 INFO     stitch.Aggregate: DCN AM <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am>: must wait for status ready....
     11621:32:25 INFO     stitch.Aggregate: Pause to let circuit become ready...
     11721:33:02 INFO     stitch.Aggregate: DCN circuit 22911 is ready
     11821:33:09 INFO     stitch.Aggregate: Allocation at <Aggregate urn:publicid:IDN+ion.internet2.edu+authority+am> complete.
     11921:33:09 INFO     stitch.launcher: All aggregates are complete.
     12021:33:09 INFO     stitcher: Writing to 'ig-gpo-ig-utah-manifest-rspec-stitching-combined.xml'
     12121:33:09 INFO     stitcher: Saved combined reservation RSpec at 4 AMs to file ig-gpo-ig-utah-manifest-rspec-stitching-combined.xml
     122Stitching success: Reserved resources in slice ig-gpo-ig-utah at 4 Aggregates (including 2 intermediate aggregate(s) not in the original request), creating 1 link(s).
     123}}}
     124
     125 (1) Sticher.py run rspeclint on the  stitch-ig-gpo-ig-utah.rspec file. [[BR]]
     126 (2) Sticher.py contact the Stitching Computation Service (SCS) and returns the list of AMs that are needed to stitch a path. [[BR]]
     127 (3) Stitcher.py generates a request RSpec for each of the aggregates in the path. [[BR]]
     128 (4) Second attempt at GPO InstaGENI, initial request failed because the requested VLAN was not available. [[BR]]
     129
     130
     131
     132= Finish Experiment ==
    29133{{{
    30134#!html
    31 <img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/finish.png?format=raw"  width="150" alt="Finish"></a>
     135<img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/finish.png?format=raw"  alt="Finish"></a>
    32136}}}