behind the scenes of geni experimentation featuring content centric networking
DESCRIPTION
Behind the Scenes of GENI Experimentation featuring Content Centric Networking. In Part 1 You Learned to…. Log into the GENI Portal. In Part 1 You Learned to…. Log into the GENI Portal Create a s lice. In Part 1 You Learned to…. Log into the GENI Portal Create a s lice - PowerPoint PPT PresentationTRANSCRIPT
Sponsored by the National Science Foundation
Behind the Scenes of GENI Experimentation
featuring Content Centric Networking
Sponsored by the National Science Foundation 2Understanding the AM API –June 23, 2014
In Part 1 You Learned to…
• Log into the GENI Portal
Sponsored by the National Science Foundation 3Understanding the AM API –June 23, 2014
• Log into the GENI Portal
• Create a slice
In Part 1 You Learned to…
Sponsored by the National Science Foundation 4Understanding the AM API –June 23, 2014
• Log into the GENI Portal
• Create a slice • Launch the Flack
experimenter tool
In Part 1 You Learned to…
Sponsored by the National Science Foundation 5Understanding the AM API –June 23, 2014
• Log into the GENI Portal
• Create a slice • Launch the Flack
experimenter tool• Set up a simple
experiment– Add resources to your
slice from an aggregate
– Use the resources in your slice
In Part 1 You Learned to…
Sponsored by the National Science Foundation 6Understanding the AM API –June 23, 2014
• Log into the GENI Portal
• Create a slice • Launch the Flack
experimenter tool• Set up a simple
experiment– Add resources to your
slice from an aggregate– Use the resources in
your slice
• Delete resources in your slice
In Part 1 You Learned to…
Sponsored by the National Science Foundation 7Understanding the AM API –June 23, 2014
In Part 2 You will Learn…
• What happens behind the scenes when you run an experiment on GENI
• New concepts:– GENI Resource Specifications
(RSpecs)– GENI Aggregate Manager API
(GENI AM API)
Sponsored by the National Science Foundation 8Understanding the AM API –June 23, 2014
Tutorial Objectives
• By the end of this tutorial you should:– Feel comfortable running experiments on GENI– Have a basic understanding of how GENI works
• Later exercises may skip some of the basic steps in this tutorial to focus on new material– You may be given an RSpec to use rather than have
you create one– You may use slices that have already been created and
resources added to them
For a description of the GENI concepts covered, see: http://groups.geni.net/geni/wiki/GENIConcepts
Sponsored by the National Science Foundation 9Understanding the AM API –June 23, 2014
GENI Resource Specifications (RSpecs)
• RSpecs are XML documents that describe resources– VMs, links, etc.
<?xml version="1.0" encoding="UTF-8"?><rspec type="request” xsi:schemaLocation="http://www.geni.net/resources/rspec/3 … xmlns="http://www.geni.net/resources/rspec/3"> <node client_id="server" component_manager_id="urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm”> <sliver_type name="emulab-openvz"/> <interface client_id="server:if0”> </interface> </node></rspec>
RSpec for a virtual machine with one interface:
Sponsored by the National Science Foundation 10Understanding the AM API –June 23, 2014
RSpecs
• RSpec documents are exchanged by experimenter tools (e.g. Flack) and aggregates– Aggregates use RSpecs to describe what they have –
Advertisement RSpecs – Experimenters use RSpecs to describe the resources
they want – Request RSpecs – Aggregates use RSpecs to describe the resources
allocated to an experimenter – Manifest RSpecs
Sponsored by the National Science Foundation 12Understanding the AM API –June 23, 2014
The GENI AM API
• Experimenter tools and aggregates talk to each other using the GENI Aggregate Manager API (GENI AM API)
AggregateManager
Exp
eri
me
nte
rTo
ol
ListResources(…)
Advertisement RSpec
CreateSliver(Request RSpec, …)
Manifest RSpec
ListResources(SliceName, …)
Manifest RSpec
What do you have?
I have …
I would like …
You have …
What do I have?
You have …
Sponsored by the National Science Foundation 13Understanding the AM API –June 23, 2014
Putting it all Together…
• Flack calls ListResources on all aggregates it knows about
• Aggregates send back advertisement RSpecs
• Flack uses information in the advertisements to populate its palette of resources
What do you have?
I have …
Sponsored by the National Science Foundation 14Understanding the AM API –June 23, 2014
Putting it all Together…
• When you drag and drop resources on to the Flack canvas, it creates request RSpecs for these resources– To view the request
Rspec click on “View” and select “Preview request documents”
• When you click “Submit”, Flack makes createSliver calls on the aggregates
I would like …
Sponsored by the National Science Foundation 15Understanding the AM API –June 23, 2014
Putting it all Together…
• Flack periodically calls sliverStatus on the aggregates to check on the status of your request
• When sliverStatus shows:– Resources have been
allocated, Flack turns its canvas yellow
– Resources are ready to use, Flack turns its canvas green
Sponsored by the National Science Foundation 16Understanding the AM API –June 23, 2014
Putting it all Together…
• ListResources with a slice name returns a manifest RSpec
• Manifest includes names and ports used to ssh into VMs– Flack uses this
information to help you log into your resources
What do I have?
You have …
Sponsored by the National Science Foundation 17Understanding the AM API –June 23, 2014
Putting it all Together…
• When you deleted your resources, Flack called deleteSliver on the aggregates
Sponsored by the National Science Foundation 18Understanding the AM API –June 23, 2014
Hands-On Exercise*
• Reinforce new concepts using a Future Internet Architecture (FIA) based experiment– New concepts: RSpecs and AM API
• Experiment uses a Content Centric Networking (CCN) architecture– CCN: Access information by name rather than by going
to a host that has that information• E.g. Ask for “forecast for Davis, CA” rather than going to
www.weather.com
* Based on a classroom exercise developed by Sonia Fahmy, Ethan Blanton & Sriharsha Gangam of Purdue U.; Christos Papadopoulos & Susmit Shannigrahi of Colorado State U.
Sponsored by the National Science Foundation 20Understanding the AM API –June 23, 2014
Omni: Resource Reservation tool
• A command line experimenter tool
• Useful for making AM API calls on aggregates
• Written in and scriptable from Python
• Works with aggregates that implement the GENI AM API – InstaGENI and ExoGENI
racks, ProtoGENI, PlanetLab, FOAM (OpenFlow AM)
$ omni.py createsliver aliceslice myRSpec.xml INFO:omni:Loading config file omni_config INFO:omni:Using control framework pgeni INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab. expires within 1 day on 2011-07-07 INFO:omni:Creating sliver(s) from rspec fileINFO:omni:Writing result of createsliver for INFO:omni:Writing to ‘aliceslice-manifest-rspeINFO:omni: -----------------------------------INFO:omni: Completed createsliver:
Options as run: aggregate: https://www.emulab. framework: pgeni native: True
Args: createsliver aliceslice myRSpec.xml
Result Summary: Slice urn:publicid:IDN+pgeniReserved resources on https://www.emulab.net/p Saved createsliver results to aliceslice-manINFO:omni: ===================================
http://trac.gpolab.bbn.com/gcf/wiki/Omni
Sponsored by the National Science Foundation 21Understanding the AM API –June 23, 2014
Omni Command Workflow
createslice
listmyslices
getversion
renewslice
createsliver
listresources
sliverstatus
deletesliver
Repeat for each aggregate
Repeat for each aggregate
CreateSlice
CreateSliver
Cleanup
Legend: AM API command
Sponsored by the National Science Foundation 22Understanding the AM API –June 23, 2014
GENI AM API Calls Used
• listresources: Get an advertisement rspec listing the resources at an aggregate
• createsliver: Request resources from an aggregate
• sliverstatus: Get status of resources allocated to a slice at an aggregate
• deletesliver: Delete resources allocated to a slice by an aggregate
For a complete list of GENI AM API calls see: http://groups.geni.net/geni/wiki/GAPI_AM_API
Sponsored by the National Science Foundation 23Understanding the AM API –June 23, 2014
Corresponding Omni Commands
omni –a aggregatename listresources
omni –a aggregatename createsliver slicename requestRSpec
omni –a aggregatename sliverstatus slicename
omni –a aggregatename listresources slicename
omni –a aggregatename deletesliver slicename
• A useful utility (distributed with Omni):
readyToLogin –a aggregatename slicename – Gives you the ssh commands you need to log into your nodes
• readyToLogin.py parses the output of listresources and sliverstatus to determine the hostname, port and username for the ssh commands
Sponsored by the National Science Foundation 24Understanding the AM API –June 23, 2014
Tutorial Structure
• Configure Omni (Step 2.2 of instructions)
• View and edit an RSpec using Flack (Steps 3.2 – 3.5)
• Request resources specified in RSpec using Omni (Step 3.6)
• When resources are ready, log into a node to run the CCN application (Step 5)
• (Optional) Visualize the experiment using the GENI Desktop and GEMINI– GENI Instrumentation and Measurement system– Tutorial on GENI Desktop/GEMINI Mon @ 1.30pm
Sponsored by the National Science Foundation 25Understanding the AM API –June 23, 2014
Tutorial Tips
• Cut-and-paste is your friend!– Cut-and-paste URLs, commands, etc. from instructions
into text boxes, terminal windows, etc
• If at any step you don’t understand why you are doing something, ask!
• If you fall behind, let us know!– We will help you catch up
Sponsored by the National Science Foundation 26Understanding the AM API –June 23, 2014
CONFIGURE OMNIStep 2.2
Sponsored by the National Science Foundation 27Understanding the AM API –June 23, 2014
Configuring Omni
• Omni reads a configuration file omni_config to:– Find locations of ssl certs and ssh key files
• ssl certs are used to secure communication between Omni and the aggregates
• ssh key pairs are used log into compute resources
– Find standard nicknames for aggregates• e.g. you can refer to the InstaGENI rack at NYSERNet as nysernet-ig
instead of
https://instageni.nysernet.org:12369/protogeni/xmlrpc/am
Sponsored by the National Science Foundation 28Understanding the AM API –June 23, 2014
Creating an Omni Config File
1. Download the GENI bundle from the GENI Portal
$ omni-configure
2. Run omni-configure in a terminal window
Sponsored by the National Science Foundation 29Understanding the AM API –June 23, 2014
VIEW AND EDIT RSPECSteps 3.2 – 3.5
Sponsored by the National Science Foundation 30Understanding the AM API –June 23, 2014
Tips
Remember cut-and-paste! Errors in URLs or other text boxeswill cause your experiment to fail
For this exercise, do not use Flack to submit your RSpec
Sponsored by the National Science Foundation 31Understanding the AM API –June 23, 2014
REQUEST RESOURCESStep 3.6
Sponsored by the National Science Foundation 32Understanding the AM API –June 23, 2014
Tips
• Successful return from Omni createsliver means your RSpec was submitted to the AM
• It does not mean:– The RSpec was correct– The resources are available
• Use readyToLogin to monitor your resources– Wait until the status turns to “ready” before using
Sponsored by the National Science Foundation 33Understanding the AM API –June 23, 2014
LEARN ABOUT CCNWhile we wait for our resources to become ready…
Sponsored by the National Science Foundation 34Understanding the AM API –June 23, 2014
Content Centric Networking… also known as Named Data Networking
PRINCIPLE
Focus on what you need; not on where you find it
TODAY
Must know the location of information (aka URL)– Search engines map the what to the where– Most Internet information look-ups start with search
engines
CCN (NDN)
• New network architecture reflects Internet usage• CCN protocols cache data at all network levels
– routers, hosts
Sponsored by the National Science Foundation 35Understanding the AM API –June 23, 2014
CCNX
• An implementation of CCN by Xerox PARC
• Our exercise uses CCNX software– Software runs on all nodes in our experiment– All nodes cache information that passes through them– When a node gets a data request it:
• Returns data from local cache, if available• Passes request to neighbor if data not in cache• Caches data returned by neighbor
http://www.ccnx.org
Sponsored by the National Science Foundation 36Understanding the AM API –June 23, 2014
Our Experiment
Data Source (dsrc1): Holds precipitation data from1 Jan 1901 to 31 Jan 1902 (data from NOAA)
Intermediate node (router). Requestsnot in local cache forwarded to data source.
Researcher (rschr) fetches precipitation data by name(e.g. precip data from 1901/01/01 to 1901/01/02). Requestsnot in local cache forwarded to router.
Collaborator (collab) also fetches data by name. Requestsnot in local cache forwarded to researcher.
Sponsored by the National Science Foundation 37Understanding the AM API –June 23, 2014
Our Experiment
• Log into the researcher node (rsrchr) and fetch data– Use a client program already installed on the node
• Installed using an install script in the RSpec
• Note how long it takes to get data• Fetch same data again and note time• If time permits
– Repeat the above at the collaborator node (collab)• Data is not in local cache but in rsrchr node cache
– Fetch new data at the collaborator node (collab)• Data is not in local cache or in rsrchr node cache
• Optional: Use GENI Desktop/GEMINI to view graphs of traffic on links– Helps visualize when data comes from a local cache and when it
comes from a neighbor
Sponsored by the National Science Foundation 38Understanding the AM API –June 23, 2014
RUN THE CCN APPLICATIONStep 5
Sponsored by the National Science Foundation 39Understanding the AM API –June 23, 2014
Tip
Cut-and-paste ssh command from readyToLogin into a terminal to log into the rsrchr node.
Example:$ ssh -p 32315 -i /Users/vthomas/.ssh/geni_key_portal [email protected]
Sponsored by the National Science Foundation 40Understanding the AM API –June 23, 2014
VISUALIZE EXPERIMENTOptional
Sponsored by the National Science Foundation 41Understanding the AM API –June 23, 2014
FINISHStep 7
Sponsored by the National Science Foundation 42Understanding the AM API –June 23, 2014
Finish
Don’t Delete YET!!!We will clean up after Part 3