Changes between Initial Version and Version 1 of OTM-CRONInstall


Ignore:
Timestamp:
11/01/10 18:55:56 (10 years ago)
Author:
zhu.249@osu.edu
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OTM-CRONInstall

    v1 v1  
     1= !OnTimeMeasure-GENI Installation Document =
     2'''Prasad Calyam, Kunpeng Zhu'''[[BR]]
     3'''Nov 01, 2010'''
     4
     5''Software License:'' [http://www.geni.net/wp-content/uploads/2009/02/geniprojlic.pdf ''GENI Project License (GPL)'']
     6
     7== 1. Getting Started ==
     8This document describes the installation, configuration and usage of !OnTimeMeasure, which 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:
     9
     10 * Network paths monitoring
     11 * Network weather forecasting
     12 * Network performance anomaly detection
     13 * Network-bottleneck fault-location diagnosis
     14
     15The [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 in their facility.
     16
     17
     18Before proceeding further, we highly recommend reading the [http://groups.geni.net/geni/attachment/wiki/OnTimeMeasure/OnTimeMeasure-v1_Tutorial_061610.pdf Early Experimenter Tutorial].
     19       
     20== 2. Requirements ==
     21
     22The !OnTimeMeasure software package has the following requirements:
     23
     24A. ''Operating System:'' Ubuntu 10.04 x64
     25
     26B. ''Open Ports:'' For !RootBeacon server: MySQL TCP/3306, Graphite TCP/2003 and TCP/17280, Collector TCP/7777, HTTP TCP/17290; For !NodeBeacon server: BWCTL TCP/4823, Nodescheduler TCP/17249, HTTP TCP/17290
     27
     28C. ''User Accounts:'' User must have registered accounts in the [http://ontime.oar.net OnTimeMeasure Researcher Web-portal] and [https://www.cron.cct.lsu.edu/ CRON Testbed]
     29
     30D. ''CRON slice:'' Create a new experimental slice in CRON with at least 3 nodes. One acts an extra role of the root beacon.
     31
     32'''Note:''' Following are the pre-requisite software and Perl modules, which will be installed automatically by the scripts delivered in the !OnTimeMeasure release package.
     33
     34''Pre-requisite Software:'' MySQL, Graphite, Perl, Python, Iperf, Ruby, Bwctl-server, Bwctl-client, Cairo, Python_Twisted, Python_Piddle
     35
     36''Perl Modules:'' Config::Natural, POSIX, DBI, IO::Socket::SSL, Log::Log4perl, Net::SSLeay, Math::Random
     37
     38
     39== 3. Centralized Case Installation ==
     40
     41=== 3.1 Software Installation ===
     42Download the latest !OnTimeMeasure release package at http://ontime.oar.net/download/OnTimeMeasure_latest.php.
     43
     44Once you have downloaded the tar file, untar/unzip to see that it contains:
     45
     46 * !NodeBeacon.tar.gz
     47 * !RootBeacon.tar.gz
     48 * README.txt
     49
     50Next, login using SSH to each of the servers, copy the appropriate tar files over, and run the following commands to install the measurement service:
     51
     52
     53__'''''On the Root Beacon Server:'''''__
     54
     55{{{
     56tar xzf RootBeacon.tar.gz
     57cd RootBeacon/InstallScript
     58chmod +x ontime_software_install_ubuntu64.sh
     59./ontime_software_install_ubuntu64.sh
     60}}}
     61
     62
     63__'''''On a Node Beacon Server:'''''__
     64{{{
     65tar xzf NodeBeacon.tar.gz
     66cd NodeBeacon/InstallScript
     67chmod +x ontime_software_install_ubuntu64.sh
     68./ontime_software_install_ubuntu64.sh
     69}}}
     70
     71'''Note:''' CRON users should use "ontime_software_install_ubuntu64.sh" instead to install OTM on their Ubuntu x64 nodes.
     72
     73=== 3.2 Software Configuration ===
     74
     75__'''''On the Root Beacon Server:'''''__
     76
     77__MySQL configuration__
     78
     79{{{
     80mysql -u root -p < BuildWebServicesDatabase.sql
     81mysql -u root -p < BuildMeasurementDatabase.sql
     82mysql -u root -p
     83}}}
     84At the mysql prompt, type
     85{{{
     86CREATE USER 'collector'@'%' IDENTIFIED BY '<collector password>';
     87GRANT ALL PRIVILEGES ON `Measurements` .  * TO 'collector'@'%';
     88GRANT ALL PRIVILEGES ON `WebServices` .  * TO 'collector'@'%';
     89exit
     90}}}
     91'''Note 1:''' Please change the <collector password> to a safe password.
     92
     93'''Note 2:''' If remote access to MySQL on the Root Beacon is disabled, please open the port TCP/3306 in the firewall and follow the tutorial at http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
     94
     95
     96__Invocation options configuration__
     97
     98{{{
     99perl config_wizard.pl
     100}}}
     101Follow the steps as directed by the wizard script.
     102
     103__'''''On a Node Beacon Server:'''''__
     104
     105__Invocation options configuration__
     106
     107{{{
     108perl config_wizard.pl
     109}}}
     110Follow the steps as directed by the wizard script.
     111
     112'''Note:''' If you want to customize the parameters on invoking measurement tools, you can manually modify the "runtool.conf" which locates in the "!NodeBeacon/etc" folder.
     113
     114__'''''On the Web-portal:'''''__
     115
     116Login to the [http://ontime.oar.net OnTimeMeasure Researcher Web-portal] and provide the Slice RSpec information.
     117
     118
     119=== 3.3 Software Invocation ===
     120
     121__'''''On the Root Beacon Server:'''''__
     122
     123
     124Go to "!RootBeacon/!RootScheduler/" and run
     125{{{
     126screen
     127/opt/graphite/bin/run-graphite-devel-server.py /opt/graphite
     128}}}
     129If no error is reported, press '<CTRL>+a, c' sequence to open a new blank command window.
     130{{{
     131perl file_server.pl
     132}}}
     133If no error is reported, press '<CTRL>+a, c' sequence to open a new blank command window.
     134{{{
     135perl action_script.pl
     136}}}
     137If no error is reported, press '<CTRL>+a, c' sequence to open a new blank command window.
     138{{{
     139cd ../Collector/
     140perl collector.pl
     141}}}
     142If no error is reported, press '<CTRL>+a, d' sequence in the SSH window to keep the service running in the background.
     143
     144
     145__'''''On a Node Beacon Server:'''''__
     146
     147Go to '!NodeBeacon/Datagen/' and run
     148
     149{{{
     150screen
     151perl file_server.pl
     152}}}
     153If no error is reported, press '<CTRL>+a, c' sequence to open a new blank command window.
     154{{{
     155perl node_scheduler.pl
     156}}}
     157If no error is reported, press '<CTRL>+a, d' sequence in the SSH window to keep the service running in the background.
     158
     159== 4. Distributed Case Installation ==
     160
     161=== 4.1 Software Installation ===
     162Download the latest !OnTimeMeasure release package at http://ontime.oar.net/download/OnTimeMeasure_latest.php.
     163
     164Once you have downloaded the tar file, untar/unzip to see that it contains:
     165
     166 * !NodeBeacon.tar.gz
     167 * !RootBeacon.tar.gz
     168 * README.txt
     169
     170
     171Only the !NodeBeacon.tar.gz is needed. Upload it to a node beacon server and run the following commands to install the measurement service:
     172
     173{{{
     174tar xzf NodeBeacon.tar.gz
     175cd NodeBeacon/InstallScript
     176chmod +x ontime_software_install.sh
     177./ontime_software_install.sh
     178}}}
     179
     180=== 4.2 Software Configuration ===
     181
     182
     183__NTP Configuration__
     184
     185{{{
     186sudo vim /etc/ntp.conf
     187}}}
     188Edit the last line to:
     189{{{
     190server owamp.newy.net.internet2.edu
     191}}}
     192Restart ntpd service
     193{{{
     194sudo /etc/init.d/ntpd restart
     195}}}
     196
     197__BWCTL Configuration__
     198
     199Edit the BWCTL config: /etc/bwctld/bwctld.conf
     200
     201Remove the comments on the below lines and edit them as:
     202{{{
     203allow_unsync
     204sync_fuzz 5
     205}}}
     206
     207Edit the BWCTL limits: /etc/bwctld/bwctld.limits
     208Change the regular limit to:
     209
     210{{{
     211limit regular with parent=root, \
     212        duration=30, \
     213        allow_tcp=on, \
     214        allow_udp=on, \
     215        allow_open_mode=on
     216}}}
     217
     218Restart BWCTL:
     219{{{
     220sudo /etc/init.d/bwctld restart
     221}}}
     222
     223'''Note:''' For more detailed instructions to configure NTP and BWCTL, please refer to the BWCTL Tool website. (http://www.internet2.edu/performance/bwctl/)
     224
     225__Node Beacon invocation options configuration__
     226
     227{{{
     228cd NodeBeacon/InstallScript
     229perl config_wizard.pl
     230}}}
     231Follow the steps as directed by the wizard script.
     232
     233__'''''On the Web-portal:'''''__
     234
     235Login to the [http://ontime.oar.net OnTimeMeasure Researcher Web-portal] and provide the Slice information.
     236
     237
     238=== 4.3 Software Invocation ===
     239
     240Go to '!NodeBeacon/Datagen/' and run
     241{{{
     242screen
     243perl file_server.pl
     244}}}
     245If no error is reported, press '<CTRL>+a, c' sequence to open a new blank command window.
     246
     247'''Note:'''Centralize and distributed share the same file server script. If you run both centralized and distributed on the same machine, you only need to run the file_server.pl once.
     248{{{
     249perl dist_scheduler.pl
     250}}}
     251If no error is reported, press '<CTRL>+a, d' sequence in the SSH window to keep the service running in the background.
     252
     253== 5 Reference ==
     254
     255=== 5.1 Sample RSpec ===
     256
     257An example of a centralized orchestration RSpec that consists of 3 nodes is as follows:
     258
     259{{{
     260<rspec type="request" xmlns="http://www.protogeni.net/resources/rspec/0.2">
     261
     262<!-- Fedora Backbone Node -->
     263<!-- Washington Location -->
     264<node component_uuid="urn:publicid:IDN+emulab.net+node+pg41" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm"
     265virtual_id="ontime_nodebeacon1" virtualization_type="emulab-vnode" exclusive="1">
     266    <node_type type_name="pc" type_slots="1"/>
     267    <interface virtual_id="virt-0"/>
     268</node>
     269
     270<!-- Fedora Backbone Node -->
     271<!-- Kansas Location -->
     272<node component_uuid="urn:publicid:IDN+emulab.net+node+pg43" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm"
     273virtual_id="ontime_rootbeacon" virtualization_type="emulab-vnode" exclusive="1">
     274    <node_type type_name="pc" type_slots="1"/>
     275    <interface virtual_id="virt-0"/>
     276    <interface virtual_id="virt-1"/>
     277</node>
     278
     279<!-- Fedora Backbone Node -->
     280<!-- Utah Location -->
     281<node component_uuid="urn:publicid:IDN+emulab.net+node+pg45" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm"
     282virtual_id="ontime_nodebeacon2" virtualization_type="emulab-vnode" exclusive="1">
     283        <node_type type_name="pc" type_slots="1"/>
     284        <interface virtual_id="virt-1"/>
     285</node>
     286
     287<!-- Create link between root beacon located in Kansas to node beacon-1 located in  Washington -->
     288 <link virtual_id="root_beacon_to_node_beacon-1" link_type="ethernet">
     289    <interface_ref virtual_node_id="ontime_rootbeacon" virtual_interface_id="virt-0"/>
     290    <interface_ref virtual_node_id="ontime_nodebeacon1" virtual_interface_id="virt-0"/>
     291    <bandwidth>1000000</bandwidth>
     292  </link>
     293
     294
     295<!-- Create link between root beacon located in Kansas to node beacon-2 located in Utah -->
     296 <link virtual_id="root_beacon_to_node_beacon-2" link_type="ethernet">
     297    <interface_ref virtual_node_id="ontime_rootbeacon" virtual_interface_id="virt-1"/>
     298    <interface_ref virtual_node_id="ontime_nodebeacon2" virtual_interface_id="virt-1"/>
     299    <bandwidth>1000000</bandwidth>
     300  </link>
     301
     302</rspec>
     303}}}
     304
     305=== 2.3 Sliver Creation and Management ===
     306
     307Create and manage a sliver by the Emulab test scripts.
     308
     309-       Register a slice
     310{{{
     311registerslice.py –n <slice name>
     312}}}
     313
     314-       Create sliver inside slice
     315{{{
     316createsliver.py –n <slice name> <rspec file>
     317}}}
     318
     319-       Check sliver status
     320{{{
     321sliverstatus –n <slice name>
     322}}}
     323
     324'''Note:''' You may need to renew your sliver just after successful creation. For this,
     325{{{
     326renewsliver –n <slice name> <time>
     327}}}