[[PageOutline]] '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy#ATutorialonSystematicExperimentalDesign A Tutorial on Systematic Experimental Design]''' '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftwareQuagga Step I: Single Node]''' '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/SmallTopoQuagga Step II: Small Topology]''' '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUpQuagga Step III: Scaling Up]''' {{{ #!html
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 [http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup/4node-final.rspec 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. [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:4node-nonstitching.png)]] We will select three InstaGENI aggregates that support stitching links from the [http://groups.geni.net/geni/wiki/GeniNetworkStitchingSites 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 [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:info.jpg)]] to open node property information, in the '''Manager''' field, select ''instageni.wisc.edu'' 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. [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:change-aggregate.png)]] {{{ #!html
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 "instageni.wisc.edu", which is consistent with "wisconsin-ig" aggregate.
}}} [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:disk-name.png)]] == b. Change Link Types == Now we have three aggregates selected, the link types between nodes are changed to '''gre-tunnel'''. [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:4node-3aggregates-gre.png)]] 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 [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:info.jpg)]] 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. [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:change-link-type.png)]] Similarly, update the link type for the other '''gre-tunnel''' links, and you will see the topology now looks like: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:4node-stitching.png)]] 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 "urn:publicid:IDN+instageni.stanford.edu+authority+cm" is not needed. Also, we need to reduce the capacity down to less than 20000, it is 100000 by default. {{{ }}} 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. {{{ }}} Now the link block for stitched0 should look like: {{{ }}} 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 createsliver }}} The option `"--logconfig"` is not necessary, but if you see message like "WARNING:root:Failed to find log config file /Applications/omniTools-2.6/stitcher.app/Contents/Resources/lib/python27.zip/gcf/stitcher_logging.conf", you may need to manually download [http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup/stitcher_logging.conf 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 urn:publicid:IDN+ch.geni.net:GPOInterns2014+slice+xuan-wiki-prep1 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 : 17:47:32 INFO : 17:47:32 INFO : 17:47:32 INFO : 17:47:32 INFO : Stitcher doing createsliver at ... 17:47:54 INFO : ... Allocation at complete. 17:47:54 INFO : Stitcher doing createsliver at ... 17:48:19 INFO : ... Allocation at complete. 17:48:19 INFO : Stitcher doing createsliver at ... 17:48:41 INFO : ... Allocation at complete. 17:48:42 INFO : Stitcher doing createsliver at ... 17:49:26 INFO : DCN AM : 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 17:50:41 INFO : DCN circuit 103151 is ready at 17:50:41 INFO : DCN circuit 103141 is ready at 17:50:48 INFO : ... Allocation at 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 . 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! '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUpQuagga Scaling Up: Introduction]''' '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUpQuagga/Execute Scaling Up: Execute]'''