7 | | == 1. System Requirements: == |
8 | | A. Operating System: Fedora[[BR]] |
9 | | |
10 | | B. Software: MySQL, Graphite, Perl, Python, Iperf, Ruby, Bwctl-server, Bwctl-client, Python_Twisted, Python_Piddle, perl-CPAN[[BR]] |
11 | | |
12 | | C. Perl Modules: Config::Natural, POSIX, Sys::HostIP, DBI, IO::SOCKET::SSL, Log::Log4perl:Net::SSLeay, Math::Random, YAML[[BR]] |
13 | | |
14 | | 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. |
15 | | |
16 | | == 2. !OnTimeMeasure-GENI Installation: == |
17 | | |
18 | | !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: |
| 7 | == 1. Getting Started == |
| 8 | This document describes the installation, configuration and usage of !OnTimeMeasure-v1.0, 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: |
25 | | The [http://ontime.oar.net ''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. |
26 | | |
27 | | An example deployment of centralized !OnTimeMeasure-GENI could feature 1 Root Beacon at Kansas, and 2 Node Beacons at Washington and Utah locations, respectively. |
28 | | |
29 | | An example deployment of distributed !OnTimeMeasure-GENI could feature Node Beacons at Kansas, Washington and Utah locations, respectively. |
30 | | |
31 | | === 2.1 ProtoGENI Slice Creation and Configuration === |
| 15 | The [http://ontime.oar.net ''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. [[BR]] |
| 16 | |
| 17 | Before proceeding further, we highly recommend reading the [http://groups.geni.net/geni/attachment/wiki/OnTimeMeasure/OnTimeMeasure-v1_Tutorial_061610.pdf Early Experimenter Tutorial]. |
| 18 | |
| 19 | == 2. !OnTimeMeasure Installation: == |
| 20 | |
| 21 | === 2.1 Requirements === |
| 22 | The !OnTimeMeasure software package has the following requirements: |
| 23 | |
| 24 | A. ''Operating System:'' Fedora[[BR]] |
| 25 | |
| 26 | B. ''Pre-requisite Software:'' MySQL, Graphite, Perl, Python, Iperf, Ruby, Bwctl-server, Bwctl-client, Python_Twisted, Python_Piddle, perl-CPAN[[BR]] |
| 27 | |
| 28 | C. ''Perl Modules:'' Config::Natural, POSIX, Sys::HostIP, DBI, IO::SOCKET::SSL, Log::Log4perl:Net::SSLeay, Math::Random, YAML[[BR]] |
| 29 | |
| 30 | '''Note:''' The Pre-requisite Software and Perl Modules installation is handled by the scripts delivered in the !OnTimeMeasure-v1.0 package. See following sections for details. [[BR]] |
| 31 | |
| 32 | D. ''Open ports:'' For !RootBeacon server: MySQL TCP/3306, Graphite TCP/2003 and TCP/8080, Collector TCP/7777; For !NodeBeacon server: BWCTL TCP/4823, Nodescheduler TCP/17249 |
| 33 | |
| 34 | E. ''User Accounts:'' User must have registered accounts in the [http://ontime.oar.net OnTimeMeasure Researcher Web-portal] and [http://www.emulab.net Emulab Network Testbed] |
| 35 | |
| 36 | === 2.2 ProtoGENI Slice Creation and Configuration === |
111 | | === 2.3 Software Installation === |
112 | | When all the slivers are "Ready", login to each of the servers and run the following commands to setup the environment: |
113 | | |
114 | | ''Get RPM key from Internet2''[[BR]] |
115 | | '''Note:''' RPM key is needed to allow software installation through Internet2 network |
116 | | |
117 | | Software install on: [(Centralized: root beacon, node beacon), (Distributed: node beacon)] |
118 | | |
119 | | {{{ |
| 116 | === 2.4 Software Installation === |
| 117 | When all the slivers are "Ready", login to the [http://ontime.oar.net OnTimeMeasure Researcher Web-portal] and provide the Slice RSpec information before proceeding to install the measurement instance within the ProtoGENI slice. [[BR]] |
| 118 | |
| 119 | '''Note:''' Slice RSpec should include reservation of any required measurement resources.[[BR]] |
| 120 | |
| 121 | Once you have provided the RSpec information, you will have received download information about the ''!OnTimeMeasure-v1.0.tar.gz'' software.[[BR]] |
| 122 | In case you have not received this information, please email - pcalyam@osc.edu [[BR]] |
| 123 | |
| 124 | Once you have downloaded the tar file, untar/unzip to see that !OnTimeMeasure-v1.0.tar.gz contains:[[BR]] |
| 125 | |
| 126 | * !NodeBeacon/Centralized.tar.gz |
| 127 | * !NodeBeacon/Distributed.tar.gz |
| 128 | * !RootBeacon/RootBeacon.tar.gz |
| 129 | * README.txt |
| 130 | |
| 131 | Next, login using SSH to each of the servers, copy the appropriate tar files over, untar them, and run the following commands to setup the measurement instance environment: |
| 132 | |
| 133 | '''Centralized Case:''' |
| 134 | |
| 135 | ''On the Root Beacon Server:'' |
| 136 | |
| 137 | Software installation: |
| 138 | {{{ |
| 139 | tar xzf RootBeacon.tar.gz |
149 | | ''!OnTimeMeasure-GENI Software Installation'' |
150 | | |
151 | | Software install on: [(Centralized: root beacon, node beacon), (Distributed: node beacon)] |
152 | | |
153 | | To obtain download information about the ''!OnTimeMeasure-v1.0.tar.gz'' software, please email - pcalyam@osc.edu [[BR]] |
154 | | |
155 | | Once you have downloaded the tar file, untar/unzip on root beacon and node beacons. |
156 | | |
157 | | === 2.4 Software Configuration === |
158 | | |
159 | | ''NTP Configuration'' |
160 | | |
161 | | Software configuration on: [(Distributed: node beacon)][[BR]] |
| 167 | Graphite and Twisted Installation |
| 168 | |
| 169 | {{{ |
| 170 | cd RootBeacon/InstallScript |
| 171 | chmod +x ontime_graphite_install.sh |
| 172 | sudo ./ontime_graphite_install.sh |
| 173 | }}} |
| 174 | |
| 175 | ''On a Node Beacon Server:'' |
| 176 | |
| 177 | Software installation: |
| 178 | {{{ |
| 179 | tar xzf NodeBeacon.tar.gz |
| 180 | cd NodeBeacon/InstallScript |
| 181 | chmod +x ontime_software_install.sh |
| 182 | ./ontime_software_install.sh |
| 183 | }}} |
| 184 | |
| 185 | Perl CPAN Module Installation [[BR]] |
| 186 | |
| 187 | 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. |
| 188 | |
| 189 | '''Note:''' The CPAN configuration must point to Internet2 Perl CPAN repository |
| 190 | |
| 191 | {{{ |
| 192 | $ sudo perl -MCPAN -e shell |
| 193 | cpan[1]> o conf urllist push ftp://cpan.uchicago.edu/pub/CPAN/ |
| 194 | cpan[1]> o conf prerequisites_policy follow |
| 195 | cpan[1]> o conf commit |
| 196 | cpan[1]> exit |
| 197 | $ chmod +x ontime_perlmodule_install.sh |
| 198 | $ ./ontime_perlmodule_install.sh |
| 199 | }}} |
| 200 | |
| 201 | '''Distributed Case:''' |
| 202 | |
| 203 | ''On a Node Beacon Server:'' |
| 204 | |
| 205 | Software installation: |
| 206 | {{{ |
| 207 | tar xzf Distributed.tar.gz |
| 208 | cd Distributed/InstallScript |
| 209 | chmod +x ontime_software_install.sh |
| 210 | ./ontime_software_install.sh |
| 211 | }}} |
| 212 | |
| 213 | Perl CPAN Module Installation [[BR]] |
| 214 | |
| 215 | 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. |
| 216 | |
| 217 | '''Note:''' The CPAN configuration must point to Internet2 Perl CPAN repository |
| 218 | |
| 219 | {{{ |
| 220 | $ sudo perl -MCPAN -e shell |
| 221 | cpan[1]> o conf urllist push ftp://cpan.uchicago.edu/pub/CPAN/ |
| 222 | cpan[1]> o conf prerequisites_policy follow |
| 223 | cpan[1]> o conf commit |
| 224 | cpan[1]> exit |
| 225 | $ chmod +x ontime_perlmodule_install.sh |
| 226 | $ ./ontime_perlmodule_install.sh |
| 227 | }}} |
| 228 | |
| 229 | === 2.5 Software Configuration === |
| 230 | |
| 231 | '''Centralized Case:''' |
| 232 | |
| 233 | ''On the Root Beacon Server:'' |
| 234 | |
| 235 | MySQL configuration |
| 236 | |
| 237 | {{{ |
| 238 | cd RootBeacon/InstallScript |
| 239 | mysql -u root -p < BuildWebServicesDatabase.sql |
| 240 | mysql -u root -p < BuildMeasurementDatabase.sql |
| 241 | mysql -u root –p |
| 242 | }}} |
| 243 | At the mysql prompt, type |
| 244 | {{{ |
| 245 | CREATE USER 'collector'@'%' IDENTIFIED BY '<collector password>'; |
| 246 | GRANT ALL PRIVILEGES ON `Measurements` . * TO 'collector'@'%'; |
| 247 | GRANT ALL PRIVILEGES ON `WebServices` . * TO 'collector'@'%'; |
| 248 | }}} |
| 249 | |
| 250 | '''Note:''' If remote access to MySQL on the Root Beacon is disabled, please open the port TCP/3306 and follow the tutorial at http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html |
| 251 | |
| 252 | Graphite Configuration |
| 253 | |
| 254 | Initialize the graphite: |
| 255 | {{{ |
| 256 | cd /opt/graphite/webapp/graphite/ |
| 257 | sudo python manage.py syncdb |
| 258 | }}} |
| 259 | |
| 260 | '''Note:''' For the first time execution, you will be prompted for creating a 'root' user. |
| 261 | |
| 262 | Run the graphite and carbon daemons |
| 263 | |
| 264 | {{{ |
| 265 | cd /opt/graphite/ |
| 266 | python bin/carbon-cache.py start |
| 267 | nohup /opt/graphite/bin/run-graphite-devel-server.py /opt/graphite & |
| 268 | }}} |
| 269 | |
| 270 | SCP configuration |
| 271 | |
| 272 | {{{ |
| 273 | ssh-keygen -t rsa |
| 274 | cat .ssh/id_rsa.pub | ssh uploader@ontime.oar.net "cat >> .ssh/authorized_keys" |
| 275 | }}} |
| 276 | Use the default settings and the password for user uploader is 'uploader' |
| 277 | |
| 278 | ''On a Node Beacon Server:'' |
| 279 | |
| 280 | SCP configuration |
| 281 | |
| 282 | {{{ |
| 283 | ssh-keygen -t rsa |
| 284 | cat .ssh/id_rsa.pub | ssh uploader@ontime.oar.net "cat >> .ssh/authorized_keys" |
| 285 | }}} |
| 286 | Use the default settings and the password for user uploader is 'uploader' |
| 287 | |
| 288 | '''Distributed Case:''' |
| 289 | |
| 290 | ''On a Node Beacon Server:'' |
| 291 | |
| 292 | NTP Configuration |
| 293 | |
| 294 | Software configuration on |
199 | | ''Database Configuration''[[BR]] |
200 | | |
201 | | Software configuration on: [(Centralized: root beacon)] |
202 | | {{{ |
203 | | cd RootBeacon/InstallScript |
204 | | mysql -u root -p < BuildWebServicesDatabase.sql |
205 | | mysql -u root -p < BuildMeasurementDatabase.sql |
206 | | mysql -u root –p |
207 | | }}} |
208 | | At the mysql prompt, type |
209 | | {{{ |
210 | | CREATE USER 'collector'@'%' IDENTIFIED BY '<collector password>'; |
211 | | GRANT ALL PRIVILEGES ON `Measurements` . * TO 'collector'@'%'; |
212 | | GRANT ALL PRIVILEGES ON `WebServices` . * TO 'collector'@'%'; |
213 | | }}} |
214 | | |
215 | | |
216 | | ''Graphite and Twisted Installation''[[BR]] |
217 | | |
218 | | Go to install script folder and run: [(Centralized: root beacon)] |
219 | | {{{ |
220 | | cd RootBeacon/InstallScript |
221 | | chmod +x ontime_graphite_install.sh |
222 | | sudo ./ontime_graphite_install.sh |
223 | | }}} |
224 | | |
225 | | ''Graphite Configuration and daemon start''[[BR]] |
226 | | |
227 | | Initialize the graphite: [(Centralized: root beacon)] |
228 | | {{{ |
229 | | cd /opt/graphite/webapp/graphite/ |
230 | | sudo python manage.py syncdb |
231 | | }}} |
232 | | |
233 | | '''Note:''' For the first time execution, you will be prompted for creating a 'root' user |
234 | | |
235 | | Run the graphite and carbon deamon: [(Centralized: root beacon)] |
236 | | {{{ |
237 | | cd /opt/graphite/ |
238 | | python bin/carbon-cache.py start |
239 | | nohup /opt/graphite/bin/run-graphite-devel-server.py /opt/graphite & |
240 | | }}} |
241 | | |
242 | | SCP configuration: [(Centralized: root beacon, node beacon), (Distributed: node beacon)] |
243 | | |
244 | | run: |
| 331 | |
| 332 | SCP configuration |
| 333 | |
251 | | === 2.5 Software Invocation === |
252 | | |
253 | | Once all necessary software has been installed, please follow instructions as described below: |
254 | | |
255 | | ''On Root Beacons'' in the Centralized Orchestration Case - |
256 | | |
257 | | Software invocation on: [(Centralized: node beacon)] |
258 | | |
259 | | Edit !NodeScheduler/etc/node.conf to configure the node scheduler, and go to 'Datagen/certs' run and type |
| 340 | === 2.6 Software Invocation === |
| 341 | |
| 342 | '''Centralized Case:''' |
| 343 | |
| 344 | ''On the Root Beacon Server:'' |
| 345 | |
| 346 | Edit !RootBeacon/etc/root.conf and measurement.conf as guided by in-file comments, and then go to "Collector/" and run |
| 347 | {{{ |
| 348 | nohup perl collector.pl & |
| 349 | }}} |
| 350 | Next, go to "!RootScheduler/" |
| 351 | {{{ |
| 352 | nohup perl action_script.pl & |
| 353 | }}} |
| 354 | |
| 355 | ''On a Node Beacon Server:'' |
| 356 | |
| 357 | Edit !NodeBeacon/etc/node.conf and runtool.conf as guided by in-file comments, and then go to 'Datagen/certs' run |
| 358 | |
263 | | }}} |
264 | | Then go to the 'Datagen' folder and type |
265 | | {{{ |
266 | | perl node_scheduler.pl |
267 | | }}} |
268 | | |
269 | | ''On Node Beacons'' in the Centralized Orchestration Case - |
270 | | |
271 | | Software invocation on: [(Centralized: root beacon)] |
272 | | |
273 | | Edit !NodeScheduler/etc/root.conf to configure the root scheduler, and go to "Collector/" and type |
274 | | {{{ |
275 | | perl collector.pl |
276 | | }}} |
277 | | Next, go to "!RootScheduler/" |
278 | | {{{ |
279 | | perl action_script.pl |
280 | | }}} |
281 | | |
282 | | ''On Node Beacons'' in the Distributed Orchestration Case - |
283 | | |
284 | | Software invocation on: [(Distributed: node beacon)] |
285 | | |
286 | | Edit Distributed/etc/node.conf to configure the node scheduler, and go to Distributed/Scheduler/ and type |
287 | | {{{ |
288 | | perl node_scheduler.pl |
| 362 | cd .. |
| 363 | nohup perl node_scheduler.pl & |
| 364 | }}} |
| 365 | |
| 366 | |
| 367 | '''Distributed Case:''' |
| 368 | |
| 369 | ''On a Node Beacon Server:'' |
| 370 | |
| 371 | Edit Distributed/etc/node.conf as guided by in-file comments, and then go to Distributed/Datagen/ and run |
| 372 | {{{ |
| 373 | nohup perl node_scheduler.pl & |