A Tutorial on Systematic Experimental Design

Step I: Single Node

Step II: Small Topology

Step III: Scaling Up

Image Map

1. Modify RSpec

Recall in Step II, we have saved a final version of request RSpec (4node-final.rspec) for the topology with four routers and two end hosts. In this section, we start with this RSpec.

a. Add Aggregates

Launch the Flack for your slice that has been cleaned up, import the pre-saved 4node-final.rspec. You can also download the RSpec from here to your local machine, and import it to your slice. Now you should be able to see the topology on your canvas in Flack.

We will select three InstaGENI aggregates that support stitching links from the GENIStitchingSites, so that the client and router-1 are from wisconsin-ig, router-2 and router-4 are from nysernet-ig, and router-3 and the server are from illinois-ig. Here we show how to change aggregate for router-1 using Flack. Click to open node property information, in the Manager field, select from the pull-down list, and apply the updates. Similarly, change the aggregates for the rest of the nodes. Note that, the Manager refers to the aggregate.

Note If you use "Name" instead of "URL" to the regular "Ubuntu 12.04" disk image for the client and server before, you need to re-select the "Ubuntu 12.04" for the client and server after changing the aggregates. You do not need to do this for the routers, because use the URL of the custom image. For example, we change the aggregate for the client node from "stanford-ig" to "wisconsin-ig", so we also need to reselect the advertise image again, so that the disk image name shown in the field is "", which is consistent with "wisconsin-ig" aggregate.

b. Change Link Types

Now we have three aggregates selected, the link types between nodes are changed to gre-tunnel.

So we need to update the type of links between different aggregates to be stitched links, which are gre-tunnel0, gre-tunnel1, gre-tunnel2, gre-tunnel3 in the original topology, and the rest of gre-tunnel# need to be changed back to lan# type. We show how to change link type for gre-tunnel1 here. Click to open link gre-tunnel0 property information. Select stitched from the pull-down list at the Type field, apply the update. Similarly, update the link type for the other gre-tunnel links.

Similarly, update the link type for the other gre-tunnel links, and you will see the topology now looks like:

Export the request RSpec to your local machine, save it as 4node-stitching.rspec.

c. Edit New RSpec

Now open the RSpec file 4node-stitching.rspec, and we need to do some small editing locally first.

Recall that we have changed the link type and aggregate type, the RSpec still keeps the information about stanford-ig, which we are not using it any more, so we need to manually delete this information from the RSpec, otherwise, we will see errors when requesting resources.

For example, the stitched0 link has three component_manager tags, and the one has name "" is not needed. Also, we need to reduce the capacity down to less than 20000, it is 100000 by default.

<link client_id="stitched0">
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns=""/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns=""/>
    <component_manager name=""/>
    <component_manager name=""/>
    <component_manager name=""/>
    <interface_ref client_id="xen-0:if0"/>
    <interface_ref client_id="xen:if0"/>
    <property source_id="xen-0:if0" dest_id="xen:if0" capacity="100000"/>
    <property source_id="xen:if0" dest_id="xen-0:if0" capacity="100000"/>
    <flack:link_info x="526" y="405" unboundVlantag="true"/>

So, for each link block in the 4node-stitching.rspec file, delete the following line, and update the capacity from 100000 to 10000, then save the file.

<component_manager name=""/>

Now the link block for stitched0 should look like:

  <link client_id="stitched0">
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns=""/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns=""/>
    <component_manager name=""/>
    <component_manager name=""/>
    <interface_ref client_id="xen-0:if0"/>
    <interface_ref client_id="xen:if0"/>
    <property source_id="xen-0:if0" dest_id="xen:if0" capacity="10000"/>
    <property source_id="xen:if0" dest_id="xen-0:if0" capacity="10000"/>
    <flack:link_info x="526" y="405" unboundVlantag="true"/>

It is very important to note that DO NOT SUBMIT VM reservation request in Flack. We will use a command line tool called stitcher to request resources in the next step.

2. Get Resource Using Stitcher

You have two options for reserving multi-aggergate topologies: the Portal and stitcher.

a. Get Resource Using the Portal

You can reserve multi-aggregate topologies using the Add Resources button on the Portal.

b. Get Resource Using Stitcher

Stitcher is a command line tool to get resources, including create VM slivers and stitched links. We run stitcher from command line to get resources by providing the RSpec file 4node-stitching.rspec just created. To run stitcher, you need to install omni tool.

The command is:

$stitcher --logconfig <path to stitcher_logging.conf> createsliver <slicename> <path to your rspec>

The option "--logconfig" is not necessary, but if you see message like "WARNING:root:Failed to find log config file /Applications/omniTools-2.6/", you may need to manually download stitcher_logging.conf to your local system.

If you successfully run stitcher, you will see similar output as below:

dhcp89-69-127:tools xliu$ stitcher --logconfig stitcher_logging.conf createsliver xuan-wiki-prep1 ~/Documents/docs/wiki-fig/4node-stitching.rspec
17:47:31 INFO    : Configured logging from file stitcher_logging.conf
17:47:31 INFO    : Reading slice xuan-wiki-prep1 credential...
17:47:31 INFO    : Slice expires on 2014-07-09 21:46:52 UTC
17:47:31 INFO    : Calling SCS...
17:47:32 INFO    : Multi-AM reservation will include resources from these aggregates:
17:47:32 INFO    : 	<Aggregate nysernet-ig>
17:47:32 INFO    : 	<Aggregate illinois-ig>
17:47:32 INFO    : 	<Aggregate wisconsin-ig>
17:47:32 INFO    : 	<Aggregate ion>
17:47:32 INFO    : Stitcher doing createsliver at <Aggregate nysernet-ig>...
17:47:54 INFO    : ... Allocation at <Aggregate nysernet-ig> complete.
17:47:54 INFO    : Stitcher doing createsliver at <Aggregate illinois-ig>...
17:48:19 INFO    : ... Allocation at <Aggregate illinois-ig> complete.
17:48:19 INFO    : Stitcher doing createsliver at <Aggregate wisconsin-ig>...
17:48:41 INFO    : ... Allocation at <Aggregate wisconsin-ig> complete.
17:48:42 INFO    : Stitcher doing createsliver at <Aggregate ion>...
17:49:26 INFO    : DCN AM <Aggregate ion>: must wait for status ready....
17:49:26 INFO    : Pausing 30 seconds to let circuit become ready...
17:50:04 INFO    : Pausing 30 seconds to let circuit become ready...
17:50:41 INFO    : DCN circuit 103131 is ready at <Aggregate ion>
17:50:41 INFO    : DCN circuit 103151 is ready at <Aggregate ion>
17:50:41 INFO    : DCN circuit 103141 is ready at <Aggregate ion>
17:50:48 INFO    : ... Allocation at <Aggregate ion> complete.
17:50:48 INFO    : All aggregates are complete.
17:50:48 INFO    : Your resources expire at 2 different times at different AMs. The first expiration is 2014-07-03 21:48:39 UTC at <Aggregate ion>. Second expiration is 2014-07-09T21:46:52 UTC.
17:50:48 INFO    : Saved combined reservation RSpec at 4 AMs to file '/Users/xliu/Documents/tools/xuan-wiki-prep1-manifest-rspec-stitching-combined.xml'
Success: Reserved resources in slice xuan-wiki-prep1 at 4 Aggregates (including 1 intermediate aggregate(s) not in the original request), creating 4 stitched link(s).

Now we are ready to run the experiments!

Scaling Up: Introduction

Scaling Up: Execute

Last modified 4 years ago Last modified on 09/28/14 22:05:26

Attachments (10)

Download all attachments as: .zip