wiki:GIMIv3/Documentation

Version 30 (modified by Jeanne Ohren, 5 years ago) (diff)

--

GIMI Documentation

Services

For each service we need documentation for installation and administration.

Labwiki

[Jack]

Job Service

[Thierry]

OML server

AMQP

[Thierry]

GIMI Experiment Service

[Jack or Thierry?]

iRODS

iRODS, which stands for integrated Rule-Oriented Digital System, is an open-source data management software in use at research organizations and government agencies worldwide. iRODS acts as middleware sitting on top of the distributed storage systems and underneath the user applications that require archiving, processing and disseminating data in a transparent and automated fashion. For more detailed and comprehensive descriptions, please refer to http://irods.org/.

In GIMI, we use iRODS as the back-end system to provide archive and automated processing functions to experimenters. We configured two iRODS instances, one as the production data system, the other as the environment for development purposes. The production system has the iCAT running on geni-gimi.renci.org, and two data servers running on geni-gimi.renci.org and emmy9.casa.umass.edu. geni-gimi.renci.org is currently allocated with ~2TB disk space, which can be further increased depending on its usage. To interact with iRODS, various user interfaces are provided. For example, iCommand (https://wiki.irods.org/index.php/icommands) provides a UNIX-like command line interface to users who are already familiar with UNIX commands (such as ls, cp, rm, etc). iRODS also provides a rich set of APIs. For example, Jargon, a JAVA client API for iRODS, provides the REST functions so that GENI experimenters can easily create their iRODS accounts via the GENI portal. iRODS is equipped with a powerful rule language and rule engine. We developed iRODS policies and rules that recognize metadata files created based on specific schemas and automate data ingestion to help experimenters more efficiently organize and share their data.

Currently our iRODS instances are running release 3.3.

Images

a) InstaGENI Ubuntu 12.04 Image

Image URN: urn:publicid:IDN+instageni.illinois.edu+image+ch-geni-net:gimidev2
Image URL: https://www.instageni.illinois.edu/image_metadata.php?uuid=df9ce62b-ec1a-11e3-bc1a-000000000000

b) InstaGENI Ubuntu 12.04 with OVS and Trema Image ()

For the same manager, you can use id=urn:publicid:IDN+instageni.nysernet.org+image+ch-geni-net:gimiovstrema2
For other managers, you can use url=https://www.instageni.nysernet.org/image_metadata.php?uuid=551210c7-ecca-11e3-9973-000000000000

c) ExoGENI Ubuntu 12.04 Image

Image URL: http://emmy9.casa.umass.edu/Disk_Images/ExoGENI/Ubuntu1204/ubuntu1204gimidev.xml
version=2a3c19e07232a5d3bb6a300eca0d0db7ce7aca79

Installation Procedure for Ubuntu 12.04

The detailed procedure for installing OMF6 RC maybe found at this link and for installing OML at this link

In brief:

  1. Boot IG VM with Default Ubuntu 12.04 image
  2. Login to VM and continue as root
  3. Install OMF RC
#apt-get update
#apt-get install build-essential libxml2-dev libxslt-dev libssl-dev
#apt-get install ruby1.9.1-dev ruby1.9.1
#apt-get install ruby1.9.3
#gem install omf_rc --pre
#gem install file-tail (Optional*)
#install_omf_rc -i -c

For Creating Image b), "gem install trema" is executed in the above step following gem install omf_rc. For more information on Trema, click here

  1. Test if OMF RC is installed
#echo "---
:uid: samplehostname2
:uri: amqp://gimi3.casa.umass.edu
:environment: production
:debug: false" > /etc/omf_rc/config.yml
#start omf_rc
tail /var/log/omf_rc.log

After running the above you should see

[2014-06-04 22:29:50 +0000] INFO  OmfRc::Runner: Starting OMF Resource Controller version '6.1.1'
[2014-06-04 22:29:50 +0000] INFO  OmfRc::Runner: Connected using {:proto=>:amqp, :user=>"guest", :domain=>"127.0.0.1"}
  1. Install OML Client
$sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/cdwertmann:/oml/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/oml2.list"
$wget http://download.opensuse.org/repositories/home:cdwertmann:oml/xUbuntu_12.04/Release.key
$sudo apt-key add - < Release.key 
$sudo apt-get update
$sudo apt-get install oml2
$sudo apt-get install oml2-apps
  1. Check if OML Client is installed correctly
root@Node1:~# dpkg -l | grep "oml"
ii  gpslogger-oml2                   2.10.0-mytestbed1                 Record and store GPS measurements using OML
ii  iperf-oml2                       2.10.0-mytestbed1                 Internet Protocol bandwidth measuring tool, with OML support
ii  liboml2                          2.11.0-mytestbed1                 OML: The O? Measurement Library (metapackage)
ii  liboml2-9                        2.11.0-mytestbed1                 OML: The O? Measurement Library
ii  liboml2-dev                      2.11.0-mytestbed1                 OML measurement library headers
ii  nmetrics-oml2                    2.10.0-mytestbed1                 Measure and record system information from libsigar using OML
ii  oml2                             2.11.0-mytestbed1                 OML: The O? Measurement Library Suite (Metapackage)
ii  oml2-apps                        2.10.0-mytestbed1                 A meta-package that installs the complete standalone OML2 applications collection
ii  oml2-proxy-server                2.11.0-mytestbed1                 OML proxy server
ii  oml2-proxycon                    2.11.0-mytestbed1                 OML proxy server control script
ii  oml2-server                      2.11.0-mytestbed1                 OML measurement server
ii  otg2-oml2                        2.10.0-mytestbed1                 Orbit Traffic Generator
ii  ripwavemon-oml2                  2.10.0-mytestbed1                 Report statistics from a Navini RipWave modem
ii  trace-oml2                       2.10.0-mytestbed1                 Measure and record libtrace data using OML

*Only required if you want to parse data from a continuously growing file as shown [ here]

Postboot scripts

InstaGENI

#!/bin/bash

read -r slice1 </var/emulab/boot/nickname
slicename=$(echo $slice1 | cut -f2 -d.)

host1=$(hostname)

host=$(echo $host1 | cut -f1 -d.)

slice=`ruby -e "print '$slicename'[/[^+]*$/]"`
echo $host > /etc/hostname
/bin/hostname -F /etc/hostname
echo 'amqp://emmy9.casa.umass.edu' > /var/omf/communication_url
echo $host-$slice > /var/omf/node_uri
restart omf_rc

ExoGENI

#!/bin/bash
host=$1
slice=`ruby -e "print '$2'[/[^+]*$/]"`
echo $host > /etc/hostname
/bin/hostname -F /etc/hostname
apt-get install psmisc
echo 'amqp://emmy9.casa.umass.edu' > /var/omf/communication_url
echo $host-$slice > /var/omf/node_uri
if grep 'Ubuntu' /etc/issue; then
restart omf_rc
else
/etc/init.d/omf_rc restart
fi

[Divya]

What is done in the postboot script? What may need to change over time?

Tool Usage

[Divya/Jeanne]

Tutorials

Instructions Last Updated Last Tested
OpenFlow Load Balancer Tutorial TBD TBD
Experimentation and Instrumentation with Labwiki TBD TBD
The GENI Experiment Lifecycle using LabWiki and OEDL TBD TBD

OEDL Scripts

OML Applications

Troubleshooting

  • [Troubleshooting Experiments in Labwiki]

How to Write a LabWiki application for CSV files

http://groups.geni.net/geni/wiki/HowTo/LabWikiGraphUsingCSV