[[PageOutline]] = GIMI Documentation = == Services == For each service we need documentation for installation and administration. === Labwiki === [Jack] === Job Service === [Thierry] === OML server === [Olivier] === 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 [http://mytestbed.net/doc/omf/file.INSTALLATION.html#Ubuntu at this link] and for installing OML [http://mytestbed.net/projects/oml/wiki/Installation#Debian-FedoraCentOS at this link] In brief: 1. Boot IG VM with Default Ubuntu 12.04 image [[BR]] 2. Login to VM and continue as root [[BR]] 3. Install OMF RC [[BR]] {{{ #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, [http://trema.github.io/trema/ click here] 4. 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"} }}} 5. 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 }}} 6. 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 /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 }}} [Divya] What is done in the postboot script? What may need to change over time? == Tool Usage == [Divya/Jeanne] * Links to tutorials * Links to instructions on how to write OEDL scripts * Links to instructions on how to add OML capability to applications === How to Write a !LabWiki application for CSV files === http://groups.geni.net/geni/wiki/HowTo/LabWikiGraphUsingCSV