| 1 | [[PageOutline]] |
| 2 | |
| 3 | '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy#ATutorialonSystematicExperimentalDesign A Tutorial on Systematic Experimental Design]''' |
| 4 | |
| 5 | '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware Step I: Single Node]''' |
| 6 | |
| 7 | '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/SmallTopo Step II: Small Topology]''' |
| 8 | |
| 9 | '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp Step III: Scaling Up]''' |
| 10 | |
| 11 | |
| 12 | |
| 13 | {{{ |
| 14 | #!html |
| 15 | |
| 16 | <div style="text-align:center; width:495px; margin-left:auto; margin-right:auto;"> |
| 17 | <img id="Image-Maps_5201305222028436" src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/Setup.jpg?format=raw" usemap="#Image-Maps_5201305222028436" border="0" width="495" height="138" alt="" /> |
| 18 | <map id="_Image-Maps_5201305222028436" name="Image-Maps_5201305222028436"> |
| 19 | <area shape="rect" coords="18,18,135,110" href="http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup" alt="" title="" /> |
| 20 | <area shape="rect" coords="180,18,297,111" href="http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/Execute" alt="" title="" /> |
| 21 | <area shape="rect" coords="344,17,460,110" href="http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/Finish" alt="" title="" /> |
| 22 | <area shape="rect" coords="493,136,495,138" href="http://www.image-maps.com/index.php?aff=mapped_users_5201305222028436" alt="Image Map" title="Image Map" /> |
| 23 | </map> |
| 24 | <!-- Image map text links - End - --> |
| 25 | |
| 26 | </div> |
| 27 | }}} |
| 28 | |
| 29 | |
| 30 | = 1. Modify RSpec = |
| 31 | |
| 32 | 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. |
| 33 | |
| 34 | == a. Add Aggregates == |
| 35 | |
| 36 | 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. |
| 37 | Now you should be able to see the topology on your canvas in Flack. |
| 38 | |
| 39 | [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:4node-nonstitching.png)]] |
| 40 | |
| 41 | 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. |
| 42 | |
| 43 | [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:change-aggregate.png)]] |
| 44 | |
| 45 | |
| 46 | {{{ |
| 47 | #!html |
| 48 | <table id="Table_01" border="0" cellpadding="5" cellspacing="0"> |
| 49 | <tr> |
| 50 | <td> |
| 51 | <img src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/Graphics/4NotesIcon_512x512.png" width="50" height="50" alt="Note"> |
| 52 | </td> |
| 53 | <td> |
| 54 | 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. |
| 55 | <br/> |
| 56 | <i> |
| 57 | |
| 58 | </i> |
| 59 | </td> |
| 60 | </tr> |
| 61 | </table> |
| 62 | }}} |
| 63 | |
| 64 | |
| 65 | |
| 66 | [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:disk-name.png)]] |
| 67 | |
| 68 | == b. Change Link Types == |
| 69 | |
| 70 | Now we have three aggregates selected, the link types between nodes are changed to '''gre-tunnel'''. |
| 71 | |
| 72 | [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:4node-3aggregates-gre.png)]] |
| 73 | |
| 74 | 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. |
| 75 | |
| 76 | [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:change-link-type.png)]] |
| 77 | |
| 78 | |
| 79 | Similarly, update the link type for the other '''gre-tunnel''' links, and you will see the topology now looks like: |
| 80 | |
| 81 | [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/DesignSetup:4node-stitching.png)]] |
| 82 | |
| 83 | Export the request RSpec to your local machine, save it as `4node-stitching.rspec`. |
| 84 | |
| 85 | == c. Edit New RSpec == |
| 86 | |
| 87 | Now open the RSpec file `4node-stitching.rspec`, and we need to do some small editing locally first. |
| 88 | |
| 89 | 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. |
| 90 | |
| 91 | 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. |
| 92 | {{{ |
| 93 | <link client_id="stitched0"> |
| 94 | <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/> |
| 95 | <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/> |
| 96 | <component_manager name="urn:publicid:IDN+instageni.wisc.edu+authority+cm"/> |
| 97 | <component_manager name="urn:publicid:IDN+instageni.nysernet.org+authority+cm"/> |
| 98 | <component_manager name="urn:publicid:IDN+instageni.stanford.edu+authority+cm"/> |
| 99 | <interface_ref client_id="xen-0:if0"/> |
| 100 | <interface_ref client_id="xen:if0"/> |
| 101 | <property source_id="xen-0:if0" dest_id="xen:if0" capacity="100000"/> |
| 102 | <property source_id="xen:if0" dest_id="xen-0:if0" capacity="100000"/> |
| 103 | <flack:link_info x="526" y="405" unboundVlantag="true"/> |
| 104 | </link> |
| 105 | }}} |
| 106 | |
| 107 | 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. |
| 108 | |
| 109 | {{{ |
| 110 | <component_manager name="urn:publicid:IDN+instageni.stanford.edu+authority+cm"/> |
| 111 | }}} |
| 112 | |
| 113 | Now the link block for stitched0 should look like: |
| 114 | {{{ |
| 115 | <link client_id="stitched0"> |
| 116 | <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/> |
| 117 | <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/> |
| 118 | <component_manager name="urn:publicid:IDN+instageni.wisc.edu+authority+cm"/> |
| 119 | <component_manager name="urn:publicid:IDN+instageni.nysernet.org+authority+cm"/> |
| 120 | <interface_ref client_id="xen-0:if0"/> |
| 121 | <interface_ref client_id="xen:if0"/> |
| 122 | <property source_id="xen-0:if0" dest_id="xen:if0" capacity="10000"/> |
| 123 | <property source_id="xen:if0" dest_id="xen-0:if0" capacity="10000"/> |
| 124 | <flack:link_info x="526" y="405" unboundVlantag="true"/> |
| 125 | </link> |
| 126 | }}} |
| 127 | |
| 128 | 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. |
| 129 | |
| 130 | = 2. Get Resource Using Stitcher = |
| 131 | You have two options for reserving multi-aggergate topologies: the Portal and `stitcher`. |
| 132 | == a. Get Resource Using the Portal == |
| 133 | You can reserve multi-aggregate topologies using the '''Add Resources''' button on the Portal. |
| 134 | |
| 135 | == b. Get Resource Using Stitcher == |
| 136 | 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. |
| 137 | |
| 138 | The command is: |
| 139 | {{{ |
| 140 | $stitcher --logconfig <path to stitcher_logging.conf> createsliver <slicename> <path to your rspec> |
| 141 | }}} |
| 142 | |
| 143 | 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. |
| 144 | |
| 145 | If you successfully run stitcher, you will see similar output as below: |
| 146 | |
| 147 | {{{ |
| 148 | dhcp89-69-127:tools xliu$ stitcher --logconfig stitcher_logging.conf createsliver xuan-wiki-prep1 ~/Documents/docs/wiki-fig/4node-stitching.rspec |
| 149 | 17:47:31 INFO : Configured logging from file stitcher_logging.conf |
| 150 | 17:47:31 INFO : Reading slice xuan-wiki-prep1 credential... |
| 151 | 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 |
| 152 | 17:47:31 INFO : Calling SCS... |
| 153 | 17:47:32 INFO : Multi-AM reservation will include resources from these aggregates: |
| 154 | 17:47:32 INFO : <Aggregate nysernet-ig> |
| 155 | 17:47:32 INFO : <Aggregate illinois-ig> |
| 156 | 17:47:32 INFO : <Aggregate wisconsin-ig> |
| 157 | 17:47:32 INFO : <Aggregate ion> |
| 158 | 17:47:32 INFO : Stitcher doing createsliver at <Aggregate nysernet-ig>... |
| 159 | 17:47:54 INFO : ... Allocation at <Aggregate nysernet-ig> complete. |
| 160 | 17:47:54 INFO : Stitcher doing createsliver at <Aggregate illinois-ig>... |
| 161 | 17:48:19 INFO : ... Allocation at <Aggregate illinois-ig> complete. |
| 162 | 17:48:19 INFO : Stitcher doing createsliver at <Aggregate wisconsin-ig>... |
| 163 | 17:48:41 INFO : ... Allocation at <Aggregate wisconsin-ig> complete. |
| 164 | 17:48:42 INFO : Stitcher doing createsliver at <Aggregate ion>... |
| 165 | 17:49:26 INFO : DCN AM <Aggregate ion>: must wait for status ready.... |
| 166 | 17:49:26 INFO : Pausing 30 seconds to let circuit become ready... |
| 167 | 17:50:04 INFO : Pausing 30 seconds to let circuit become ready... |
| 168 | 17:50:41 INFO : DCN circuit 103131 is ready at <Aggregate ion> |
| 169 | 17:50:41 INFO : DCN circuit 103151 is ready at <Aggregate ion> |
| 170 | 17:50:41 INFO : DCN circuit 103141 is ready at <Aggregate ion> |
| 171 | 17:50:48 INFO : ... Allocation at <Aggregate ion> complete. |
| 172 | 17:50:48 INFO : All aggregates are complete. |
| 173 | 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. |
| 174 | 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' |
| 175 | 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). |
| 176 | |
| 177 | }}} |
| 178 | |
| 179 | |
| 180 | Now we are ready to run the experiments! |
| 181 | |
| 182 | |
| 183 | |
| 184 | '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp Scaling Up: Introduction]''' |
| 185 | |
| 186 | '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/ScalingUp/Execute Scaling Up: Execute]''' |