Changes between Version 2 and Version 3 of sol4/IDMS/ExpTutorial


Ignore:
Timestamp:
06/20/14 12:49:45 (5 years ago)
Author:
adorwat@umail.iu.edu
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • sol4/IDMS/ExpTutorial

    v2 v3  
     1[[PageOutline]]
    12
     3== IDMS Experiment in GENI ==
     4
     5The persistent IDMS experiment allows other users to attach at shared VLAN sites, granting
     6access to the available storage resources. Users may then upload and download their
     7experiment data using a set of client tools. IDMS provides:
     8  * A custom RSpec that configures a node to access the IDMS experiment
     9  * Nodes use DHCP to lease an address within the IDMS data plane subnet
     10  * Automatically installed client tools to upload/download data to available storage nodes
     11
     12== Base Experiment Topology ==
     13Shared VLANs at Stanford, Utah, Illinois, ig BBN and eg BBN
     14  * Stitching between the shared VLAN sites to create a cross-country data plane
     15  * Phoebus Gateways on ProtoGENI backbone nodes for external access to the experiment and to improve WAN transfer performance
     16
     17
     18In order to go through this tutorial you will need to use a tool for reserving resources. You can use either [http://protogeni.net/flack Flack] or [http://trac.gpolab.bbn.com/gcf/wiki/Omni Omni]. If you haven't used any of these tools before, please go through the introductory tutorials first.
     19  * [wiki:GENIExperimenter/Tutorials/RunHelloGENI Flack tutorial.] Flack is graphical web tool.
     20  * [wiki:GENIExperimenter/Tutorials/HelloOmni Omni tutorial.] Omni is a command line tool.
     21
     22= 1. Create your experiment =
    223{{{
    324#!html
    4 <div style="text-align:left; width:571px; margin-left:none; margin-right:auto;">
    5 <img id="Image-Maps_7201210311729283" src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Graphics/hello.png?format=raw" usemap="#Image-Maps_7201210311729283" border="0" width="571" height="68" alt="" />
    6 <map id="_Image-Maps_7201210311729283" name="Image-Maps_7201210311729283">
    7 <area shape="poly" coords="15,14,115,12,133,32,120,51,17,50," href="http://groups.geni.net/geni" alt="Wiki Home" title="Wiki Home"   />
    8 <area shape="poly" coords="125,12,142,33,123,52,231,52,253,32,233,15," href="http://groups.geni.net/geni/wiki/GENIExperimenter" alt="Welcome GENI Experimenters" title="Welcome GENI Experimenters"   />
    9 <area shape="poly" coords="242,13,256,32,237,52,336,56,355,30,332,11," href="http://groups.geni.net/geni/wiki/SignMeUp" alt="Sign Up For a GENI Account" title="Sign Up For a GENI Account"   />
    10 <area shape="poly" coords="344,10,363,29,344,50,540,53,553,31,532,13," href="http://groups.geni.net/geni/wiki/sol4/IDMS/ExpTutorial" alt="Use IDMS in your experiment" title="Run IDMS Experiment"   />
    11 <area shape="rect" coords="569,66,571,68" href="http://www.image-maps.com/index.php?aff=mapped_users_7201210311729283" alt="Image Map" title="Image Map" />
    12 </map>
    13 
    14 </div>
     25<table border="0">
     26   
     27      <tr>
     28       <td>
     29<img border="0" src="http://groups.geni.net/geni/attachment/wiki/Tutorials/Graphics/l2-topo.png?format=raw" alt="Layer2 example topology"  width="300" title="Layer2 example topology" />  </a>
     30       </td>
     31       <td >
     32         <ol>
     33            <li><b> Create a slice </b>. Name your slice something like <b>xxxomni</b> (where xxx are your initials). </li>
     34            <li> <b> Reserve resources </b>. In this step we are going to reserve resources using the <a href="http://groups.geni.net/geni/wiki/GENIExperimenter/RSpecs"> rspec file </a> from this URL: <a href="http://www.gpolab.bbn.com/experiment-support/Layer2Ping/layer2ping.rspec">http://www.gpolab.bbn.com/experiment-support/Layer2Ping/layer2ping.rspec</a>. The topology that this rspec describes looks like the diagram on the left. </li>
     35             <li> <b> Wait until your resources are ready </b> </li>
     36          </ol>
     37       </td>
     38 
     39    </tr>
     40 </table>
    1541}}}
    1642
    17 [[PageOutline]]
    18 = Using IDMS in your slice =
    1943
    20 {{{
    21 #!html
    22 <table border="0" >
    23  <tr>
    24     <td width="350" valign="top">
    25 <h3 align="left"> <u>Overview: </u> </h3>
    26 Welcome to GENI. This page will guide you through your first GENI experiment. <br>This is a very simple tutorial with one server and one client that are connected with a Layer 2 link. <br>
    27 <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Graphics/HelloGENIOverviewDiag.png?format=raw" alt="Hello GENI topology"  align="center" height="65" title="Hello GENI topology" />
    28      </td>
    29  <td> <pre>   </pre> </td>
    30     <td width="350" valign="top">
    31 <h3 align="left"> <u>Prerequisites: </u></h3>
    32  For this tutorial you need a GENI Experimenter Portal account and be a member of at least one project.
    33     <ul>
    34    <li> If you have a ProtoGENI (emulab) account, then you can follow
    35 <a href="http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/RunHelloGENIProtoGENI"> this version</a> of the tutorial. </li>
    36     <li> If you don't have an account yet <a href="http://groups.geni.net/geni/wiki/SignMeUp"> sign up! </a></li>
    37     </ul>
    3844
    39     </td>
    40   </tr>
    41   <tr>
    42     <td width="350" valign="top">
    43 <h3 align="left"> <u>Tools: </u></h3>
    44 All the tools will already be installed at your nodes. For your reference we are going to use:
    45      <ul>
    46        <li> The <a href="http://httpd.apache.org/" target="_blank"> Apache HTTP server </a> and the <a href="http://www.gnu.org/software/wget/" target="_blank"> wget utility </a> </li>
    47        <li> The <a href="http://en.wikipedia.org/wiki/Iperf " target="_blank"> iperf utility </li>
    48       </ul>
    49      </td>
    50  <td> <pre>   </pre> </td>
    51     <td width="350" valign="top">
    52     <h3 align="left"> <u>Where to get help: </u></h3>
    53       For any questions or problem with the tutorial please email <a href="mailto:help@geni.net?Subject=Help%20with%20HelloGENI%20tutorial"> help@geni.net </a>
    54     </td>
    55   </tr>
    56 </table>
     45= 2. Run your experiment =
     46Now that resources are ready we can start running our experiment.
     47  1. '''Login to all the reserved hosts.''' We will first start by logging in to both of our reserved nodes. If you don't know how to login to your nodes please follow [wiki:HowTo/LoginToNodes these instructions].
     48
     49
     50  2. '''Send IP traffic''' The first simple experiment that we will run is to verify the IP connectivity between our hosts.
     51    i. Check the interfaces of your nodes. In the terminal type:
     52    {{{
     53   /sbin/ifconfig
     54  }}}
     55    You should see at least two interfaces:
     56      * The '''control interface'''. This is the interface from where you access the node, e.g. ssh into your host. The control interface is mainly used for control traffic, i.e. traffic for controlling the node and the experiment. The control interface usually has a publicly routable IP.
     57      * The '''data interface'''. This is the interface that is used for sending experimental traffic. This is the interface that connects to the other hosts of your experiment through GENI. The links between these interfaces are the ones that allow you to run non-IP experiments.
     58    i. Note the name and the MAC address of the control and of the data interface for each node. The data interface is the one that has an IP that starts with 10.
     59    i. From the client ping the server. From the xterm that is logged in to the client type :
     60    {{{
     61    ping server -c 5
     62  }}}
     63    '''Note''': You can use the name that is assigned to the host to directly ping the host, you can also ping using the IP of the data interface of the node.  An example output should look like :
     64    {{{
     65[[inki@r2 ~]$ ping server -c 5
     66PING 10.10.2.1 (10.10.2.1) 56(84) bytes of data.
     6764 bytes from 10.10.2.1: icmp_seq=1 ttl=64 time=1.95 ms
     6864 bytes from 10.10.2.1: icmp_seq=2 ttl=64 time=2.27 ms
     6964 bytes from 10.10.2.1: icmp_seq=3 ttl=64 time=2.04 ms
     7064 bytes from 10.10.2.1: icmp_seq=4 ttl=64 time=1.95 ms
     7164 bytes from 10.10.2.1: icmp_seq=5 ttl=64 time=1.72 ms
     72
     73--- 10.10.2.1 ping statistics ---
     745 packets transmitted, 5 received, 0% packet loss, time 4005ms
     75rtt min/avg/max/mdev = 1.728/1.992/2.278/0.179 ms
    5776}}}
    5877
    59 == Step-by-step Instructions ==
    60 
    61 {{{
    62 #!html
    63 <table  border="0" cellpadding="0" cellspacing="0">
    64   <tr>
    65      <td valign="top" align="left">
    66         <img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/design.png?format=raw" width="150" alt="Design/Setup"></a>
    67       </td>
    68       <td>
    69          <h3><u> Step 1: Get Ready: </u></h3>
    70          The first thing we need to do is login to the portal.
    71             <table border="0">
    72               <tr>
    73                 <td >
    74                  <ol type="a">
    75                    <li> Go to <a href="http://portal.geni.net" target="_blank"> the GENI Experimenter Portal </a> press the <b> Use GENI </b> button</li> and from the Drop Down menu select your institution. If you got an account through the GENI Identity Provider, please select <b>GENI Project Office</b>.
    76                         <br><b>Tip:</b> Start typing the name of your institution and see the list become smaller.
    77                    </li>
    78                    <li> You will be transferred to the Login Page of your institution. <b>Fill in </b>your username and password. </li>
    79                  </ol>
    80                 </td>
    81      
    82              </tr>
    83            </table>
    84               <h3><u> Step 2: Launch your experiment: </u></h3>
    85                <table border="0">
    86    
    87       <tr>
    88        
    89        <td >
    90          <ol type="a">
    91              <li> At the portal home page press the <b> create slice </b> from your project.
    92                        <br><b>Tip:</b> If you are not a member of any project and you don't know how to procede, <a href="mailto:help@geni.net?Subject=Help%20with%20HelloGENI%20tutorial"> email us </a>
    93                     </li>
    94             <li> Name your slice something like <b>xxxhello</b> (where xxx are your initials)<br></li>
    95             <li> When the slice page loads up, press the <b> Launch Flack </b> button, and <b>wait</b> until Flack finishes loading; this might take a while.  </li>
    96             <li> Once Flack finishes loading, on the top of the empty canvas on the right, from the <b> Import menu </b> choose the <b> Import from the web </b> option. </li>
    97             <li> Paste this url <a href="http://www.gpolab.bbn.com/experiment-support/HelloGENI/hellogeni-bound.xml" target="_blank"> http://www.gpolab.bbn.com/exp/HelloGENI/hellogeni-bound.xml</a> and click <b>Ok </b>
    98             <li>  A topology will come up. Your topology should look like <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Graphics/hellogeni-topo.png?format=raw" alt="Login to Flack Video"  height="20" title="How to login video" />. Press the <b>Submit</b> button and <b>confirm</b> that you want to reserve these resources.</li>
    99             <li> Wait while your resources are being reserved. This will take several minutes so be patient. When your sliver is ready the background will be green. </li>
    100            </ol>
    101        </td>
    102        <td>
    103          <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Graphics/flack_import_rspec.png?format=raw" alt="Import RSpec in Flack"  height="80" title="Flack: Import RSpec" />
    104        </td>
    105     </tr>
    106  </table>
    107                
    108                  
    109           </td>
    110        </tr>
    111 </table>
     78  3. '''Send non-IP traffic'''. GENI provides the capability of running non-IP experiments, since you can connect your hosts at Layer 2. For the purpose of this tutorial we have installed in all the hosts a very simple Layer 2 ping program that sends packets using a custom ethernet type.
     79    i. Disable the IP in your nodes. First of all we are going to completely disable IP on our nodes. In each of the terminals type:
     80    {{{
     81  sudo /sbin/ifconfig <data i/f name> 0.0.0.0
     82  }}}
     83    '''Note''': Be extra careful to bring down the IP on the data interface, bringing down the IP on the control interface means that you will lose connectivity to your host.
     84    i. Try again to ping from the client to the server. In the xterm of the client type:
     85    {{{
     86  ping server -c 5
     87  }}}
     88    This time the ping should timeout.
     89    i. Start the Layer 2 ping server: In the server xterm, type:
     90    {{{
     91  sudo /usr/local/bin/pingPlusListener 12345
     92  }}}
     93    i. From the client try to ping the server at layer 2. You will need the mac address of the data interface of the server and the name of the data interface of the client. In the xterm of the client, type:
     94    {{{
     95  sudo /usr/local/bin/pingPlus <server data mac addr> <client data i/f name> 12345
     96  }}}
     97    The result should look like :
     98    {{{
     99[uncusr20@client ~]$ sudo /usr/local/bin/pingPlus 02:00:9B:48:3E:20 mv1.1 12345
     100RQ:'5582+2067' to 2:0:9b:48:3e:20.
     101RQ:5582+2067 from 2:0:3e:15:6c:ab.
    112102}}}
    113103
    114 {{{
    115 #!html
    116 <table  border="0" cellpadding="0" cellspacing="0">
    117   <tr>
    118      <td valign="top" align="left">
    119         <img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/execute.png?format=raw" height="150" alt="Execute"></a>
    120       </td>
    121       <td>
    122          <h3><u> Step 3: View Results: </u></h3>
    123          For this example experiment we used the install script facility to automatically install the necessary software and kick-off the experiment. In this very simple setup, we have installed and launched a
    124 <a href="[http://en.wikipedia.org/wiki/Web_server" target="_blank"> web server </a> as well as an <a href="http://en.wikipedia.org/wiki/Iperf" target="_blank"> iperf server</a>, on the server host. On the client, we have started some processes to test both of these services. To view the results of this experiment:
    125             <table border="0">
    126               <tr>
    127                 <td >
    128                  <ol type="a">
    129             <li> After the background of your slice turns green, press the (i) button that is on the server node icon.</li>
    130             <li> In the information tab that came up, press the <b>Visit</b> button. A new tab should come up that looks like the picture on the side. </li>
    131             <li> Click the <b>Web Server Statistics</b> link to look at statistics. Refresh the page a couple of times to see how the statistics change as the client requests documents.</li>
    132             <li> Click the <b>Logs from the iperf Server</b> link to see the statistics from the iperf transfers.</li>
    133            </ol>
    134                 </td>
    135      
    136              </tr>
    137            </table>
    138               <h3><u> Optional Step 4: Manually generate traffic: </u></h3>
    139              While conducting experiments in GENI, you will often want to run commands directly on the nodes. In this optional step, you will log in to a node and issue commands directly to it.
    140               <ol type="a">
    141                  <li>  Follow <a href="http://groups.geni.net/geni/wiki/HowTo/LoginToNodes" target="_blank"> these instructions</a> and log in to the client node </li>
    142                  <li> When you have successfully logged in, run this command:<br>
    143 <code>
    144 iperf -c server -P 2
    145 </code> <br>
    146     This task shouldn't take more than 30 seconds. Change the number after the ` -P ` argument and watch how the performance is affected while you change the number of parallel TCP connections.
    147      </li>
    148    <li> Scroll all the way down the server iperf log, and look at the logs for your transfers </li>
    149    </ol>
    150                      
    151           </td>
    152        </tr>
    153 </table>
    154 }}}
     104Congratulations you have run a Layer 2 experiment in GENI!
    155105
    156 {{{
    157 #!html
    158 <table  border="0" cellpadding="0" cellspacing="0">
    159   <tr>
    160      <td valign="top" align="left">
    161         <img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/finish.png?format=raw"  width="150" alt="Execute"></a>
    162       </td>
    163        <td>
    164               <h3><u> Step 5: Cleanup experiment: </u></h3>
    165            After you are done with your experiment, you should always release your resources so that other experimenters can use
    166 the resources. In order to cleanup your slice :
    167               <ol type="a">
    168                  <li>Press the <b>Delete</b> button in the bottom of your canvas </li>
    169                  <li> Select <b>Delete at used managers</b> and <b>confirm</b> your selection. </li>
    170               </ol>
    171 Wait and after a few moments all the resources will have been released and you will have an empty canvas again. Notice that your slice is still there. There is no way to delete a slice, it will be removed automatically after its expiration date, but remember that a slice is just an empty container so it doesn't take up any resources.
    172 
    173                      
    174           </td>
    175        </tr>
    176 </table>
    177 }}}
    178 
    179 =  What's next? =
    180 Congratulations! You have finished your first GENI Experiment. Now that you are more familiar with GENI concepts you can:
    181   * continue with more [wiki:GENIExperimenter/ExampleExperiments advanced tutorials]
    182   * learn more about how to use Flack by following the [http://www.protogeni.net/trac/protogeni/wiki/FlackTutorial Flack Tutorial]
    183   * start with your own experiment. This tutorial showed you the basic steps for running an experiment. Use Flack to create your own topology, take a look at the [wiki:HowTo/WriteInstallScript instructions about how to write your own install scripts] to automate your expriment.
     106= 3. Cleanup  =
     107Although all your reservations, have expiration times, you should always release
     108your resources once you have completed your experiment to make them available
     109to other experimenters.
     110