Changes between Initial Version and Version 1 of GIMI-GEC16-Tutorials/GIMI-GEC16-TutorialB/Slice


Ignore:
Timestamp:
03/09/13 12:31:13 (11 years ago)
Author:
Cong
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GIMI-GEC16-Tutorials/GIMI-GEC16-TutorialB/Slice

    v1 v1  
     1== B. Obtain Slice ==
     2
     3{{{
     4#!html
     5<div style="text-align:left; width:323px; margin-left:auto; margin-right:auto;">
     6<img id="Image-Maps_2201210012154478" src="http://emmy9.casa.umass.edu/images/GIMI_workflow_B.jpg" usemap="#Image-Maps_2201210012154478" border="0" width="323" height="531" alt="" />
     7<map id="_Image-Maps_2201210012154478" name="Image-Maps_2201210012154478">
     8<area shape="rect" coords="14,16,52,54" href="http://groups.geni.net/geni/wiki/gimiv1.1tutorial/environment" alt="" title=""    />
     9<area shape="rect" coords="53,10,152,60" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Environment" alt="" title=""    />
     10<area shape="rect" coords="53,86,152,136" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Slice" alt="" title=""    />
     11<area shape="rect" coords="53,162,152,212" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Orchestrate" alt="" title=""    />
     12<area shape="rect" coords="53,237,152,287" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Observe" alt="" title=""    />
     13<area shape="rect" coords="52,312,151,362" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Toirods" alt="" title=""    />
     14<area shape="rect" coords="53,387,152,437" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Fromirods" alt="" title=""    />
     15<area shape="rect" coords="169,388,268,438" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Analyze" alt="" title=""    />
     16<area shape="rect" coords="53,462,152,512" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Cleanup" alt="" title=""    />
     17<area shape="rect" coords="12,91,55,128" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Slice" alt="" title=""    />
     18<area shape="rect" coords="11,167,54,204" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Orchestrate" alt="" title=""    />
     19<area shape="rect" coords="11,242,54,279" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Observe" alt="" title=""    />
     20<area shape="rect" coords="9,317,52,354" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Toirods" alt="" title=""    />
     21<area shape="rect" coords="269,393,312,430" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Analyze" alt="" title=""    />
     22<area shape="rect" coords="10,391,53,428" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Fromirods" alt="" title=""    />
     23<area shape="rect" coords="11,467,54,504" href="http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Cleanup" alt="" title=""    />
     24<area shape="rect" coords="321,529,323,531" href="http://www.image-maps.com/index.php?aff=mapped_users_2201210012154478" alt="Image Map" title="Image Map" />
     25</map>
     26<!-- Image map text links - End - -->
     27
     28</div>
     29}}}
     30
     31=== B.1 Select target aggregates ===
     32
     33In this tutorial, we focus on ExoGENI and do not select any additional aggregates. In future tutorials we will present
     34how GIMI can support experiments on other aggregates and a combination of aggregates (e.g., ExoGENI and WiMAX).
     35
     36----
     37
     38=== B.2 Formulate slice topology for experiment, and build request rspec ===
     39
     40We will not go into any detail on this topic since this is covered in the [http://groups.geni.net/geni/wiki/GEC15Agenda/ExoGENITutorial ExoGENI tutorial].
     41
     42----
     43
     44=== B.2 Acquire resources and load images/packages for I&M tools and experiment services ===
     45
     46=== B.2.1 Flukes ===
     47
     48  ''B.2.1.1'' Register slice and node names (create Pubsub nodes):
     49
     50The RCs and the EC communicate via an XMPP server. The GIMI XMPP is running on emmy9.casa.umass.edu.
     51
     52The ExoGENI instances and the experiment slice should be registered with the XMPP server. You can achieve this using the OMF AM by issuing the following command from a terminal in the user workspace. In the following command, please change "gimiXX" to the user name provided to you.
     53{{{
     54$ omf_create_psnode-5.4 "XMPP Server" mkslice "slice_name" "list_of_nodenames"
     55
     56E.g., omf_create_psnode-5.4 emmy9.casa.umass.edu mkslice gimiXX nodeA nodeB nodeC nodeD nodeE
     57}}}
     58If this succeeds you should see an output similar to the one below
     59{{{
     60$ omf_create_psnode-5.4 emmy9.casa.umass.edu mkslice gimi28 nodeA nodeB nodeC nodeD nodeE
     61DEBUG: Try to connect to Pubsub Gateway 'emmy9.casa.umass.edu'...
     62DEBUG: Try to connect to Pubsub Gateway 'emmy9.casa.umass.edu:5222'...
     63DEBUG: Connected as 'aggmgr@emmy9.casa.umass.edu' to XMPP server: 'emmy9.casa.umass.edu'
     64Connected to PubSub Server: 'emmy9.casa.umass.edu'
     65}}}
     66
     67You only need to create pubsub node once for each new slice name.
     68
     69
     70  ''B.2.1.2'' Before experimenters can use Flukes, its properties file has to be modified.
     71
     72{{{
     73#!html
     74<span style="color:red">The steps described in Section B.2.1.3 do NOT have to be executed during the tutorial!! We are describing them in case you should have to change the credential configuration in .flukes.properties manually!
     75</span>
     76}}}
     77
     78Open the properties file with your favorite text editor (e.g., nano):
     79{{{
     80$ nano ~/.flukes.properties
     81}}}
     82
     83Then change the file as indicated below.
     84
     85{{{
     86# Do not change these
     87orca.xmlrpc.url=https://geni.renci.org:11443/orca/xmlrpc
     88ssh.options=-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -X
     89xterm.path=/usr/bin/xterm
     90
     91
     92image1.name=gec15-gimi-image
     93image1.url=http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/gec-15-tutorial.xml
     94image1.hash=c866eb5423b30cd22a766ee6d1ffba744987a647
     95
     96image2.name=deb6-2g-zfilesystem
     97image2.url=http://geni-images.renci.org/images/standard/debian/debian-squeeze-amd64-neuca-2g.zfilesystem.sparse.xml
     98image2.hash=6a8a8466aef43774bf2e309af47ce876ba793f36
     99
     100image3.name=gec15-nicta-1
     101image3.url=http://pkg.mytestbed.net/geni/gec15-nicta-1.xml
     102image3.hash=51838b0d77fcf8840624bdc150ac51331f84a524
     103
     104user.keystore=/home/geni/.ssl/gimi30.jks
     105ssh.key=/home/geni/.ssh/geni_key
     106ssh.pubkey=/home/geni/.ssh/geni_key.pub
     107}}}
     108
     109The following [http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/videos/Flukes_properties.mp4 video] gives more details on the necessary changes of the file.
     110
     111  ''B.2.1.3'' In the tutorial VM start Flukes and load gimiXX.rdf. (Also here, replace gimiXX with your assigned user ID.) In Flukes select ''Files->Open Request->select gimiXX.rdf in ~/Tutorials/GIMI/gimiXX''.
     112
     113  ''B.2.1.4'' Verify settings and create slice.
     114   * First select the the ''Request View'' tab.
     115   * To verify settings, right-click on each node and select ''Edit Properties'', inspect, and close if everything looks right. In case you detect an error (which we don't expect for the tutorial) you can fix it here and then save a new version of the RDF file by clicking on ''File'' from the top menu in Flukes and selecting ''Save Request''.
     116   * To create a slice enter your slice name ''gimiXX'' in to the empty field next to the ''Submit Request'' button and the click the latter.
     117   * When you are prompted for login please enter the following data:
     118     Key alias: gimiXX
     119     Password: The one that has been handed out to you
     120
     121  ''B.2.1.5'' To check if all the resources have come up, go to the ''Manifest View'' tab and enter your slice name (''gimiXX'') into the empty field. Then click ''Query for Manifest''. After a short moment a box with all the requested resources and their respective status will appear. (This box does not update automatically and you have to hit the ''Query for Manifest'' button again to receive and update).
     122
     123  ''B.2.1.6'' GIMI specific post boot script. Each node uses the same image but runs a slightly different post boot script. The latter allows for individualized settings at each node. This script is already part of the gimiXX.rdf file. An example post boot script for NodeA is shown below:
     124{{{
     125#!/bin/bash
     126
     127# Experiment slice name used by OMF. Should be unique for each experiment
     128sn=gimi30
     129
     130# For now ExoGENI does not assign the "Name" assigned in Flukes as hostname. This will not be needed in future versions.
     131hostname nodeA
     132
     133curl http://emmy9.casa.umass.edu/pingWrap.rb -o /root/pingWrap.rb
     134chmod +x /root/pingWrap.rb
     135
     136#Adds the slice name to the resource controller configuration file
     137curl http://emmy9.casa.umass.edu/omf-resctl.yaml -o /etc/omf-resctl-5.4/omf-resctl.yaml
     138perl -i.bak -pe "s/\:slice\:/\:slice\: $sn/g" /etc/omf-resctl-5.4/omf-resctl.yaml
     139
     140# The above updates require a restart of the OMF resource controller.
     141/etc/init.d/omf-resctl-5.4 restart
     142}}}
     143
     144
     145The following [http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/videos/Flukes_overview.mp4 video] gives an overview on how to load an RDF file, request a slice, and verify the creation of a slice with Flukes.
     146
     147  ''B.2.1.6'' Information about the ExoGENI image we use for this tutorial can be found [https://wiki.exogeni.net/doku.php?id=public:experimenters:images here].
     148
     149----
     150
     151{{{
     152#!html
     153<span style="color:red">This section will NOT be covered during the tutorial!! Nevertheless, we describe in Section B.2.2 how you can use Omni to set up and ExoGENI slice should you consider not using Flukes for future experiments.
     154</span>
     155}}}
     156
     157=== B.2.2 Omni ===
     158In this section, we present an alternative approach to setup a slice by using the Omni command line tools to reserve resources. To perform this task the following steps have to be executed (replace gimiXX with your username):
     159
     160  ''B.2.2.1'' The post boot script that is used in the case of slice reservation via Flukes has to be converted from an RDF file into a single bash script that takes slice name and node ID as arguments.
     161This script will be installed and executed on the nodes by an execute service defined in the rspec as follows:
     162{{{
     163<execute command="wget -q -P /tmp http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/gec15-postboot.sh ;chmod +x /tmp/gec15-postboot.sh;/tmp/gec15-postboot.sh <slicename> nodeA > /tmp/gec15-postboot.log" shell="/bin/sh"/>
     164}}}
     165
     166  ''B.2.2.2'' The rdf file has to be converted into an rspec. You will notice that the rspec has to be slice-specific because it needs to pass the slice name into the post boot script.
     167
     168You can download an example rspec using the following command:
     169{{{
     170    wget -P ~/Tutorials/GIMI/gimiXX http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/gimi-tutorial.rspec
     171}}}
     172
     173Change the slice name in the rspec using the following command (replace gimiXXslice with your slice name).
     174{{{
     175    sed -i -e 's/SLICENAME/gimiXXslice/g' ~/Tutorials/GIMI/gimiXX/gimi-tutorial.rspec
     176}}}
     177
     178  ''B.2.2.3'' Then the following commands have to be executed to set up and manage the slice with Omni:
     179  * Create the slice:
     180{{{
     181omni.py createslice gimiXXslice
     182}}}
     183  * Create the sliver:
     184{{{
     185omni.py -a eg-sm createsliver gimiXXslice ~/Tutorials/GIMI/gimiXX/gimi-tutorial.rspec
     186}}}
     187  * Check the status of the sliver (you are waiting for all geni_status to show ''Active''):
     188{{{
     189omni.py -a eg-sm sliverstatus gimiXXslice 2>&1 | grep geni_status
     190}}}
     191
     192Example output:
     193{{{
     194  "geni_status": "ready",
     195      "geni_status": "Active"
     196      "geni_status": "Active"
     197      "geni_status": "Active"
     198      "geni_status": "Active"
     199      "geni_status": "Active"
     200      "geni_status": "Active"
     201      "geni_status": "Active"
     202      "geni_status": "Active"
     203      "geni_status": "Active"
     204      "geni_status": "Active"
     205      "geni_status": "Active"
     206
     207}}}
     208
     209  * Get the manifest of the sliver to get the login information (manifest will be saved to a file specified in the output):
     210{{{
     211omni.py -a eg-sm listresources gimiXXslice -o
     212}}}
     213
     214   * Get the login information from the manifest
     215
     216Example:
     217{{{
     218geni@geni-VirtualBox:$ grep login gimi08slice-manifest-rspec-geni-renci-org-11443-orca.xml
     219                  <login authentication="ssh-keys" hostname="152.3.144.112" port="22" username="root"/>     
     220                  <login authentication="ssh-keys" hostname="152.3.144.111" port="22" username="root"/>     
     221                  <login authentication="ssh-keys" hostname="152.3.144.110" port="22" username="root"/>     
     222                  <login authentication="ssh-keys" hostname="152.3.144.113" port="22" username="root"/>     
     223                  <login authentication="ssh-keys" hostname="152.3.144.109" port="22" username="root"/>
     224}}}
     225{{{
     226geni@geni-VirtualBox:$ ssh root@152.3.144.109
     227}}}
     228
     229  * Delete the sliver:
     230{{{
     231omni.py -a eg-sm deletesliver gimiXXslice
     232}}}
     233
     234
     235----
     236
     237[[BR]]
     238[[BR]]
     239
     240
     241[[http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Environment Back to previous step]]
     242
     243[[http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/Orchestrate  Forward to next step]]
     244
     245[[http://groups.geni.net/geni/wiki/GIMIv1.1Tutorial/ Back to tutorial main page]]