wiki:OnTime-Installv1

Version 15 (modified by zhu.249@osu.edu, 10 years ago) (diff)

--

OnTimeMeasure-GENI Installation Document

Prasad Calyam, Weiping Mandrawa, Kunpeng Zhu
May 31, 2010

Software License: 'GENI Project License (GPL)'

1. System Requirements:

  1. Operating System: Fedora
  1. Software: MySQL, Graphite, Perl, Python, Iperf, Ruby, Bwctl-server, Bwctl-client, Python_Twisted, Python_Piddle, perl-CPAN
  1. Perl Modules: Config::Natural, POSIX, Sys::HostIP, DBI, IO::SOCKET::SSL, Log::Log4perl:Net::SSLeay, Math::Random, YAML

The Prerequisites Software and Perl Modules installation is handled by the scripts delivered in the OnTimeMeasure-GENI-v1.0 package. See following sections for details.

2. OnTimeMeasure-GENI Installation:

OnTimeMeasure-GENI is a prototype measurement service for the GENI facility users. The measurement service can be used to perform centralized and distributed orchestration and provisioning of active 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 a ProtoGENI/Emulab user to register, create and monitor experiment slices on a geographically distributed backbone encompassing Internet2 resources with experiment nodes at Kansas, Washington and Utah locations.

An example deployment of centralized OnTimeMeasure-GENI could feature 1 Root Beacon at Kansas, and 2 Node Beacons at Washington and Utah locations, respectively.

An example deployment of distributed OnTimeMeasure-GENI could feature Node Beacons at Kansas, Washington and Utah locations, respectively.

2.1 ProtoGENI Slice Creation and Configuration

Note: To obtain detailed information about ProtoGENI slice creation, please refer to the 'ProtoGENI Tutorial'

To create a ProtoGENI slice, we need to define the corresponding 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.1">

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

To check availability of nodes to include in an RSpec, please refer to the 'Emulab web-page'. Note that you will need to have an Emulab account to access the web-page.

2.2 Sliver Creation and Management

  • Register a slice
    registerslice.py –n <slice name>
    
  • Create sliver inside slice
    createssliver.py –n <slice name> <rspec file>
    
  • Start sliver
    startsliver –n <slice name>
    
  • 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>

2.3 Software Installation

When all the slivers are "Ready", login to each of the servers and run the following commands to setup the environment:

Get RPM key from Internet2
Note: RPM key is needed to allow software installation through Internet2 network

Software install on: [(Centralized: root beacon, node beacon), (Distributed: node beacon)]

cd RootBeacon/InstallScript
chmod +x ontime_software_install.sh
./ontime_software_install.sh

Perl CPAN Module Installation
The Comprehensive Perl Archive Network (CPAN) tools is used to install the Perl modules listed in the System Requirement section and is installed by the ontime_software_install.sh script.

Note: The CPAN configuration must point to Internet2 Perl CPAN repository

Software install on: [(Centralized: root beacon, node beacon), (Distributed: node beacon)]

$ sudo perl -MCPAN -e shell 
 	cpan[1]>  o conf urllist push ftp://cpan.uchicago.edu/pub/CPAN/ 
cpan[1]>  o conf prerequisites_policy follow 
cpan[1]>  o conf commit 
cpan[1]>  exit
$ chmod +x ontime_perlmodule_install.sh 
$ ./ontime_perlmodule_install.sh 

Additional software install only on the [(Centralized: root beacon)] -

$ mysqladmin -u root password 'new-password'

OnTimeMeasure-GENI Software Installation

Software install on: [(Centralized: root beacon, node beacon), (Distributed: node beacon)]

To obtain download information about the OnTimeMeasure-v1.0.tar.gz software, please email - Prasad Calyam

Once you have downloaded the tar file, untar/unzip on root beacon and node beacons.

2.4 Software Configuration

NTP Configuration

Software configuration on: [(Distributed: node beacon)]

$ sudo vim /etc/ntp.conf

Edit the last line to:

server owamp.newy.net.internet2.edu

Restart ntpd service

$ sudo /etc/init.d/ntpd restart

BWCTL Configuration

Software configuration on: [(Distributed: node beacon)]

Edit the BWCTL config: /etc/bwctld/bwctld.conf

Remove the comments on the below lines and edit them as:

allow_unsync
sync_fuzz 5

Edit the BWCTL limits: /etc/bwctld/bwctld.limits Change the regular limit to:

limit regular with parent=root, \
        duration=30, \
        allow_tcp=on, \
        allow_udp=on, \
        allow_open_mode=on

Note: For more detailed instructions to configure NTP and BWCTL, please refer to the BWCTL Tool website. (http://www.internet2.edu/performance/bwctl/)

Database Configuration

Software configuration on: [(Centralized: root beacon)]

cd RootBeacon/InstallScript
mysql -u root -p < BuildWebServicesDatabase.sql
mysql -u root -p < BuildMeasurementDatabase.sql
mysql -u root –p

At the mysql prompt, type

CREATE USER 'collector'@'%' IDENTIFIED BY '<collector password>';
GRANT ALL PRIVILEGES ON `Measurements` .  * TO 'collector'@'%';
GRANT ALL PRIVILEGES ON `WebServices` .  * TO 'collector'@'%';

Graphite and Twisted Installation

Go to install script folder and run: [(Centralized: root beacon)]

cd RootBeacon/InstallScript
chmod +x ontime_graphite_install.sh
sudo ./ontime_graphite_install.sh

Graphite Configuration and daemon start

Initialize the graphite: [(Centralized: root beacon)]

cd /opt/graphite/webapp/graphite/
sudo python manage.py syncdb

Note: For the first time execution, you will be prompted for creating a 'root' user

Run the graphite and carbon deamon: [(Centralized: root beacon)]

cd /opt/graphite/
python bin/carbon-cache.py start
nohup /opt/graphite/bin/run-graphite-devel-server.py /opt/graphite &

SCP configuration: [(Centralized: root beacon, node beacon), (Distributed: node beacon)]

run:

ssh-keygen -t rsa
cat .ssh/id_rsa.pub | ssh uploader@ontime.oar.net "cat >> .ssh/authorized_keys"

Use the default settings and the password for user uploader is 'uploader'

2.5 Software Invocation

Once all necessary software has been installed, please follow instructions as described below:

On Root Beacons in the Centralized Orchestration Case -

Software invocation on: [(Centralized: node beacon)]

Edit NodeScheduler/etc/node.conf to configure the node scheduler, and go to 'Datagen/certs' run and type

chmod +x createSSL.sh
./createSSL.sh

Then go to the 'Datagen' folder and type

perl node_scheduler.pl

On Node Beacons in the Centralized Orchestration Case -

Software invocation on: [(Centralized: root beacon)]

Edit NodeScheduler/etc/root.conf to configure the root scheduler, and go to "Collector/" and type

perl collector.pl

Next, go to "RootScheduler/"

perl action_script.pl

On Node Beacons in the Distributed Orchestration Case -

Software invocation on: [(Distributed: node beacon)]

Edit Distributed/etc/node.conf to configure the node scheduler, and go to Distributed/Scheduler/ and type

perl node_scheduler.pl