== Scalable Monitoring Evaluation == A first version of the Scalable Monitoring Demo was made available on July 13,2010. Software for sensor pod not available at the time. Scalable Sensing Service (S3)information provided included: * [http://illusion.hpl.hp.com/genis3monitor/scube Scalable Sending Service (S3)] page detailing project overview, ProtoGENI details, tools, papers, etc. * [http://illusion.hpl.hp.com/genis3monitor/Readme.htm README] page outlining the manual use of the tools. * [http://illusion.hpl.hp.com:8180/geni/demo.jsp SensorPod Demonstration] page which automates the manual procedure above, This initial version was deemed not complete and evaluation stopped. A second version of Scalable Monitoring Demo page was made available on July 27, 2010. This version is the the demo given at GEC8. Pointers given for this version: * [http://illusion.hpl.hp.com:8180/geni/demo.jsp SensorPod Demonstration] page. * [http://illusion.hpl.hp.com:8180/geni/demoHelp.html Basic "Help"] associated with the Scalable Monitoring Demo A third version of the Scalable Sensing Services code was made available on August 10, 2010. The software is available at [http://illusion.hpl.hp.com/genis3monitor/scube Scalable Sensing Service] web page from the '''References''' link, which point to a page including a link [http://illusion.hpl.hp.com/genis3monitor/scube.tar.gz download S3 Code]. This version still has all the issues with various pages not being available for review. After several days of evaluation this download version was placed on hold and no longer being evaluated. == Scalable Monitoring Findings == === July 13th version findings === 1. Most of the link in the S3 web page point to an internal web server and are not available. This is to be addressed once outstanding legal approval takes place. 2. Some link point to non-existing paths and some items that should be links are listed as text only. === July 27th version findings === 1. Step 10 in [http://illusion.hpl.hp.com:8180/geni/demoHelp.html Demo Help] page may take up to 10 minutes as S3 periodically fetches the data. Need to add the ''Step 10'' delay to the "Help" pages. 2. The [http://illusion.hpl.hp.com/genis3monitor/scube Scalable Sending Service (S3)] page is still being revised and not available. 3. The [http://illusion.hpl.hp.com/genis3monitor/Readme.htm README] is still unchanged and requires clarifications. === August 10th version findings === 1. Extensive issues with Readme including: * Incorrect instruction for path, file names, command syntax, etc. * No context for operations. * No clear distinction between demo steps and user installed setup. 2. Significant amount of hard-coded values in package made it difficult to configure. 3. Large amount of files included in the release package that were not intended to be part of the package. After several exchanges about this source download, instructed to stop using the package and go back to demo page. == Scalable Monitoring How-to == '''Scalable Monitoring Demo How-to (July 27th version)''' 1. Access to the [http://illusion.hpl.hp.com:8180/geni/demo.jsp Scalable Monitoring Demonstration] page, user is prompted to enter '''any''' user name to sign in, no registration is required: [[Image(2010-07-28_ScalableMonitoring-1.jpg)]] 2. After login, the user is presented with the following page: [[Image(2010-07-28_ScalableMonitoring-2.jpg)]] 3. At this point the user can create a sliver and choose the number of nodes by selecting "Setup->Create Sliver": [[Image(2010-07-28_ScalableMonitoring-3.jpg)]] The sliver creation will generate this type of output: {{{ COMMAND = SLIVER SLICENAME = ln_slice2_S3 NODES = 3 USER = lnevers SERVER = illusion.hpl.hp.com Executing command -- mkdir -p /var/lib/tomcat5.5/webapps/geni/lnevers/ln_slice2_S3 Executing command -- echo ln_slice2_S3 >> /var/lib/tomcat5.5/webapps/geni/lnevers/sliceList.txt Executing command -- echo 3 >> /var/lib/tomcat5.5/webapps/geni/lnevers/ln_slice2_S3/Nodes.txt Executing command -- echo ln_slice2_S3 > /var/lib/tomcat5.5/webapps/geni/lnevers/ln_slice2_S3/SliceNameFile.txt Executing command -- /home/genis3monitor/testscripts/registerslice.py -n ln_slice2_S3 No such slice registered here:Got my SA credential Creating new slice called ln_slice2_S3 New slice created Executing command -- /home/genis3monitor/testscripts/createsliver.py -n ln_slice2_S3 /home/genis3monitor/testscripts/threenode.rspec Got my SA credential Asking for slice credential for ln_slice2_S3 Got the slice credential Creating the Sliver ... Created the sliver }}} 4. The user can then "Allocate Machines": [[Image(2010-07-28_ScalableMonitoring-4.jpg)]] Which results in the following: {{{ COMMAND = MACHINELIST SLICENAME = ln_slice2_S3 USER = lnevers SERVER = illusion.hpl.hp.com Executing command -- ssh-keyscan -f /var/lib/tomcat5.5/webapps/geni/lnevers/ln_slice2_S3/MachineList.txt -t rsa >> /home/genis3monitor.ssh/known_hosts # pc155.emulab.net SSH-1.99-OpenSSH_3.5p1 # pc104.emulab.net SSH-1.99-OpenSSH_3.5p1 # pc120.emulab.net SSH-1.99-OpenSSH_3.5p1 Executing command -- ssh-keyscan -f /var/lib/tomcat5.5/webapps/geni/lnevers/ln_slice2_S3/MachineList.txt -t rsa > /var/www .ssh/known_hosts # pc155.emulab.net SSH-1.99-OpenSSH_3.5p1 # pc104.emulab.net SSH-1.99-OpenSSH_3.5p1 # pc120.emulab.net SSH-1.99-OpenSSH_3.5p1 Executing command -- echo /var/lib/tomcat5.5/webapps/geni/lnevers/ln_slice2_S3 >> /var/lib/tomcat5.5/webapps/geni/MasterList.txt Executing command -- sort -u -o /var/lib/tomcat5.5/webapps/geni/MasterList.txt /var/lib/tomcat5.5/webapps/geni/MasterList.txt }}} 5. User can view the "Sliver Status": [[Image(2010-07-28_ScalableMonitoring-5.jpg)]] The following status is returned: {{{ COMMAND = STATUS SLICENAME = ln_slice2_S3 USER = lnevers SERVER = illusion.hpl.hp.com Executing command -- /home/genis3monitor/testscripts/sliverstatus.py -n ln_slice2_S3 2>&1 |tee /var/lib/tomcat5.5/webapps/geni/lneversln_slice2_S3/status.txt Got my SA credential. Looking for slice ... Found the slice, asking for a credential ... Got the slice credential, asking for a sliver credential ... Got the sliver credential, asking for sliver status {'status': 'ready', 'state': 'started', 'details': {'urn:publicid:IDN+emulab.net+sliver+15163': {'status': 'ready', 'state': 'started', 'component_urn': 'urn:publicid:IDN+emulab.net+node+pc155', 'error': ''}, 'urn:publicid:IDN+emulab.net+sliver+15164': {'status': 'ready', 'state': 'started', 'component_urn': 'urn:publicid:IDN+emulab.net+node+pc104', 'error': ''}, 'urn:publicid:IDN+emulab.net+sliver+15165': {'status': 'ready', 'state': 'started', 'component_urn': 'urn:publicid:IDN+emulab.net+node+pc120', 'error': ''}}} }}} 6. Measurements can now be run. First example is Measurement Data->Periodic Measurement-> Configure Periodic Measurement: [[Image(2010-07-28_ScalableMonitoring-6.jpg)]] Which shows the following results after submitting request: {{{ COMMAND = FREQUENCYWRAPPER TODOCMD = PING SRC = pc155.emulab.net DEST = pc120.emulab.net FREQ = 20 COUNT = 30 INTERVAL = 10 SERVER = pc155.emulab.net Known Command.. will operate on it Assigned ID for this task: 0 }}} 7. Measuraments must be deployed to the slice: [[Image(2010-07-28_ScalableMonitoring-7.jpg)]] Submitting requirest reports the following in the status pane: {{{ COMMAND = DEPLOYFW USER = lnevers SLICENAME = ln_slice2_S3 SERVER = illusion.hpl.hp.com Executing command -- /usr/lib/cgi-bin/cronDeploy4Nodes.sh /var/lib/tomcat5.5/webapps/geni/lnevers/ln_slice2_S3 www-data Agent pid 15982 Identity added: /var/www/.ssh/id_rsa (/var/www/.ssh/id_rsa) 1/3:ssh mprakash@pc155.emulab.net /usr/bin/crontab /home/genis3monitor/csi/CronTab 2/3:ssh mprakash@pc104.emulab.net /usr/bin/crontab /home/genis3monitor/csi/CronTab 3/3:ssh mprakash@pc120.emulab.net /usr/bin/crontab /home/genis3monitor/csi/CronTab Agent pid 15982 killed }}} 8. Periodic measurement settings can be viewed from "Measurement Data->Periodic Measurements->Configuration->List". Following is the output of the listing for pc155: {{{ COMMAND = FWMAINT TODO = LIST SERVER = pc155.emulab.net ID COMMAND OUTPUT FILES DIRECTORY FREQUENCY --------------------------------------------------------------------------------------------------- Executing command -- cat /home/genis3monitor/csi/FreqTaskList 0 COMMAND=PING&SRC=pc155.emulab.net&DEST=pc120.emulab.net&COUNT=30 /home/genis3monitor/csi/local/measurements 1 }}} 9. Measurements can be displayed with the "Display Data" page: [[Image(2010-07-28_ScalableMonitoring-8.jpg)]] Requesting result from the source to the destination defined in the above steps reports the following: [[Image(2010-07-28_ScalableMonitoring-9.jpg)]] 10. User can also request individual Test Sensors. Available options include: * Latency (ping) - determines delay between selected nodes * Path (traceroute) - determines routes between selected nodes * Pathchirp - estimates available bandwidth between selected nodes * Pathrate - estimates capacity between selected nodes * Spruce - estimate available bandwidth between selected nodes * Tulip (loss) - Under development. * SRSprobe - Under development. All available Test Sensor results are shown in the result pane. Following is sample output from each of the Test Sensors: * Latency Results: {{{ COMMAND = PING DEST = pc104.emulab.net SERVER = pc158.emulab.net Executing command -- ping -c 5 -i 1 pc104.emulab.net PING pc104.emulab.net (155.98.36.104) 56(84) bytes of data. 64 bytes from pc104.emulab.net (155.98.36.104): icmp_seq=1 ttl=64 time=0.209 ms 64 bytes from pc104.emulab.net (155.98.36.104): icmp_seq=2 ttl=64 time=0.221 ms 64 bytes from pc104.emulab.net (155.98.36.104): icmp_seq=3 ttl=64 time=0.163 ms 64 bytes from pc104.emulab.net (155.98.36.104): icmp_seq=4 ttl=64 time=0.156 ms 64 bytes from pc104.emulab.net (155.98.36.104): icmp_seq=5 ttl=64 time=0.200 ms --- pc104.emulab.net ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4041ms rtt min/avg/max/mdev = 0.156/0.189/0.221/0.031 ms }}} * Path Results: {{{ COMMAND = TRACEROUTE DEST = pc104.emulab.net SRC = pc158.emulab.net SERVER = pc158.emulab.net Executing command -- /usr/sbin/traceroute pc104.emulab.net traceroute to pc104.emulab.net (155.98.36.104), 30 hops max, 38 byte packets 1 pc104.emulab.net (155.98.36.104) 0.260 ms 0.170 ms 0.158 ms }}} * Pathchirp Results: {{{ COMMAND = PATHCHIRP DEST = pc104.emulab.net SRC = pc158.emulab.net SERVER = pc158.emulab.net Trying to grab port number 8365 Succedded in grabbing port 8365 Executing command -- wget -O - -o /tmp/rand162634.146706299 "http://pc158.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=PATHCHIRPSND&PORT=8365" Executing command -- wget -O - -o /tmp/rand800032.298852788 "http://pc104.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=PATHCHIRPRCV&DEST=pc158.emulab.net&PORT=8365" COMMAND = PATHCHIRPRCV DEST = pc158.emulab.net PORT = 8365 SERVER = pc104.emulab.net Executing command -- /home/genis3monitor/csi/common/pathchirp/pathchirp_rcv -S pc158.emulab.net -t 30 -U 8365 Waiting for remote host Updating probing range:low=10.000000,high=200.000000Mbps Updating probing range:low=28.571429,high=1400.000000Mbps 1280433107.148686 200.000000 1280433107.628694 200.000000 1280433108.137510 200.000000 1280433109.094366 198.947562 1280433109.166255 201.321000 1280433109.235515 200.268561 1280433109.306276 202.641999 1280433109.375514 201.589561 1280433109.446258 203.962999 <<<>> 1280433130.316560 208.978436 1280433130.385818 205.552560 --13:51:33-- http://pc104.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=PATHCHIRPRCV&DEST=pc158.emulab.net&PORT=8365 => `-' Resolving pc104.emulab.net... done. Connecting to pc104.emulab.net[155.98.36.104]:46000... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/plain] 0K ......... 799.81 B/s 13:52:10 (799.81 B/s) - `-' saved [9489] COMMAND = PATHCHIRPSND PORT = 8365 SERVER = pc158.emulab.net Executing command -- /home/genis3monitor/csi/common/pathchirp/pathchirp_snd -U 8365 Waiting for receiver to setup connection Connected to 155.98.36.104 Chirp Numer: 10 Chirp Numer: 20 Chirp Numer: 30 <<< 20 lines deleted>>> Chirp Numer: 250 Chirp Numer: 260 Chirp Numer: 270 Chirp Numer: 280 Chirp Numer: 290 Chirp Numer: 300 Chirp Numer: 310 Chirp Numer: 320 Finished sending chirps to client Done measuring --13:51:23-- http://pc158.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=PATHCHIRPSND&PORT=8365 => `-' Resolving pc158.emulab.net... done. Connecting to pc158.emulab.net[155.98.36.158]:46000... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/plain] 0K 780.27 KB/s 13:52:10 (780.27 KB/s) - `-' saved [799] }}} * Pathrate Results: {{{ COMMAND = PATHRATE DEST = pc104.emulab.net SRC = pc158.emulab.net QT = 1 SERVER = pc158.emulab.net Trying to grab port number 48698 Succedded in grabbing port 48699 Executing command -- wget -O - -o /tmp/rand89503.6196607215 "http://pc158.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=PATHRATESND& PORT=48699" Executing command -- wget -O - -o /tmp/rand432959.733371721 "http://pc104.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=PATHRATERCV&DEST=pc158.emulab.net&QT=1&PORT=48699" COMMAND = PATHRATESND PORT = 48699 SERVER = pc158.emulab.net Executing command -- /home/genis3monitor/csi/common/pathrate/pathrate_snd -v -p 48699 Waiting for receiver to establish control stream => OK Receiver pc104.emulab.net starts measurements on Thu Jul 29 14:00:29 2010 Measurements are in progress. Please wait.. --> UDP port number: 48699 Time period between packet pairs/trains: 500 msec --> Maximum packet size: 1488 bytes --> Packet size: 1488 bytes --> New train length: 2 --> New round number: 2 Train-1: => ACKed <<<>> DEST = pc158.emulab.net QT = 1 PORT = 48699 SERVER = pc104.emulab.net Executing command -- /home/genis3monitor/csi/common/pathrate/pathrate_rcv -v -s pc158.emulab.net -Q -p 48699 pathrate run from pc158.emulab.net to node3.slice2432.genislices.emulab.net on Thu Jul 29 14:00:29 2010 --> Average round-trip time: 0.2ms --> Minimum acceptable packet pair dispersion: 12 usec Train length: 2 -> 10.4 Mbps Train length: 3 -> 20 Mbps Train length: 4 -> 93 Mbps Train length: 5 -> 42 Mbps Train length: 6 -> 50 Mbps Train length: 8 -> 126 Mbps Train length: 10 -> 89 Mbps Train length: 12 -> 70 Mbps Train length: 16 -> 119 Mbps Train length: 20 -> 87 Mbps Train length: 24 -> 82 Mbps Train length: 28 -> 108 Mbps Train length: 32 -> 91 Mbps Train length: 36 -> 87 Mbps Train length: 40 -> 105 Mbps Train length: 44 -> 92 Mbps Train length: 48 -> 89 Mbps --> Maximum train length: 48 packets --Preliminary measurements with increasing packet train lengths-- Train length: 2 -> 1190 Mbps 1190 Mbps 1082 Mbps 1190 Mbps 1082 Mbps 1082 Mbps 1323 Mbps Train length: 3 -> 1134 Mbps 1190 Mbps 1190 Mbps 1134 Mbps 1082 Mbps 1082 Mbps 1134 Mbps Train length: 4 -> 1190 Mbps 1152 Mbps 1116 Mbps 1152 Mbps 1050 Mbps 1190 Mbps 1116 Mbps Train length: 5 -> 1107 Mbps 1161 Mbps 1134 Mbps 1190 Mbps 1190 Mbps 1134 Mbps 1134 Mbps Train length: 6 -> 55 Mbps 52 Mbps 52 Mbps 53 Mbps 52 Mbps 52 Mbps 54 Mbps Train length: 7 -> 61 Mbps 61 Mbps 61 Mbps 61 Mbps 61 Mbps 61 Mbps 62 Mbps Train length: 8 -> 69 Mbps 69 Mbps 72 Mbps 71 Mbps 69 Mbps 69 Mbps 69 Mbps Train length: 9 -> 77 Mbps 77 Mbps 78 Mbps 77 Mbps 77 Mbps 80 Mbps 77 Mbps Train length: 10 -> 137 Mbps 87 Mbps 138 Mbps 88 Mbps 137 Mbps 89 Mbps 137 Mbps --> Capacity Resolution: 7.0 Mbps - Requested Quick Termination --> Coefficient of variation: 0.198 ------------------------------------------------- Final capacity estimate : 71 Mbps to 78 Mbps ------------------------------------------------- --14:00:24-- http://pc104.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=PATHRATERCV&DEST=pc158.emulab.net&QT=1&PORT=48699 => `-' Resolving pc104.emulab.net... done. Connecting to pc104.emulab.net[155.98.36.104]:46000... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/plain] 0K .. 2.02 MB/s 14:01:09 (2.02 MB/s) - `-' saved [2118] d --> Continue with next round of measurements --> New train length: 8 --> New round number: 62 Train-1: => ACKed --> New round number: 63 Train-1: => ACKed <<>> Train-1: => ACKed --> Continue with next round of measurements --> Continue with next round of measurements Receiver terminates measurements on Thu Jul 29 14:01:09 2010 --14:00:13-- http://pc158.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=PATHRATESND&PORT=48699 => `-' Resolving pc158.emulab.net... done. Connecting to pc158.emulab.net[155.98.36.158]:46000... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/plain] 0K ..... 624.88 B/s 14:01:10 (624.88 B/s) - `-' saved [5359] }}} * Spruce Results with CAP Value=10M {{{ COMMAND = SPRUCE DEST = pc120.emulab.net CAP = 10M SRC = pc158.emulab.net SERVER = pc158.emulab.net Trying to grab port number 48398 Succedded in grabbing port 48399 Executing command -- wget -O - "http://pc158.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=SPRUCESND&PORT=48399&DEST=pc120.emulab.net&CAP=10M" --14:04:08-- http://pc158.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=SPRUCESND&PORT=48399&DEST=pc120.emulab.net&CAP=10M => `-' Resolving pc158.emulab.net... done. Connecting to pc158.emulab.net[155.98.36.158]:46000... connected. HTTP request sent, awaiting response... Executing command -- wget -O - "http://pc120.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=SPRUCERCV&PORT=48399&DEST=pc158.emulab.net" --14:04:09-- http://pc120.emulab.net:46000/cgi-bin/csi.cgi?COMMAND=SPRUCERCV&PORT=48399&DEST=pc158.emulab.net => `-' Resolving pc120.emulab.net... done. Connecting to pc120.emulab.net[155.98.36.120]:46000... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/plain] COMMAND = SPRUCESND PORT = 48399 DEST = pc120.emulab.net CAP = 10M SERVER = pc158.emulab.net Executing command -- /home/genis3monitor/csi/common/spruce/spruce_snd -p 48399 -h pc120.emulab.net -c 10M preparation done test started? availalble bandwidth estimate: 150536127 Kbps sender starting up received port numbers 23877 23876 sender finished 0K 336.91 KB/s 14:04:30 (336.91 KB/s) - `-' saved [345] 200 OK Length: unspecified [text/plain] COMMAND = SPRUCERCV PORT = 48399 DEST = pc158.emulab.net SERVER = pc120.emulab.net Executing command -- /home/genis3monitor/csi/common/spruce/spruce_rcv -c 48399 -h pc158.emulab.net 0K 177.73 KB/s 14:04:30 (177.73 KB/s) - `-' saved [182] }}} == Scalable Monitoring How-to (August 10th version) == The scalable monitoring setup requires a Master node and at least 2 sliver nodes (aka sensor nodes) on which to collect measurements. '''Setting up Scalable Monitoring on Master Node''' Using the [http://illusion.hpl.hp.com/genis3monitor/scube-Readme.htm Readme] file is available at the S3 web site to set up the Master Node: {{{ S3 README Note: Machine where you create the slice/sliver and Database will be called as Master Node. Prerequisites Step 1: The Master Node must be installed with java version 1.6.0_20 or above Versions. Step 2: The Master Node must be installed with Apache Tomcat5.5. Step 3: The following environment variables must be set in the .bashrc export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.12 export DERBY_HOME=/opt/Apache/db-derby-10.6.1.0-bin export DERBY_INSTALL=/opt/Apache/db-derby-10.6.1.0-bin export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=$DERBY_INSTALL/lib/derby.jar:$DERBY_INSTALL/lib/derbytools.jar:$DERBY_INSTALL/lib/derbynet.jar:$DERBY_INSTALL/lib/derbyrun.jar:$DERBY_INSTALL/lib/derbyclient.jar:.$DERBY_INSTALL/lib/derbyrun.jar:$DERBY_INSTALL/lib/derbyclient.jar:. Note: The same steps also mentioned in the "Periodic Process" Readme Contents of scube.tar.gz 1). cronDeploy4Nodes.sh 2). demo.tar 3). geniscripts.tar.gz 4). geni-scube-sensorpod.tar.gz 5). sliver.cgi Steps to follow to install the Scalable Sensing Services Step 1: Copy the scube.tar.gz on to the Master Node (preferably on your home directory). Step 2: Create the ssh-key (rsa) Command: - ssh-keygen rsa Step 3: Upload the ~/.ssh/id-rsa.pub on www.emulab.net Step 4: Generate the ssl key for your account on www.emulab.net. Select an passphrase ( you have to remember that passphrase. eg. genis3slice ) Step 5: Download the ssl key and store it under ~/.ssl/encrypted.pem Step 6: Store the ssl passphrase in ~/.ssl/password file Eg. echo genis3slice > ~/.ssl/password Step 7: Run the ssh agent Command:- ssh-agent bash Step 8: To set the private key to the ssh-agent Command: - ssh-add ~/.ssh/id_rsa ( Provide the passphrase when it prompts, this should be same as the passphrase in the above steps) br> Step 9: Do "echo $SSH_AGENT_PID" to verify for the ssh agent running. Step 10: Unzip and Untar the scube.tar.gz on your home directory. Step 11: Copy the cronDeploy4Nodes.sh and sliver.cgi into /usr/lib/cgi-bin directory Step 12: Untar the demo.tar under webapps directory of your apache-tomcat installations. Step 13: Untar the geniscripts.tar.gz under your home directory. This will create a directory called testscripts. Step 14: You need to update the createsliver.py, deleteslice.py, deletesliver.py, registerslice.py, sliverstatus.py, test-common.py and unregisterslice.py file for the testscripts path. Step 15: Untar the geni-scube-sensorpod.tar.gz under your home directory. This will create a directory called scube. Step 16: Go to ~/scube/csi/csi/common/cgi-bin and copy the csi.tar.gz files to /var/www directory Step 17: Go to ~scube/config.txt file and add the SrcDir, ArchiveDir etc of your choice as mentioned in the config.txt file. Step 18: Go to ~/scube/moveNode2MgmtNode.sh and update the script for SrcDir according to the previous steps. Step 19: Follow the "Installation Instructions for Periodic Measurements" Readme from the http://illusion.hpl.hp.com/genis3monitor/scube for the compilations of SIMModule and to start and stop the SIMModule process in the background. Step 20: Open the file /usr/lib/cgi-bin/sliver.cgi to update the followings $TESTDIR - to your testscripts path, $SCUBE - to scube directory, $hostHomeDir - to your home directory $user - to your user name, $tomcatPath - to your tomcat webapps directory }}} 1. Scalable Monitoring software requires Java DK 1.6.0_20 or above and Apache Tomcat5.5. In this evaluation used a Fedora 8 system, where the following where installed: {{{ $ sudo yum install java-1.7.0-icedtea $ sudo yum install jpackage-utils $ sudo yum install tomcat* }}} Downloaded the binary distribution of [http://db.apache.org/derby/releases/release-10.6.1.0.cgi derby-db] and placed it on the master node. 2. SSH key instruction for upload to Emulab had been previously executed, thus they were skipped for this evaluation. 3. Downloaded the file [http://illusion.hpl.hp.com/genis3monitor/scube.tar.gz S3 code] and unpacked the file scube.tar.gz on the master node riva.gpolab.bbn.com. Copied files as instructed: {{{ $ sudo cp cronDeploy4Nodes.sh /usr/lib/cgi-bin/. $ sudo cp sliver.cgi /usr/lib/cgi-bin/. $ tar xvf demo.tar # creates a geni directory $ sudo cp -r geni /var/lib/tomcat5/webapps/. }}} 4. Untared the geniscripts.tar.gz under your home directory. This will create a directory called testscripts. The files createsliver.py, deleteslice.py, deletesliver.py, registerslice.py, sliverstatus.py, test-common.py and unregisterslice.py files must be modified to define the installation directory of the tools. 5 Untared the geni-scube-sensorpod.tar.gz, this creates a directory called scube. Copy csi file: {{{ cd scube/csi/csi/common/cgi-bin; cp csi.tar.gz (or csi.cgi files to /var/www directory }}} 6. Edit scube/config.txt file and add the SrcDir, ArchiveDir, and BadFileDir to point to the installation path: {{{ SrcDir /home/lnevers/scube/spod/geni/SrcDir ArchiveDir /home/lnevers/scube/spod/geni/ArchiveDir ArchiveSuffix _backup BadFileDir /home/lnevers/scube/spod/geni/BadFileDir }}} = to verify = Step 18: Go to ~/scube/moveNode2MgmtNode.sh and update the script for SrcDir according to the previous steps. Step 19: Follow the "Installation Instructions for Periodic Measurements" Readme from the http://illusion.hpl.hp.com/genis3monitor/scube for the compilations of SIMModule and to start and stop the SIMModule process in the background. Step 20: Open the file /usr/lib/cgi-bin/sliver.cgi to update the followings $TESTDIR - to your testscripts path, $SCUBE - to scube directory, $hostHomeDir - to your home directory $user - to your user name, $tomcatPath - to your tomcat webapps directory = end of to verify = '''Setting up Scalable Monitoring on Sliver Nodes''' 1. Register a slice: {{{ $ ./registerslice.py -n ln_scube_slice Got my SA credential No such slice registered here:Creating new slice called ln_scube_slice New slice created: urn:publicid:IDN+emulab.net+slice+ln_scube_slice }}} 2. Create the sliver nodes: {{{ $ ./createsliver.py -n ln_scube_slice ./twonode.xml Got my SA credential Asking for slice credential for ln_scube_slice Got the slice credential Creating the Sliver ... Created the sliver }}} Where the rspec twonode.xml contains: {{{ }}} 3. Verify that the sliver is ''Ready'': {{{ $ ./sliverstatus.py -n ln_scube_slice Got my SA credential. Looking for slice ... Found the slice, asking for a credential ... Got the slice credential, asking for a sliver credential ... Got the sliver credential, asking for sliver status {'status': 'ready', 'state': 'started', 'details': {'urn:publicid:IDN+emulab.net+sliver+16135': {'status': 'ready', 'state': 'started', 'component_urn': 'urn:publicid:IDN+emulab.net+node+pc509', 'error': ''}, 'urn:publicid:IDN+emulab.net+sliver+16136': {'status': 'ready', 'state': 'started', 'component_urn': 'urn:publicid:IDN+emulab.net+node+pc417', 'error': ''}}} }}} 4. Copy geni-scube-sensorpod.tar.gz to each of the nodes in the sliver: {{{ $ scp geni-scube-sensorpod.tar.gz pc417.emulab.net:. $ scp geni-scube-sensorpod.tar.gz pc509.emulab.net:. }}} 5. Login to each of the nodes in the sliver and unpack the geni-scube-sensorpod.tar.gz file. {{{ $ tar xvzf geni-scube-sensorpod.tar.gz }}} 6. Download vxargs0.3.3.py from http://vxargs.sourceforge.net and place it in the scube/spod directory.