Changes between Version 19 and Version 20 of GENIEducation/SampleAssignments/OpenFlowLoadBalancerTutorial/ExerciseLayout/Execute


Ignore:
Timestamp:
07/08/13 12:09:56 (11 years ago)
Author:
shuang@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIEducation/SampleAssignments/OpenFlowLoadBalancerTutorial/ExerciseLayout/Execute

    v19 v20  
    7272   - Log on to node `switch` and do `ifconfig` to see the IP addresses on each interfaces. Identify the two interfaces that you want to monitor: the interfaces with IP address 192.168.2.1 and 192.168.3.1 respectively. On the !LabWiki page, in your ruby script, find the following line:
    7373{{{
    74 options = { 'sample-interval' => 1, 'monitor_interface' => 'eth1 -i eth3' }
    75 }}}
    76    - Change eth1 and eth3 to the corresponding two interfaces you found with IP address 192.168.2.1 and 192.168.3.1 and press the `save` icon on your !LabWiki page.
     74###### Change the following to the correct interfaces ######
     75left = 'eth1'
     76right = 'eth3'
     77###### Change the above to the correct interfaces ######
     78}}}
     79   - Change eth1 and eth3 to the corresponding two interfaces you found with IP address 192.168.2.1 (the interface that connects to the left path) and 192.168.3.1 (the interface that connects to the right path) and press the `save` icon on your !LabWiki page.
    7780   - Drag the file Icon on your !LabWiki page from `Prepare` column and drop it to `Execute` column. Fill in the name of your !LabWiki experiment (this can be anything), the name of your slice (this has to be your slice name), and type `true` in the graph box to enable graph. And then press `Start Experiment` button.
    7881   - '''Note''': Do not start another experiment (i.e., drag and drop the file icon in !LabWiki and press `Start Experiment`) before your current experiment is finished.
     
    9497 - You need to calculate the average per-flow throughput observed from both left and right path in function "stats_reply" in your load-balancer.rb
    9598 - In function "packet_in", change the path decision based on the calculated average per-flow throughput: forward the flow onto the path with more average per-flow throughput. (Why? Hint: TCP tries its best to suck up the whole bandwidth)
    96  - If you do not know where to start, check the hints in Section 3. If you really do not know where to start after reading at the hints, download the answer from [http://www.gpolab.bbn.com/experiment-support/OpenFlowExampleExperiment/ExoGENI/load-balancer-solution.rb Here].
     99 - If you do not know where to start, check the hints in Section 3. If you really do not know where to start after reading the hints, download the answer directly from [http://www.gpolab.bbn.com/experiment-support/OpenFlowExampleExperiment/ExoGENI/load-balancer-solution.rb Here].
    97100 - Redo the above experiment (the one with some lossrate on the left path), check the graphs plotted on !LabWiki as well as the controller's log on node "Switch" at /tmp/lb.tmp and see the difference.
    98101 - If you have more time or are interested in trying out things, go ahead. The tutorial is over now and feel free to ask questions :-)
     
    174177
    175178== 3.3 About the GIMI script you run on !LabWiki ==
     179 - Line 1 to Line 140: the definition of oml trace and oml nmetrics library. It basically defines the command line options for oml2-trace and oml2-nmetrics, as well as the output (the monitoring data that is going to be stored into the oml server)
     180  - users are not supposed to modify them
     181  - the definition here we used is not the same as what is provided by the latest OML2 2.10.0 library because there is some version mis-match between the OMF that !LabWiki is using and the OML2 toolkit that we are using. It is a temporary hack for now --> to be fixed
     182  - we added the definition of option "--oml-config" for trace app (Line 27-28) so that oml2-trace accepts configuration files:
     183  {{{
     184  app.defProperty('config', 'config file to follow', '--oml-config',
     185                  :type => :string, :default => '"/tmp/monitor/conf.xml"')
     186  }}}
     187 - Line 140 to Line 144: user defines the monitoring interfaces here. In our case, we want to monitor the interface on node "Switch" that connects to the left path (with IP 192.168.2.2) and to the right path (with IP 192.168.3.1)
     188 - Line 145 to Line 178: defines on which node the user wants to run which monitoring app; and the "display graph" option.
     189  - group "Monitor" monitors the left path statistics using nmetrics and trace.
     190  - group "Monitor1" monitors the right path statistics using nmetrics and trace.
     191  - To monitor the throughput information, we used oml2-trace with the option of "--oml-config" which uses the configuration file we created at /tmp/monitor/conf.xml, which simply sums up the number of ip_len (in Bytes) for each second and save the info into the OML Server (in a Postgre database):
     192  {{{
     193   <omlc id="switch" encoding="binary">
     194     <collect url="tcp:emmy9.casa.umass.edu:3004" name="traffic">
     195       <stream mp="ip" interval="1">
     196         <filter field="ip_len" operation="sum" rename="throughput" />
     197       </stream>
     198     </collect>
     199   </omlc>
     200  }}}
     201  - More information about nmetrics and trace can be found here: http://oml.mytestbed.net/projects/omlapp/wiki/OML-instrumented_Applications#Packet-tracer-trace-oml2
     202 - Line 179 to Line 246: defines the experiment:
     203  - Line 181-182: starts the monitoring app
     204  - Line 184-195: starts two TCP flows from outside (sender) to inside (receiver), wait for 20 seconds
     205  - Line 196-201: starts the load balancer and connects ovs switch to the load balancer (controller)
     206  - Line 202-236: starts 9 additional TCP flows, with 5 seconds interval between the initial of each Flow
     207  - Line 237-245: stop the load balancer controller, disconnect the ovs switch from the controller and finish the experiment
     208 - Line 247 to Line 264: defines the two graphs we want to plot:
     209  - The first uses the monitoring data from oml2-nmetrics to display the cumulated number of bytes observed from each of the interfaces;
     210  - The second graph uses the monitoring results from oml2-trace to display the throughput observed from each of the interfaces.
    176211
    177212= [wiki:GENIEducation/SampleAssignments/OpenFlowLoadBalancerTutorial/ExerciseLayout/Finish Next: Teardown Experiment] =