Version 12 (modified by 12 years ago) (diff) | ,
---|
The Idea
This experiment demonstrates the use of multiple GENI WiMAX sites in one experiment.
In this experiment, we will collected measurements from temperature, light, and humidity sensors attached to nodes at NYU-Poly and send them over the WiMAX network, through the Internet2 link, to a WiMAX-connected client at UCLA.
Experiment Design
Step 1: Choose the application that you want to run on the WiMAX nodes (or create a new one)
A number of already-OMLized applications are already available.
In this case, we will run two applications that we've written ourselves: a sensor application that collects measurements from temperature, humidity, and light sensors attached to the node, and a wmxstat application that collects measurements about the state of the WiMAX link.
Both of these applications are Ruby scripts.
Step 2: If you've written your own application, instrument it with OML so that you can collect measurements from it during experiment runtime
These applications were instrumented with the oml4r Ruby client library.
OML client libraries are also available for Python and C or C++.
Step 3: Create a disk image with your applications installed
Log onto a testbed and load a baseline disk image onto a node:
omf load -i baseline-witest.ndz -t omf.witest.node1
Turn the node on:
omf tell -a on -t omf.witest.node1
Log onto the node (ssh root@node1) and install your applications and any required files.
Then save your disk image:
omf save -n omf.witest.node1
This can take a while, so we've already created a disk image for use in this tutorial. It's called gec15sensor.ndz
You can load this disk image onto any number of nodes, instead of manually installing your application and configuring each node individually!
Step 4: If you've written and instrumented your own applications, you will have to write an application definition for each experiment.
Before running the experiment, download the application definitions to the console where you'll run the experiment.
Step 5: Write an OMF script
Decide exactly how you want to configure the network interfaces on your nodes and what options you want to run the applications with. Then write an OMF script to orchestrate all of this on your nodes.
Since we are working at two sites, we have two OMF scripts:
Review these scripts with your instructor.
Before running the experiment, download the OMF scripts to the console where you'll run the experiment.
Experiment Deployment
Step 6: Set up your environment
Load your disk image onto the set of nodes you want to use:
omf load -i gec15sensor.ndz -t omf.witest.node1,omf.witest.node2,omf.witest.node3,omf.witest.node4,omf.witest.node5,omf.witest.node6,omf.witest.node7
Turn these nodes back on with the command:
omf tell -a on -t omf.witest.node1,omf.witest.node2,omf.witest.node3,omf.witest.node4,omf.witest.node5,omf.witest.node6,omf.witest.node7
Reset the base station to its default settings, and then restart it so that the changes will take effect:
wget -qO- "http://wimaxrf:5052/wimaxrf/bs/default" wget -qO- "http://wimaxrf:5052/wimaxrf/bs/restart"
Don't be alarmed if the second command returns a failure message; this is normal.
Step 7: Load your WiMAX datapath
The datapath you select will determine how your WiMAX clients will be connected; for example, will they appear on the public Internet or on the Internet2 network?
In this case, we are using the I2 network, so we will load the geni datapath configuration:
wget -qO- "http://wimaxrf:5052/wimaxrf/datapath/config/load?name=geni"
Experiment Execution
At NYU-Poly:
omf exec -e gec15sensor gec15sensor-poly.rb
At UCLA:
omf exec -C omf-expctl.yaml -e gec15sensor gec15sensor-ucla.rb
(Custom EC config used so that all of the measurements from both sites will be stored together at NYU-Poly).
Visit the web interface to see the experiment visualization in real time:
(The UCLA visualization is forwarded from UCLA server using SSH tunneling; run
ssh root@omf-server.cs.ucla.edu -g -L 5757:omf-server.cs.ucla.edu:4000
on the witestlab.poly.edu console to create the tunnel, and leave it running.)
Look at the sent measurements (NYU-Poly) and received measurements (UCLA) and confirm that the data matches.
When you run the experiment subsequent times, you can append to the same measurement set (by using the same experiment ID, gec15sensor) or start fresh by naming a new experiment ID (e.g. use gec15sensor2).
Experiment Analysis
Use the result service at NYU-Poly to retrieve the measurements in sq3 format: http://witestlab.poly.edu:5053/result/dumpDatabase?expID=gec15sensor