= !OnTimeMeasure-GENI Installation Procedure on ProtoGENI =
'''Prasad Calyam, Kunpeng Zhu, Yingxiao Xu'''[[BR]]
'''Mar 08, 2011'''
''Software License:'' [http://www.geni.net/wp-content/uploads/2009/02/geniprojlic.pdf ''GENI Project License (GPL)'']
== 1. Getting Started ==
This document describes the installation, configuration and usage of !OnTimeMeasure, which is a measurement service for the GENI facility users. The measurement service can be used to perform centralized and distributed orchestration and provisioning of measurements within experiment slices for purposes such as:
* Network paths monitoring
* Network weather forecasting
* Network performance anomaly detection
* Network-bottleneck fault-location diagnosis
The [http://ontime.oar.net ''OnTimeMeasure researcher web-portal''] enables ProtoGENI/Emulab and !PlanetLab users to register, create and monitor experiment slices on geographically distributed resources.
Before proceeding further, we highly recommend reading the [http://groups.geni.net/geni/attachment/wiki/OnTimeMeasure/OnTimeMeasure_Tutorial.pdf Experimenter Tutorial].
== 2. Requirements ==
The !OnTimeMeasure software package has the following requirements:
A. ''Operating System:'' Fedora 8 ('''Note:''' Input FEDORA8-STD as operating system when you create PCs)
B. ''Open Ports:'' For Root Beacon server: MySQL TCP/3306, Graphite TCP/2003 and TCP/17280, Collector TCP/7777, HTTP TCP/17290, Supervisor TCP/17291; For Node Beacon server: Nodescheduler TCP/17249, HTTP TCP/17290, Supervisor TCP/17291 ('''Note:''' These ports are opened by default)
C. ''User Accounts:'' User must have registered accounts in the [http://ontime.oar.net OnTimeMeasure Researcher Web-portal] and [http://www.emulab.net Emulab Network Testbed]
D. ''ProtoGENI slice:'' Create a new experimental slice in the [https://www.emulab.net/beginexp_html.php3 Emulab website] with at least 3 PCs.
'''Note 1:''' We suggest to use the ProtoGENI Cooked Mode to create a new slice. You can refer to our [http://groups.geni.net/geni/wiki/ExperienceWithProtoGENI#a4.ExperiencesinCreatingProtoGENISlices Experiences in Creating ProtoGENI Slices]. If you still use the command line Emulab test scripts to create a slice, see the end of this document for an example RSpec.
'''Note 2:''' Typically, two or more Node Beacons and one Root Beacon need to be installed on separate dedicated PCs in a slice; it is however possible to install Root Beacon on one of the Node Beacon PCs.
'''Note 3:''' Following are the pre-requisite software and Perl modules, which will be installed automatically by the scripts delivered in the !OnTimeMeasure release package.
''Pre-requisite Software:'' Iperf, MySQL, Graphite, Perl, Python, Ruby, Python-setuptools, Supervisor
''Perl Modules:'' Config::Natural, POSIX, DBI, IO::Socket::SSL, Log::Log4perl, Net::SSLeay, Math::Random
== 3. Centralized Case Installation ==
=== 3.1 Software Installation ===
Download the latest !OnTimeMeasure release package at http://ontime.oar.net/download/OnTimeMeasure_latest.php.
In ProtoGENI, home directory is shared amongst all PCs in a slice. So, you only need to download the release package once, and reuse the installation file in each PC.
For example, you can run the following command in an empty folder:
{{{
wget http://ontime.oar.net/download/OnTimeMeasure_latest.php
tar xzf *.gz
}}}
Once you have downloaded the tar file, untar/unzip to see that it contains:
* !NodeBeacon.tar.gz
* !RootBeacon.tar.gz
* README.txt
Next, login using SSH to each of the PCs, run the following commands to install the measurement service. You will be prompted to set a supervisor account during the Graphite installation, and also will be prompted to set a password of an automatically created database user: ''collector''.
'''Note:''' Note that the ''collector'' password will apply to both centralized and distributed measurement cases of !OnTimeMeasure.
__'''''On the Root Beacon PC:'''''__
{{{
tar xzf RootBeacon.tar.gz
cd RootBeacon/InstallScript
./ontime_software_install.sh
}}}
__'''''On a Node Beacon PC:'''''__
{{{
tar xzf NodeBeacon.tar.gz
cd NodeBeacon/InstallScript
./ontime_software_install.sh
}}}
=== 3.2 Software Configuration and Invocation ===
==== Through !OnTime Beacon web-portal ====
Login to the [http://ontime.oar.net OnTimeBeacon]. Setup resources (provide RSpec information) and control Node/Root Beacons within slice in an ''interactive'' manner. Video demos of these steps can be viewed at [http://ontime.oar.net/demo/]
==== Through !OnTime Control command-line tools ====
Follow the [http://groups.geni.net/geni/wiki/OTM-Control ''OntimeControl Manual''] to control Node/Root Beacons within slice in an ''automated'' manner.
== 4. Distributed Case Installation ==
=== 4.1 Software Installation ===
The ''Centralized Case Installation'' will install distributed version automatically.
If you want to only install the distributed version, do the following steps:
Download the latest !OnTimeMeasure release package at http://ontime.oar.net/download/OnTimeMeasure_latest.php.
Once you have downloaded the tar file, untar/unzip to see that it contains:
* !NodeBeacon.tar.gz
* !RootBeacon.tar.gz
* README.txt
Only the !NodeBeacon.tar.gz is needed. Run the following commands to install the measurement service:
{{{
tar xzf NodeBeacon.tar.gz
cd NodeBeacon/InstallScript
./ontime_software_install.sh
}}}
=== 4.2 Software Configuration and Invocation ===
==== Through !OnTime Beacon web-portal ====
Login to the [http://ontime.oar.net OnTimeBeacon]. Setup resources (provide RSpec information) and control Node/Root Beacons within slice in an ''interactive'' manner. Video demos of these steps can be viewed at [http://ontime.oar.net/demo/]
==== Through !OnTime Control command-line tools ====
Follow the [http://groups.geni.net/geni/wiki/OTM-Control ''OntimeControl Manual''] to control Node/Root Beacons within slice in an ''automated'' manner.
== 5 Reference ==
=== 5.1 Sample RSpec ===
An example of a centralized orchestration RSpec that consists of 3 nodes is as follows:
{{{
10000001000000
}}}
=== 2.3 Sliver Creation and Management ===
Create and manage a sliver by the Emulab test scripts.
- Register a slice
{{{
registerslice.py –n
}}}
- Create sliver inside slice
{{{
createsliver.py –n
}}}
- Check sliver status
{{{
sliverstatus –n
}}}
'''Note:''' You may need to renew your sliver just after successful creation. For this,
{{{
renewsliver –n