Changes between Initial Version and Version 1 of GeniTmixTutorialOmni


Ignore:
Timestamp:
03/01/13 13:41:56 (8 years ago)
Author:
Ben Newton
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GeniTmixTutorialOmni

    v1 v1  
     1[[PageOutline(2-3, Table of Contents)]]
     2
     3= Using Tmix on GENI =
     4
     5This page describes how to run experiments with [wiki:GeniTmix Tmix] on GENI nodes.  This tutorial assumes that you are already familiar with basic experimentation with GENI, and that you have access to some version of Linux/Unix running on a PC or virtual machine.  We also assume basic familiarity with Linux/Unix.
     6
     7
     8== 1 Install Omni ==
     9This tutorial will use Omni, which is a command line interface tool for reserving GENI resources.  If you do not already have Omni installed and set up, please follow Step 1 (Configuring Omni with your GENI Account) [wiki:GENIExperimenter/Tutorials/HelloOmni here].  Please note, it may take 30-45 minutes to get Omni installed and configured.  Also note when installing Omni, the ./omni-configure.py script may need to be run from your gcf/src directory, and you may need to create the .ssl subdirectory in your home directory. 
     10
     11== 2 Extra Omni Configuration ==
     12=== 2.1 Add gcf/src to path (optional but recommended) ===
     13Although optional, it will be helpful to add the gcf/src directory to your path and python path.  To do this, replace "/path/to/gcf" in the lines below with the path to your copy of gcf, and add the lines to the end of your .profile file or equivalent.   
     14{{{
     15PATH="/path/to/gcf/src:$PATH"
     16export PYTHONPATH="/path/to/gcf/src:$PATH"
     17}}}
     18
     19Once you have added the lines and saved the file, run
     20{{{
     21source .profile
     22}}}
     23to setup the path environment variables for this session. This will be done automatically from now on.   
     24
     25If you don't make this change, you may need to add python in front of all the omni commands, and call them from within the gcf/src directory.
     26
     27=== 2.2 Clear Passphrases (optional but recommended) ===
     28We recommend that you clear the passphrase from your SSL certificate and/or your SSH key that you will use to login to your nodes.  This step is also optional, however, if you don't clear your passphrases some commands will require you to enter your it several times, which can become burdensome.  To clear the passphrases from your certificate and key run this script:
     29
     30{{{
     31clear-passphrases.py
     32}}}
     33
     34
     35== 3 A Simple Tmix Experiment ==
     36
     37=== 3.1 Reserve Resources ===
     38The following is the request rspec for a simple two node network.  It requests two raw nodes named left and right, each with a single interface named left:if0 and right:if0 respectively. A link named left-right-lan connects these interfaces.
     39{{{
     40<rspec type="request"
     41    xmlns="http://www.geni.net/resources/rspec/3"
     42    xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1"
     43    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     44    xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"
     45    xsi:schemaLocation="http://www.geni.net/resources/rspec/3
     46    http://www.geni.net/resources/rspec/3/request.xsd"> 
     47  <node client_id="left" component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" exclusive="true">
     48    <sliver_type name="raw-pc">
     49      <disk_image name="urn:publicid:IDN+emulab.net+image+pgeni-gpolab-bbn-com//tmixUbuntu"/> 
     50    </sliver_type>
     51    <services>
     52        <execute command="/local/tmix-script.sh" shell="sh"/>     
     53        <install install_path="/local" url="http://www.cs.unc.edu/~bn/tmix-script.tar.gz"/>
     54    </services>
     55    <interface client_id="left:if0">
     56      <ip address="10.1.1.1" netmask="255.255.255.0" type=""/>
     57    </interface>
     58  </node>
     59  <node client_id="right" component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" exclusive="true">
     60    <sliver_type name="raw-pc">
     61      <disk_image name="urn:publicid:IDN+emulab.net+image+pgeni-gpolab-bbn-com//tmixUbuntu"/>
     62    </sliver_type>
     63    <services>
     64http://groups.geni.net/geni/attachment/wiki/GeniTmixTutorial/tmix-script.tar.gz?format=raw
     65        <execute command="/local/tmix-script.sh" shell="sh"/>     
     66        <install install_path="/local" url="http://www.cs.unc.edu/~bn/tmix-script.tar.gz"/>
     67    </services>
     68    <interface client_id="right:if0">
     69      <ip address="10.1.1.2" netmask="255.255.255.0" type=""/>
     70    </interface>
     71  </node>
     72  <link client_id="left-right-lan">
     73    <component_manager name="urn:publicid:IDN+emulab.net+authority+cm"/>
     74    <interface_ref client_id="left:if0"/>
     75    <interface_ref client_id="right:if0"/>
     76    <property source_id="left:if0" dest_id="right:if0"/>
     77    <property source_id="right:if0" dest_id="left:if0"/>
     78    <link_type name="lan"/>
     79  </link>
     80</rspec>
     81}}}
     82
     83Think of a unique name for your slice.  We recommend the slice name begin with your GENI username. 
     84Create a new slice by issuing the following command with your unique slice name in place of <sliceName>.
     85{{{
     86omni.py createslice <sliceName>
     87}}}
     88Next, create a sliver with the resources requested in the rspec by issuing the following command where <sliceName> is again replaced with the unique slice name you have chosen. 
     89{{{
     90omni.py -a pg-utah <sliceName> two-nodes-tmix.rspec
     91}}}
     92Note: this and future steps assume your ~/.gcf/omni_config includes a mapping from nickname pg-utah to https://www.emulab.net:12369/protogeni/xmlrpc/am. If pg-utah causes issues, you can use the full url in the -a option.
     93
     94If the resources were successfully reserved the {{{Result Summary}}} from Omni should say: Got Reserved resources ...
     95If there was an error you will see something like "Failed CreateSliver".
     96
     97Look back further in the output and you should see two lines which include "hostname=pc???.emulab.net".  These are the hostnames of the machines reserved for your experiment.  Make note of these hostnames for later use.   
     98
     99In addition to listing desired resources, the rspec also specifies a script to be run at boot time on the host.  This script configures the host for Tmix.