wiki:OnTime-Install

Version 13 (modified by Prasad Calyam, 8 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, 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 '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 Experimenter Tutorial.

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 nodes)
  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: We suggest to use the ProtoGENI Cooked Mode to create a new slice. You can refer to our 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 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>

2.3 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>