Changes between Version 47 and Version 48 of GIMIv1.1Tutorial/Slice


Ignore:
Timestamp:
10/18/12 13:59:25 (7 years ago)
Author:
Cong
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GIMIv1.1Tutorial/Slice

    v47 v48  
    6565}}}
    6666
    67   ''B.2.1.2'' Before experimenters can use Flukes, its properties file has to be modified.
    68 Open the properties file with your favorite text editor (e.g., nano):
    69 {{{
    70 $ nano ~/.flukes.properties
    71 }}}
    72 
    73 Then change the file as indicated below.
    74 
    75 {{{
    76 # Do not change these
    77 orca.xmlrpc.url=https://geni.renci.org:11443/orca/xmlrpc,https://rci-hn.exogeni.net:11443/orca/xmlrpc,https://bbn-hn.exogeni.net:11443/orca/xmlrpc,https://nicta-hn.exogeni.net:11443/orca/xmlrpc
    78 ssh.options=-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -X
    79 xterm.path=/usr/bin/xterm
    80 
    81 # replace XX with your user index (with leading 0, if necessary)
    82 user.keystore=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX.jks
    83 ssh.key=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX_key
    84 ssh.pubkey=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX_key.pub
    85 
    86 image1.name=gec15-gimi-image
    87 image1.url=http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/gec-15-tutorial.xml
    88 image1.hash=fb135d730ec37d92a6f4c873f26cea72af1c0a31
    89 }}}
    90 
    91 The following [http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/videos/Flukes_properties.mp4 video] gives more details on the necessary changes of the file.
    92 
    93 Now start Flukes by double-clicking on the icon on the VM's desktop.
    94 
    95   ''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''.
    96 
    97   ''B.2.1.4'' Verify settings and create slice.
    98    * First select the the ''Request View'' tab.
    99    * 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''.
    100    * To create a slice enter your slice name ''gimiXX-tutorial'' in to the empty field next to the ''Submit Request'' button and the click the latter.
    101 
    102   ''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-tutorial'') 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).
    103 
    104   ''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. An example post boot script for NodeA is shown below:
    105 {{{
    106 #!/bin/bash
    107 
    108 # Experiment slice name used by OMF. Should be unique for each experiment
    109 sn=gimi30
    110 
    111 # For now ExoGENI does not assign the "Name" assigned in Flukes as hostname. This will not be needed in future versions.
    112 hostname nodeA
    113 
    114 curl http://emmy9.casa.umass.edu/pingWrap.rb -o /root/pingWrap.rb
    115 chmod +x /root/pingWrap.rb
    116 
    117 #Adds the slice name to the resource controller configuration file
    118 curl http://emmy9.casa.umass.edu/omf-resctl.yaml -o /etc/omf-resctl-5.4/omf-resctl.yaml
    119 perl -i.bak -pe "s/\:slice\:/\:slice\: $sn/g" /etc/omf-resctl-5.4/omf-resctl.yaml
    120 
    121 # The above updates require a restart of the OMF resource controller.
    122 /etc/init.d/omf-resctl-5.4 restart
    123 }}}
    124 
    125 
    126 ----
    127 
    128 {{{
    129 #!html
    130 <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.
    131 </span>
    132 }}}
    133 
    134 === B.2.2 Omni ===
    135 In 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:
    136 
    137   ''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.
    138 This script will be installed and executed on the nodes by an execute service defined in the rspec as follows:
    139 {{{
    140 <execute command="wget -q -P /tmp http://pc205.emulab.net/gimi/gec15-postboot.sh ;chmod +x /tmp/gec15-postboot.sh;/tmp/gec15-postboot.sh johGimi09-both nodeA > /tmp/gec15-postboot.log" shell="/bin/sh"/>
    141 }}}
    142 
    143   ''B.2.2.2'' The rdf file has to be converted into an rspec (see attached gec15-tutorial-gimi09-nospec.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.
    144 
    145   ''B.2.2.3'' Then the following commands have to be executed to set up and manage the slice with Omni:
    146   * Create the slice:
    147 {{{
    148 omni.py createslice johGimi09-tutorial
    149 }}}
    150   * Create the sliver:
    151 {{{
    152 omni.py -a eg-sm createsliver johGimi09-tutorial ~/Tutorials/GIMI/gimi09/gec15-tutorial-gimi09-nospec.rspec
    153 }}}
    154   * Check the status of the sliver:
    155 {{{
    156 omni.py -a eg-sm sliverstatus johGimi09-tutorial 2>&1 | grep geni_status
    157 }}}
    158   * Get the manifest of the sliver (to get the login information):
    159 {{{
    160 omni.py -a eg-sm listresources johGimi09-tutorial -o
    161 }}}
    162   * Delete the sliver:
    163 {{{
    164 omni.py -a eg-sm deletesliver johGimi09-tutorial
    165 }}}
    166 
    167 ----
    168 
    169 === B.2.3 Register slice and node names (create Pubsub nodes) ===
     67  ''B.2.1.2'' Register slice and node names (create Pubsub nodes):
    17068
    17169The RCs and the EC communicate via an XMPP server. The GIMI XMPP is running on emmy9.casa.umass.edu.
     
    18785
    18886You only need to create pubsub node once for each new slice name.
     87
     88
     89  ''B.2.1.3'' Before experimenters can use Flukes, its properties file has to be modified.
     90Open the properties file with your favorite text editor (e.g., nano):
     91{{{
     92$ nano ~/.flukes.properties
     93}}}
     94
     95Then change the file as indicated below.
     96
     97{{{
     98# Do not change these
     99orca.xmlrpc.url=https://geni.renci.org:11443/orca/xmlrpc,https://rci-hn.exogeni.net:11443/orca/xmlrpc,https://bbn-hn.exogeni.net:11443/orca/xmlrpc,https://nicta-hn.exogeni.net:11443/orca/xmlrpc
     100ssh.options=-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -X
     101xterm.path=/usr/bin/xterm
     102
     103# replace XX with your user index (with leading 0, if necessary)
     104user.keystore=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX.jks
     105ssh.key=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX_key
     106ssh.pubkey=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX_key.pub
     107
     108image1.name=gec15-gimi-image
     109image1.url=http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/gec-15-tutorial.xml
     110image1.hash=fb135d730ec37d92a6f4c873f26cea72af1c0a31
     111}}}
     112
     113The following [http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/videos/Flukes_properties.mp4 video] gives more details on the necessary changes of the file.
     114
     115Now start Flukes by double-clicking on the icon on the VM's desktop.
     116
     117  ''B.2.1.4'' 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''.
     118
     119  ''B.2.1.5'' Verify settings and create slice.
     120   * First select the the ''Request View'' tab.
     121   * 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''.
     122   * To create a slice enter your slice name ''gimiXX-tutorial'' in to the empty field next to the ''Submit Request'' button and the click the latter.
     123
     124  ''B.2.1.6'' To check if all the resources have come up go to the ''Manifest View'' tab and enter your slice name (''gimiXX-tutorial'') 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).
     125
     126  ''B.2.1.7'' 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. An example post boot script for NodeA is shown below:
     127{{{
     128#!/bin/bash
     129
     130# Experiment slice name used by OMF. Should be unique for each experiment
     131sn=gimi30
     132
     133# For now ExoGENI does not assign the "Name" assigned in Flukes as hostname. This will not be needed in future versions.
     134hostname nodeA
     135
     136curl http://emmy9.casa.umass.edu/pingWrap.rb -o /root/pingWrap.rb
     137chmod +x /root/pingWrap.rb
     138
     139#Adds the slice name to the resource controller configuration file
     140curl http://emmy9.casa.umass.edu/omf-resctl.yaml -o /etc/omf-resctl-5.4/omf-resctl.yaml
     141perl -i.bak -pe "s/\:slice\:/\:slice\: $sn/g" /etc/omf-resctl-5.4/omf-resctl.yaml
     142
     143# The above updates require a restart of the OMF resource controller.
     144/etc/init.d/omf-resctl-5.4 restart
     145}}}
     146
     147
     148----
     149
     150{{{
     151#!html
     152<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.
     153</span>
     154}}}
     155
     156=== B.2.2 Omni ===
     157In 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:
     158
     159  ''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.
     160This script will be installed and executed on the nodes by an execute service defined in the rspec as follows:
     161{{{
     162<execute command="wget -q -P /tmp http://pc205.emulab.net/gimi/gec15-postboot.sh ;chmod +x /tmp/gec15-postboot.sh;/tmp/gec15-postboot.sh johGimi09-both nodeA > /tmp/gec15-postboot.log" shell="/bin/sh"/>
     163}}}
     164
     165  ''B.2.2.2'' The rdf file has to be converted into an rspec (see attached gec15-tutorial-gimi09-nospec.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.
     166
     167  ''B.2.2.3'' Then the following commands have to be executed to set up and manage the slice with Omni:
     168  * Create the slice:
     169{{{
     170omni.py createslice johGimi09-tutorial
     171}}}
     172  * Create the sliver:
     173{{{
     174omni.py -a eg-sm createsliver johGimi09-tutorial ~/Tutorials/GIMI/gimi09/gec15-tutorial-gimi09-nospec.rspec
     175}}}
     176  * Check the status of the sliver:
     177{{{
     178omni.py -a eg-sm sliverstatus johGimi09-tutorial 2>&1 | grep geni_status
     179}}}
     180  * Get the manifest of the sliver (to get the login information):
     181{{{
     182omni.py -a eg-sm listresources johGimi09-tutorial -o
     183}}}
     184  * Delete the sliver:
     185{{{
     186omni.py -a eg-sm deletesliver johGimi09-tutorial
     187}}}
     188
     189
    189190----
    190191