= !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: {{{ 1000000 1000000 }}} === 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