Changes between Initial Version and Version 1 of ExperienceWithProtoGENI


Ignore:
Timestamp:
08/13/10 16:16:39 (14 years ago)
Author:
Prasad Calyam
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ExperienceWithProtoGENI

    v1 v1  
     1= Experiences with using ProtoGENI =
     2'''Prasad Calyam, Kunpeng Zhu'''[[BR]]
     3Original: '''August 13, 2010'''[[BR]]
     4
     5We have successfully demonstrated our integration of the OnTimeMeasure measurement service with ProtoGENI at GEC7 [http://groups.geni.net/geni/attachment/wiki/OnTimeMeasure/GEC7-OnTimeMeasureGENI-Poster.pdf (Poster)] and GEC8 [http://groups.geni.net/geni/attachment/wiki/OnTimeMeasure/GEC8-OnTimeMeasureGENI-Poster.pdf (Poster)]. Some of our experiences with using ProtoGENI are described in the remainder of this document.
     6
     7== 1. User Support ==
     8User Support from ProtoGENI team has been very good. The team was very responsive and helpful.
     9They have helped us with conceptual, technical and admin issues at various times. To
     10reach the ProtoGENI team, we have used the geni-users@emulab.net mailing list.
     11
     12== 2. Deployment Challenges ==
     13 * No long-standing home directories, hence we had to internally backup any successfully deployed ProtoGENI code.
     14 * We could not replicate the ProtoGENI deployment environment internally for software development purposes. This is because the ProtoGENI node OS image has dependencies to ProtoGENI hardware drivers.
     15 * We had to perform some extra steps and had to deal with some unknowns (e.g., reasons for node crashes) to make our development code work on the ProtoGENI deployment nodes.
     16
     17== 3. Experiences on 'getting to' and 'using' proper ProtoGENI documentation ==
     18 * ProtoGENI Tutorial for slice creation (https://users.emulab.net/trac/protogeni/wiki/TutorialNew) has been most helpful.
     19 * Intially, we tried setting up a slice based on the GEC6 RSpec and faced many problems. We realized that we do not have to mandatorily specify netfpga(s) in slice creation requests. We found the RSpec examples at http://www.protogeni.net/trac/protogeni/wiki/RSpecExamples and http://www.protogeni.net/trac/protogeni/wiki/RSpecExamples2 to be very useful.
     20 * There are several ways to create slices in ProtoGENI. The next section of this document details the ways we have successfully/unsuccessfully experimented.
     21 * For accessing repositories to get software module updates, we had to rely on Internet2 hosted repositories because other repository traffic is blocked.
     22 * Note that ProtoGENI API and scripts are evolving and so script names can change over time.
     23 * ‘Control’ network is different from ‘Experiment’ network, and these 2 networks can be accessed by using suitable IP addressing.
     24 * When our nodes crashed, we were able to reboot our nodes using some of the Emulab documentation at https://users.emulab.net/trac/emulab/wiki/FAQ
     25
     26== 4. Experiences in Creating ProtoGENI Slices ==
     27
     28=== 4.1 ProtoGENI Test Scripts ===
     29
     30By following the [http://www.protogeni.net/trac/protogeni/wiki/TestScripts TestScripts wiki], we successfully created and managed slices.
     31
     32The advantage of the scripts is that it can reserve any node with proper RSpec input. But, creating a working RSpec manually needs some work.
     33RSpec examples at http://www.protogeni.net/trac/protogeni/wiki/RSpecExamples and http://www.protogeni.net/trac/protogeni/wiki/RSpecExamples2 can be used as a starting point.
     34
     35Typical steps we used to create a slice are given below as shown by the order of scripts execution:
     36
     37 * registerslice.py –n <slice name>
     38 * createssliver.py –n <slice name> <rspec file>
     39 * sliverstatus –n <slice name>
     40 * renewsliver –n <slice name> <time>
     41
     42A sample RSpec file we used:
     43
     44{{{
     45<rspec type="request" xmlns="http://www.protogeni.net/resources/rspec/0.2">
     46
     47<!-- Fedora Backbone Node -->
     48<!-- Washington Location -->
     49<node component_uuid="urn:publicid:IDN+emulab.net+node+pg41" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm"
     50virtual_id="ontime_nodebeacon1" virtualization_type="emulab-vnode" exclusive="1">
     51    <node_type type_name="pc" type_slots="1"/>
     52    <interface virtual_id="virt-0"/>
     53</node>
     54
     55<!-- Fedora Backbone Node -->
     56<!-- Kansas Location -->
     57<node component_uuid="urn:publicid:IDN+emulab.net+node+pg43" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm"
     58virtual_id="ontime_rootbeacon" virtualization_type="emulab-vnode" exclusive="1">
     59    <node_type type_name="pc" type_slots="1"/>
     60    <interface virtual_id="virt-0"/>
     61    <interface virtual_id="virt-1"/>
     62</node>
     63
     64<!-- Fedora Backbone Node -->
     65<!-- Utah Location -->
     66<node component_uuid="urn:publicid:IDN+emulab.net+node+pg45" component_manager_uuid="urn:publicid:IDN+emulab.net+authority+cm"
     67virtual_id="ontime_nodebeacon2" virtualization_type="emulab-vnode" exclusive="1">
     68        <node_type type_name="pc" type_slots="1"/>
     69        <interface virtual_id="virt-1"/>
     70</node>
     71
     72<!-- Create link between root beacon located in Kansas to node beacon-1 located in  Washington -->
     73 <link virtual_id="root_beacon_to_node_beacon-1" link_type="ethernet">
     74    <interface_ref virtual_node_id="ontime_rootbeacon" virtual_interface_id="virt-0"/>
     75    <interface_ref virtual_node_id="ontime_nodebeacon1" virtual_interface_id="virt-0"/>
     76    <bandwidth>1000000</bandwidth>
     77  </link>
     78
     79
     80<!-- Create link between root beacon located in Kansas to node beacon-2 located in Utah -->
     81 <link virtual_id="root_beacon_to_node_beacon-2" link_type="ethernet">
     82    <interface_ref virtual_node_id="ontime_rootbeacon" virtual_interface_id="virt-1"/>
     83    <interface_ref virtual_node_id="ontime_nodebeacon2" virtual_interface_id="virt-1"/>
     84    <bandwidth>1000000</bandwidth>
     85  </link>
     86
     87</rspec>
     88}}}
     89
     90=== 4.2 ProtoGENI Cooked Mode Client ===
     91A tutorial for the Cooked Mode Client can be found at: http://www.flux.utah.edu/users/ricci/slides/gew-cf.pdf
     92We created a slice using the drag & drop features in the Cooked Mode Client GUI [https://www.emulab.net/clientui-alt.php3 link]. One advantage of using the Cooked Mode Client is that it is easy to add nodes and choose which operating system needs to be installed on the nodes. As shown in the [https://www.protogeni.net/trac/protogeni/wiki/CookedMode wiki], NS files can also be used for advanced node configurations, but we have not explored that feature yet. One problem we met relates to the case where only pcXXX nodes can be reserved using the Cooked Mode Client. We have not been able to reserve nodes at multiple locations due to lack of documentation available in the ProtoGENI wiki.
     93
     94[[Image(Screenshot1.png)]]
     95
     96The steps we used to successfully create a slice using the Cooked Mode Client are as follows:
     97 * Go to https://www.emulab.net/clientui-alt.php3 and login using Emulab user credentials
     98 * Drag & drop to create a slice topology
     99 * Change the node names
     100 * Choose the OS to be installed on the nodes
     101 * Click 'File – create new experiment'
     102 * Follow the on-screen instructions
     103
     104=== 4.3 Map Interface ===
     105
     106The [https://www.protogeni.net/trac/protogeni/wiki/MapInterface ProtoGENI Map Interface] can also be used to create a slice spanning several different component managers. However, we were unable to find detailed tutorials or documentation to debug some of the errors we observed.
     107
     108To use the Map Interface, a setup procedure needs to be done initially by following the [https://www.protogeni.net/trac/protogeni/wiki/FlashClientSetup wiki] instructions. Note that these instructions are for the 'Flash Client Interface' but they work for the 'Map Interface'.
     109
     110To create a ProtoGENI slice using the Map Interface, follow the below steps:
     111
     112 * Discover resources
     113
     114[[Image(Screenshot2.jpg)]]
     115
     116On opening the Map Interface, resources discovery will automatically start. Note that - sometimes one or two component managers will block the request queue. To unblock, open the console and cancel the blocked requests and start the queue again.
     117
     118 * Create a new slice
     119
     120[[Image(Screenshot3.jpg)]]
     121
     122After all the queued requests have finished, click the “work with slice” button. It will show the ProtoGENI slices you have previously created. Type a new slice name and click the 'create' button to create a new ProtoGENI slice.
     123
     124 * Create slivers
     125
     126[[Image(Screenshot4.png)]]
     127
     128Drag the resources and create the topology. Then, click the “create slivers”
     129
     130'''Note:''' Read the console messages
     131
     132 * At the time of this writing, the Map Interface does not process the component manager’s (CM) response very well. Sometimes the CM returns an error message when creating slivers, but the Map Interface gives a 'success message' to the user.
     133 * Open the console, and read the last response in the left column to make sure no error messages have been recorded.
     134
     135=== 4.4 Flash GUI Interface ===
     136The Flash GUI Interface wiki can be found at https://www.protogeni.net/trac/protogeni/wiki/FlashInterface
     137We were unable to create a slice using the Flash GUI Interface. Our sense is that this interface is legacy and
     138has been replaced by the Map Interface.
     139
     140=== 4.5 Emulab Java Client ===
     141Emulab Java Client wiki can be found at http://www.emulab.net/netlab/client.php3
     142We were unable to create a slice using the Emulab Java Client. Our sense is that this interface is legacy and
     143has been replaced by the Cooked Mode Client.
     144
     145
     146