Lab Wiki Tutorial OMFOML Divya Bhat Mike Zink
Lab. Wiki Tutorial (OMF/OML) Divya Bhat, Mike Zink, Pieter Becue, Brecht Vermeulen GEC 20 July 8 th 2014, Ghent, Belgium Sponsored by the National Science Foundation
Experiment Design “Perform basic measurements on GENI testbeds” ü GENI slice (network & compute resources) ü Repeatable experiment ü Ability to monitor and document experiment Sponsored by the National Science Foundation GEC 20 2
The “Experiment Cycle” Plan Notes Experiment Description Prepare Runs Code Measurements Execute Sponsored by the National Science Foundation GEC 20 3
The “Successful Experiment Cycle” Publish Plan Notes Experiment Description Prepare Runs Code Measurements Execute Sponsored by the National Science Foundation GEC 20 4
The “Experiment Cycle” in a Tool: Lab. Wiki Sponsored by the National Science Foundation GEC 20 5
Search Wiki Sponsored by the National Science Foundation Edit GEC 20 Run 6
Lab. Wiki Core GENI/FIRE CH/AM Your OMF Execute Plugin Prepare Plugin Plan Lab. Wiki Services Post. Gres Your Service https: //github. com/mytestbed/labwiki Sponsored by the National Science Foundation GEC 20 7
Learning Switch Source: A Dest: A’ • frame destination unknown: flood v destination A location known: selective send v More info in chapter 6 of “Computer Networks”, Kurose & Ross A B C’ 6 1 A A’ 4 5 B’ 2 3 C A’ A MAC addr interface 1 4 A A’ Sponsored by the National Science Foundation A A’ GEC 20 TTL 60 60 A’ Switch table (initially empty) 8
Example Experiment Topology • N 1 – N 6: regular end systems • Switch 1, Switch 2: VMs with OVS installed sw-based OF switch • Trema-based OF controller running on Switch https: //github. com/trema Goal: Implement learning switch and verify its correct behavior Sponsored by the National Science Foundation GEC 20 9
Lab. Wiki Tour Sponsored by the National Science Foundation GEC 20 10
Environment Experimenter 6. Obtain 1. Instrument Post. Gres Automated 5. Save Lab. Wiki 4. Plot 0. Reserve OML Server 2. Run 3. Collect GENI Test. Bed OML Client Sponsored by the National Science Foundation GEC 20 11
Preparation • In earlier tutorials: – – – GENI/FIRE account and credentials Know what resources are available How to create a slice request (Rspec) How to reserve a slice How to log into VMs of your slice • Familiar with GENI Portal! Sponsored by the National Science Foundation GEC 20 12
Part 1 http: //groups. geni. net/geni/wiki/GENIFIR E/Labwiki/Part 1/Introduction Sponsored by the National Science Foundation GEC 20 13
Architecture Your Slice R C M L Switch 1 Node 2 RC R C ML OML Server M L Job Service EC Node 5 Switch 2 Node 3 R C RC R C M L ML AMQP Server M L Post. Gres Lab. Wiki Persistent Server Node 6 Node 1 Node 4 R C M L Sponsored by the National Science Foundation GEC 20 14
AMQP Messaging Node 1 Node 2 R C ML ML ugent OML Server R C Job Service ML EC Images with tools available for Insta. GENI, Exo. GENI and i. Minds AMQP Server Post. Gres Lab. Wiki Persistent Server Switch 1 15 Sponsored by the National Science Foundation GEC 20 15
EC/RC Messaging Node 1 Node 2 R C ML ML ugent OML Server R C Job Service ML EC AMQP Server i. RODS Lab. Wiki Persistent Server Switch 1 16 Sponsored by the National Science Foundation GEC 20 16
Data Collection Node 2 R C ML ML OML Server Job Service Node 3 R C EC AMQP Server ML Post. Gres Lab. Wiki Persistent Server Node 1 17 Sponsored by the National Science Foundation GEC 20 17
Lab. Wiki Node 2 R C ML ML OML Server Job Service Switch R C EC AMQP Server ML Post. Gres Lab. Wiki Persistent Server Node 1 18 Sponsored by the National Science Foundation GEC 20 18
Documentation • OML: http: //oml. mytestbed. net/projects/oml • Job Service: https: //github. com/mytestbed/omf_job_service • OMF: http: //oml. mytestbed. net/projects/omf • AMQP: http: //www. rabbitmq. com/ • Lab. Wiki: https: //github. com/mytestbed/labwiki • OVS: http: //openvswitch. org/ • Trema: http: //trema. github. io/trema/ Sponsored by the National Science Foundation GEC 20 19
Steps 1. 2. 3. 4. 5. 6. 7. Reserve slice with VMs that boot Lab. Wiki image Verify that slice is up Define experiment to be executed in Lab. Wiki Run and observe experiment Archive results Document results Delete slice (be a good citizen by sharing!!) Sponsored by the National Science Foundation GEC 20 20
Nodes 1 -6 • Image • Postboot script • ssh into node Sponsored by the National Science Foundation GEC 20 21
Nodes 1 -6: Image • Insta. GENI – – Ubuntu 12. 04 OMF OML client & apps URL to image: https: //www. instageni. illinois. edu/image_metadata. p hp? uuid=df 9 ce 62 b-ec 1 a-11 e 3 -bc 1 a-000000 Sponsored by the National Science Foundation GEC 20 22
Nodes 1 -6: Postboot Script IG • Postboot script (http: //fed 4 firetestbeds. ilabt. iminds. be/FGRE/fgre_wall 1. sh) #!/bin/bash read -r slice 1 </var/emulab/boot/nickname slicename=$(echo $slice 1 | cut -f 2 -d. ) host 1=$(hostname) host=$(echo $host 1 | cut -f 1 -d. ) slice=`ruby -e "print '$slicename'[/[^+]*$/]"` echo $host > /etc/hostname /bin/hostname -F /etc/hostname echo "--: uid: $host-$slice : uri: amqp: //gimi 3. casa. umass. edu : environment: production : debug: false" > /etc/omf_rc/config. yml restart omf_rc Sponsored by the National Science Foundation Initiates connect to AMQP server GEC 20 23
Switch 1 & Switch 2 • Image • Postboot script • ssh into node Sponsored by the National Science Foundation GEC 20 24
Switch 1 & Switch 2: Image • Insta. GENI – – – Ubuntu 12. 04 OMF OML and apps OVS Trema URL to image: https: //www. instageni. nysernet. org/image_metadata. ph p? uuid=551210 c 7 -ecca-11 e 3 -9973 -000000 Sponsored by the National Science Foundation GEC 20 25
Switch: Postboot Script • Postboot script: • Rspec: • • <execute shell="sh" command="cd /local ; sudo wget http: //fed 4 firetestbeds. ilabt. iminds. be/FGRE/fgre_wall 2_ovs. sh"/> <execute shell="sh" command="sudo chmod 755 /local/fgre_wall 2_ovs. sh"/> <execute shell="sh" command="sudo /local/fgre_wall 2_ovs. sh"/> Sponsored by the National Science Foundation GEC 20 26
Switch: OVS Postboot • • • sudo ovs-vsctl list-br | grep -q $SWITCHNAME if [ $? -ne 0 ]; then sudo ovs-vsctl add-br $SWITCHNAME sudo ovs-vsctl set-fail-mode $SWITCHNAME secure fi • • • # Create ports for each of the interfaces if they don't exist # and clear the IP address for i in $IFLIST; do sudo ovs-vsctl list-ports $SWITCHNAME | grep -q ${i} if [ $? -ne 0 ]; then sudo ovs-vsctl add-port $SWITCHNAME ${i} sudo ifconfig ${i} 0. 0 fi done ovs-vsctl set-controller test tcp: 127. 0. 0. 1: 6653 /usr/bin/trema run /root/learning-switch_copy. rb > /tmp/trema-runlog 2>&1 & Sponsored by the National Science Foundation GEC 20 27
Debugging the RC • ssh into node Click on ‘Login’ – Experiment Controller -> Raw Rspec -> Login • On the node: /var/log/omf_rc. log [2014 -06 -20 17: 49: 05 +0000] WARN Omf. Common: : Comm: : AMQP: : Communicator: Lost connectivity. Trying to reconnect. . . [2014 -06 -20 17: 49: 05 +0000] INFO Omf. Rc: : Runner: Starting OMF Resource Controller version '6. 1. 2. pre. 5' [2014 -06 -20 17: 49: 05 +0000] INFO Omf. Rc: : Runner: Connected using {: proto=>: amqp, : user=>"guest", : domain=>"127. 0. 0. 1"} [2014 -06 -20 17: 56: 06 +0000] INFO Omf. Rc: : Resource. Proxy: : Abstract. Resource: App Event from 'ping_cxt_0' (#0) STARTED: 'env -i /usr/local/bin/ping-oml 2 -a 192. 168. 1. 7 -c 30 --oml-config /tmp/854849 b 2 -19 a 2 -475 d-9588278271 d 894 aa-1403286966. xml' [2014 -06 -20 17: 56: 06 +0000] INFO Omf. Rc: : Resource. Proxy: : Abstract. Resource: App Event from 'ping_cxt_1' (#0) STARTED: 'env -i /usr/local/bin/ping-oml 2 -a 192. 168. 1. 8 -c 30 --oml-config /tmp/96 c 56027 -f 62 e-41 b 1 -873 dba 39 fe 429 ab 9 -1403286966. xml' [2014 -06 -20 17: 56: 06 +0000] INFO Omf. Rc: : Resource. Proxy: : Abstract. Resource: App Event from 'ping_cxt_2' (#0) STARTED: 'env -i /usr/local/bin/ping-oml 2 -a 192. 168. 1. 9 -c 30 --oml-config /tmp/53 a 86677 -61 d 6 -4 b 31 -8 f 654 e 272 d 7 b 2343 -1403286966. xml' Sponsored by the National Science Foundation GEC 20 28
OEDL Script • We will look at this in Lab. Wiki • More info on OEDL scripts: http: //omf. mytestbed. net/projects/omf 6/wiki/OEDL OMF 6 Sponsored by the National Science Foundation GEC 20 29
MD Script • We will look at this in Lab. Wiki Sponsored by the National Science Foundation GEC 20 30
Part 2 – Add Flow Statistics http: //groups. geni. net/geni/wiki/GENIFI RE/Labwiki/Part 2 a/Introduction Sponsored by the National Science Foundation GEC 20 31
Measure Flow. Stats • Observe performance of flows • Done via flow_stats in OF controller • OML app to capture information and transmit to OMLserver • Use Lab. Wiki to observe Flow. Stats live Sponsored by the National Science Foundation GEC 20 32
Flow. Stats - Exercise • Can you modify this script to run UDP Iperf instead? What kind of Throughput graphs do you get? • Can you change the Graph Definition to show aggregate number of flows per node? [Solution will be posted to the tutorial link by the end of this Tutorial] • http: //groups. geni. net/geni/wiki/GENIFIRE/Labwiki /Part 2 a/Execute Sponsored by the National Science Foundation GEC 20 33
Want to Know More? • • Sample assignments: http: //groups. geni. net/geni/wiki/GENIEducation/Sample Assignments geni-gimi-users@googlegroups. com Sponsored by the National Science Foundation GEC 20 34
- Slides: 34