wiki:OnTime-Install

Version 23 (modified by yxu@osc.edu, 12 years ago) (diff)

--

OnTimeMeasure-GENI Installation Procedure on ProtoGENI

Prasad Calyam, Kunpeng Zhu, Yingxiao Xu
Mar 08, 2011

Software License: 'GENI Project License (GPL)'

1. Getting Started

This document describes the installation, configuration and usage of OnTimeMeasure measurement service for the GENI infrastructure 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 'OnTimeMeasure researcher web-portal' enables ProtoGENI/Emulab users to register, instrument and monitor experiment slices on geographically distributed resources.

Before proceeding further, we highly recommend reading the !OnTimeMeasure Experimenter Tutorial to get a background.

2. Requirements

The OnTimeMeasure software package has the following requirements:

  1. Operating System: Fedora 8 (Note: Input FEDORA8-STD as operating system when you create PCs) or Ubuntu10
  1. 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)
  1. User Accounts: User must have registered accounts in the OnTimeMeasure Researcher Web-portal and Emulab Network Testbed
  1. ProtoGENI slice: Create a new experimental slice in the Emulab website with at least 3 PCs.

Note 1: You can create a new slice in ProtoGENI using either the Test Scripts, Omni, Emulab Java UI or the Flack interfaces. You can refer to our Experiences in Creating ProtoGENI Slices and to our Tutorial on OnTimeMeasure capabilities for Experimenters. If you still use the command line Emulab test scripts to create a slice, see the end of this document for an example RSpec. For detailed step-by-step installation and hands-on tutorial of using OnTimeMeasure with Emulab Java UI, please refer to - http://groups.geni.net/geni/wiki/otm-emulab-java-ui-tutorial

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

Note1: Run ontime_software_install_ ubuntu10.sh for Ubuntu 10 , ontime_software_install_bit64 for Ubuntu 10 64 bit.

Note2: You will be prompt to setup mysql root password (If you are using Ubuntu), collector password and graphite password

On a Node Beacon PC:

tar xzf NodeBeacon.tar.gz
cd NodeBeacon/InstallScript
./ontime_software_install.sh

Note: Run ontime_software_install_ ubuntu10.sh for Ubuntu 10 , ontime_software_install_bit64 for Ubuntu 10 64 bit.

3.2 Software Configuration and Invocation

Through OnTime Beacon web-portal

Login to the 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 '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 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 '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:

<rspec type="request" xmlns="http://www.protogeni.net/resources/rspec/0.2">

<!-- Fedora Backbone Node -->
<!-- Washington Location -->
<node component_uuid="urn:publicid:IDN+emulab.net+node+pg41" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" 
virtual_id="ontime_nodebeacon1" virtualization_type="emulab-vnode" exclusive="1">
    <node_type type_name="pc" type_slots="1"/>
    <interface virtual_id="virt-0"/>
</node>

<!-- Fedora Backbone Node -->
<!-- Kansas Location -->
<node component_uuid="urn:publicid:IDN+emulab.net+node+pg43" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" 
virtual_id="ontime_rootbeacon" virtualization_type="emulab-vnode" exclusive="1">
    <node_type type_name="pc" type_slots="1"/>
    <interface virtual_id="virt-0"/>
    <interface virtual_id="virt-1"/>
</node>

<!-- Fedora Backbone Node -->
<!-- Utah Location -->
<node component_uuid="urn:publicid:IDN+emulab.net+node+pg45" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm" 
virtual_id="ontime_nodebeacon2" virtualization_type="emulab-vnode" exclusive="1">
        <node_type type_name="pc" type_slots="1"/>
        <interface virtual_id="virt-1"/>
</node>

<!-- Create link between root beacon located in Kansas to node beacon-1 located in  Washington -->
 <link virtual_id="root_beacon_to_node_beacon-1" link_type="ethernet">
    <interface_ref virtual_node_id="ontime_rootbeacon" virtual_interface_id="virt-0"/>
    <interface_ref virtual_node_id="ontime_nodebeacon1" virtual_interface_id="virt-0"/>
    <bandwidth>1000000</bandwidth>
  </link>


<!-- Create link between root beacon located in Kansas to node beacon-2 located in Utah -->
 <link virtual_id="root_beacon_to_node_beacon-2" link_type="ethernet">
    <interface_ref virtual_node_id="ontime_rootbeacon" virtual_interface_id="virt-1"/>
    <interface_ref virtual_node_id="ontime_nodebeacon2" virtual_interface_id="virt-1"/>
    <bandwidth>1000000</bandwidth>
  </link>

</rspec>

5.2 Sliver Creation and Management

Create and manage a sliver by the Emulab test scripts.

  • Register a slice
    registerslice.py –n <slice name>
    
  • Create sliver inside slice
    createsliver.py –n <slice name> <rspec file>
    
  • Check sliver status
    sliverstatus –n <slice name>
    

Note: You may need to renew your sliver just after successful creation. For this,

renewsliver –n <slice name> <time>