Version 14 (modified by 14 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:
- Operating System: Fedora
- Software: MySQL, Graphite, Perl, Python, Iperf, Ruby, Bwctl-server, Bwctl-client, Python_Twisted, Python_Piddle, perl-CPAN
- 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/bwctl/bwctld.conf
Remove the comments on the below lines and edit them as:
allow_unsync sync_fuzz 5
Edit the BWCTL limits: /etc/bwctl/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