Selected Project Highlights: An Overview of Gush Jeannie Albrecht Williams College

Slides:



Advertisements
Similar presentations
OnTimeMeasure Integration with Gush Prasad Calyam, Ph.D. (PI) Paul Schopis, (Co-PI) Tony Zhu (Software Programmer) Alex Berryman (REU Student)
Advertisements

PlanetLab What is PlanetLab? A group of computers available as a testbed for computer networking and distributed systems research.
GENI Experiment Control Using Gush Jeannie Albrecht and Amin Vahdat Williams College and UC San Diego.
An Overview of Gush Jeannie Albrecht David Irwin
PlanetLab Operating System support* *a work in progress.
Sponsored by the National Science Foundation Lab Zero: A First Experiment.
1 Use ProtoGENI CS606, Xiaoyan Hong University of Alabama.
A Computation Management Agent for Multi-Institutional Grids
Networking Panel Jeannie Albrecht Williams College, Plush/Gush project Ivan Seskar Rutgers University, WINLAB/ORBIT project Steven Schwab Cobham Analytic.
Network Rspecs in PlanetLab and VINI Andy Bavier PL Developer's Meeting May 13-14, 2008.
Distributed Application Management Using PLuSH Jeannie Albrecht, Christopher Tuttle, Alex C. Snoeren, and Amin Vahdat UC San Diego CSE {jalbrecht, ctuttle,
1 PLuSH – Mesh Tree Fast and Robust Wide-Area Remote Execution Mikhail Afanasyev ‧ Jose Garcia ‧ Brian Lum.
Sponsored by the National Science Foundation An Introduction to GENI Tools Sarah Edwards GENI Project Office.
Using the jFed tool to experiment from zero to hero Brecht Vermeulen FGRE, July 7 th, 2015.
© 2010 VMware Inc. All rights reserved VMware ESX and ESXi Module 3.
1 Kyung Hee University Prof. Choong Seon HONG Network Control.
Customized cloud platform for computing on your terms !
Deploying Experiments with Raven Scott Baker SB-Software John H. Hartman University of Arizona.
Sponsored by the National Science Foundation Omni: a command line GENI resource reservation tool Niky Riga, Sarah Edwards GENI Project Office 13 March,
OnTimeMeasure Integration with Gush Prasad Calyam, Ph.D. (PI) Tony Zhu (Software Programmer) Alex Berryman (REU Student) GEC10 Selected.
Nimbus & OpenNebula Young Suk Moon. Nimbus - Intro Open source toolkit Provides virtual workspace service (Infrastructure as a Service) A client uses.
Andy Bavier, PlanetWorks Scott Baker, SB-Software July 27, 2011.
Using the jFed tool to experiment from zero to hero Brecht Vermeulen Thijs Walcarius GEC 22, March 24 th, 2015.
FTP Server and FTP Commands By Nanda Ganesan, Ph.D. © Nanda Ganesan, All Rights Reserved.
Computer Emergency Notification System (CENS)
Vagrant workflow Jul. 15, 2014.
Sponsored by the National Science Foundation 1 September 15, 2015 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you do the.
Sponsored by the National Science Foundation Behind the Scenes of GENI Experimentation An Introduction to GENI Tools Sarah Edwards, GENI Project Office.
Sponsored by the National Science Foundation GENI Exploring Networks of the Future
Sponsored by the National Science Foundation GENI Terminology: How All the Pieces Fit Together Sarah Edwards GENI Project Office.
Sponsored by the National Science Foundation 1 GREESC15– May 25, 2015 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you do.
Sponsored by the National Science Foundation Monitoring Demonstration Kevin Bohan, GMOC
Sponsored by the National Science Foundation Lab Zero: A First Experiment using GENI Sarah Edwards, GENI Project Office.
Sponsored by the National Science Foundation 1 Last updated April 1, 2013 Are you ready for the tutorial? 1.Sign In 2.Grab a Worksheet 3.Did you do the.
Sponsored by the National Science Foundation Tutorial: Introduction to Omni Niky Riga GENI Project Office GREESC13 $ omni.py createsliver aliceslice myRSpec.xml.
Sponsored by the National Science Foundation Getting Started With Your Own Experiment Sarah Edwards, GENI Project Office.
Integrating and Troubleshooting Citrix Access Gateway.
Sponsored by the National Science Foundation 1 ICDCS13: July 8, 2013 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you do the.
Sponsored by the National Science Foundation 1 GEC16: March 20, 2013 Are you ready for the tutorial? 1.Did you do the pre-work? A.Are you able to login.
Sponsored by the National Science Foundation Lab Zero: A First Experiment using GENI.
LAMP: Bringing perfSONAR to ProtoGENI Martin Swany.
Sponsored by the National Science Foundation Understanding the AM API through a simple Hadoop experiment.
Jini Architecture Introduction System Overview An Example.
How to Deploy and Configure the Smart Net Total Care CSPC Collector
Sponsored by the National Science Foundation 1 GREE SC: June 24, 2013 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you do.
Sponsored by the National Science Foundation GENI Aggregate Manager API Tom Mitchell March 16, 2010.
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
Behind the Scenes of GENI Experimentation Understanding GENI AM API and RSpec Sponsored by the National Science Foundation
Upcoming GENI Architecture Topics: The Future of Experiment Management with Gush Jeannie Albrecht David Irwin.
Sponsored by the National Science Foundation Behind the Scenes of GENI Experimentation An Introduction to GENI Tools Sarah Edwards, GENI Project Office.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Sponsored by the National Science Foundation Lab Zero: A First Experiment using GENI Sarah Edwards GENI Project Office.
Sponsored by the National Science Foundation Today’s Exercise.
Status & development of the software for CALICE-DAQ Tao Wu On behalf of UK Collaboration.
Experimental Control Tools for ORCA Control Framework Anirban Mandal Renaissance Computing Institute (RENCI)
Sponsored by the National Science Foundation Behind the Scenes of GENI Experimentation An Introduction to GENI Tools Sarah Edwards GENI Project Office.
Sponsored by the National Science Foundation Behind the Scenes of GENI Experimentation featuring Content Centric Networking.
Current GEMINI use of instrumentize script to initialize & configure services Hussam Nasir University of Kentucky.
Sponsored by the National Science Foundation Understanding the AM API through a simple Hadoop experiment.
Libvirt management Andrea Chierici Virtualization tutorial Catania 1-3 dicember 2010.
Sponsored by the National Science Foundation Click Software Routers Sarah Edwards GENI Project Office.
Claudio Grandi INFN Bologna Virtual Pools for Interactive Analysis and Software Development through an Integrated Cloud Environment Claudio Grandi (INFN.
Designing a Federated Testbed as a Distributed System Robert Ricci, Jonathon Duerig, Gary Wong, Leigh Stoller, Srikanth Chikkulapelly, Woojin Seok 1.
Sponsored by the National Science Foundation GENI Terminology Sarah Edwards, GENI Project Office Violet Syrotiuk, Arizona State University.
Sponsored by the National Science Foundation 1 GEC16: March 19, 2013 Are you ready for the tutorial? 1.Sign In 2.Grab a Worksheet 3.Did you do the pre-work?
VMware ESX and ESXi Module 3.
Using the jFed tool to experiment from zero to hero
Understanding the AM API through a simple experiment
Oracle Solaris Zones Study Purpose Only
GENI Exploring Networks of the Future
Presentation transcript:

Selected Project Highlights: An Overview of Gush Jeannie Albrecht Williams College

Project Overview How do experimenters actually use GENI? Goal: Develop abstractions and tools for addressing the challenges of managing distributed applications on GENI Make it easy for a range of users to run experiments on GENI Strategy Make minimal assumptions about resources and allocations Leverage other services to locate resources/obtain credentials Interface with other user tools to improve functionality Hide complexity and use one common user interface to interact with different CFs (i.e., PlanetLab, ProtoGENI, ORCA)

Describe Application Acquire Resources Configure Resources Start Application Monitor Application Cleanup Gush A distributed application management infrastructure Designed to simplify deployment of distributed applications Provides abstractions for configuration and management Allows users to “remotely control” GENI resources running experiments Describe Application Acquire Resources Configure Resources Start Application Monitor Application Cleanup

Step 1: Describe Application Describe experiment using application “building blocks” Create customized control flow for distributed applications Application specification blocks are described using XML Application Block Component Block 1 SendersComponent Block 2 Receivers Process Block 1 Prepare Files Process Block 2 Join Network Process Block 3 Send Files Barrier Block 1 Phase 1 Barrier Process Block 1 Join Network Process Block 2 Receive Files Barrier Block 1 Phase 1 Barrier

Step 1: App Spec software.tar 20 cat software.txt SOFTWARE DEFINE RESOURCE POOL(S) DEFINE PROCESSES (EXECUTION)

I/O and Timers Communication Fabric Host Monitor Barriers File Manager Processe s Process Mon Resource Discovery and Acquisition Process Block Workflow Block Component Block Application Block Software Resource Manager User Interface Barrier Block Gush Internal Structure

Step 2: Acquire Resources Gush supports experimentation with PlanetLab, ProtoGENI, and ORCA resources How can we find “good” resources? We may want machines with specific characteristics Reserve machines a priori with specific characteristics on ProtoGENI and ORCA Use SWORD ( on PlanetLab to find “good” machines (see Gush wiki for more info) Describe Application Acquire Resources Configure Resources Start Application Monitor Application Cleanup

Gush Resource Directory PlanetLab ProtoGENI Note: ProtoGENI and ORCA slivers must be created BEFORE starting Gush! ORCA

Leveraging Omni When Gush controller starts, it parses resource directory Controller contacts (via XML-RPC) each aggregate manager (AM) specified using common GENI API Gush uses a modified omni client and the “sliverstatus” option Hides CF-specific nuances and differences from experimenters Parses (very different!) output from each AM and creates Gush resource pool…

Sliver at {'geni_resources': [{'geni_error': '', 'geni_status': 'ready', 'geni_urn': 'urn:publicid:IDN+plc:williams+sliver+gush2:22629:10859:0', 'pl_boot_state': 'boot', 'pl_hostname': 'planetlab2.williams.edu', 'pl_last_contact': 'Mon Jul 25 21:03: '}, {'geni_error': '', 'geni_status': 'ready', 'geni_urn': 'urn:publicid:IDN+plc:williams+sliver+gush2:22629:11060:0', 'pl_boot_state': 'boot', 'pl_hostname': 'planetlab5.williams.edu', 'pl_last_contact': 'Mon Jul 25 21:01: '}, {'geni_error': '', 'geni_status': 'ready', 'geni_urn': 'urn:publicid:IDN+plc:williams+sliver+gush2:22629:10860:0', 'pl_boot_state': 'boot', 'pl_hostname': 'planetlab3.williams.edu', 'pl_last_contact': 'Mon Jul 25 20:57: '}, {'geni_error': '', 'geni_status': 'ready', 'geni_urn': 'urn:publicid:IDN+plc:williams+sliver+gush2:22629:11059:0', 'pl_boot_state': 'boot', 'pl_hostname': 'planetlab4.williams.edu', 'pl_last_contact': 'Mon Jul 25 21:01: '}, {'geni_error': '', 'geni_status': 'ready', 'geni_urn': 'urn:publicid:IDN+plc:williams+sliver+gush2:22629:10858:0', 'pl_boot_state': 'boot', 'pl_hostname': 'planetlab1.williams.edu', 'pl_last_contact': 'Mon Jul 25 12:30: '}], 'geni_status': 'ready', 'geni_urn': 'urn:publicid:IDN+plc:williams+slice+gush2', 'pl_expires': 'Thu Aug 25 13:41: ', 'pl_login': 'williams_gush2'} PlanetLab

Sliver at {'geni_resources': [{'geni_error': '', 'geni_status': 'changing', 'geni_urn': 'urn:publicid:IDN+emulab.net+sliver+45994', 'pg_manifest': {'attributes': {'component_manager_urn': 'urn:publicid:IDN+emulab.net+authority+cm', 'component_manager_uuid': '28a10955-aa00-11dd-ad1f e453fe', 'component_urn': 'urn:publicid:IDN+emulab.net+node+pc44', 'component_uuid': 'de9875c1-773e-102b-8eb e453fe', 'exclusive': 1, 'hostname': 'pc44.emulab.net', 'sliver_urn': 'urn:publicid:IDN+emulab.net+sliver+45994', 'sliver_uuid': '19a4884f-b723-11e0-b47a e453fe', 'sshdport': 22, 'virtual_id': 'geni1', 'virtualization_subtype': 'raw', 'virtualization_type': 'emulab-vnode', 'xmlns': ' 'children': [{'attributes': {'name': 'urn:publicid:IDN+emulab.net+image+emulab-ops//FEDORA10-STD'}, 'children': [], 'name': 'disk_image'}, {'attributes': {}, 'children': [{'attributes': {'authentication': 'ssh-keys', 'hostname': 'pc44.emulab.net', 'port': 22, 'username': 'jeannie'}, 'children': [], 'name': 'login'}], 'name': 'services'}], 'name': 'node'}, 'pg_status': 'changing’}], 'geni_status': 'unknown', 'geni_urn': 'urn:publicid:IDN+emulab.net+slice+gush-jeannie', 'pg_expires': ' :02:41', 'pg_status': 'changing'} ProtoGENI

Sliver at ' ************************************************************* [ Reservation UID: b39ca6b3-e332-43d5-98fd-c96c8a5c8821 | Resource Type: renci.vm | Units: 1 | Status: Active | Notices: Reservation b39ca6b3-e d5-98fd-c96c8a5c8821 (Slice urn:publicid:IDN+emulab.net+slice+gush-orca-jeannie) is in state [Active,None]; ] [ Manifest properties: {unit.id = 61f548fe-41fe-45ad-a48e-e82e2553a87e} {unit.manage.port = 6002} {unit.manage.ip = } {unit.state = 2} {unit.domain = rencivmsite} {unit.actorid = cc d46d-423a-a3d b81c596} {unit.cpu = 1.2} {unit.sliceid = b9a97509-b83a-489b-a b3b3bb63} {unit.resourceType = renci.vm} {unit.sequence = 2} {unit.rid = b39ca6b3-e332-43d5-98fd-c96c8a5c8821} {unit.ec2.instance = i-3C3A071F} {unit.hostname.url = {unit.memory = 1.7} {unit.ndl.adomain = <rdf:RDF xmlns:rdf=" xmlns:j.0=" xmlns:j.2=" xmlns:j.1=" xmlns:owl=" xmlns:xsd=" xmlns:j.4=" xmlns:j.3=" xmlns:rdfs=" xmlns:j.5=" > ORCA

eth1 ge-0/0/[0-9] ORCA

ORCA

ORCA

true } ] Overall Sliver Status: ready' ORCA

Parsed Output :41: :02: :52:43

Step 3: Configure Resources Connect to and configure selected resources Controller connects to and “remotely controls” the Gush clients on the experimenter’s behalf Controller SSHs to resource, installs Gush client and other software as needed, starts client, client makes TCP connection to controller Client Describe Application Acquire Resources Configure Resources Start Application Monitor Application Cleanup Controller

Client Step 4: Start Application Controller issues commands to clients telling them to start running applications/experiments Senders begin running sender processes Receivers begin running receiver processes Client Controller Describe Application Acquire Resources Configure Resources Start Application Monitor Application Cleanup Client

Step 5: Monitor Application We want to make sure the processes keep running Clients monitor experiment processes for failures If a failure is detected, client notifies controller Controller may tell client to restart failed process, or find new resource Describe Application Acquire Resources Configure Resources Start Application Monitor Application Cleanup Client Controller Process failed! Restart process/Find new host.

Client Step 6: Cleanup Gush clients make sure all programs exited cleanly Remove logs and software from remote machines (optional) Disconnect clients from controller Describe Application Acquire Resources Configure Resources Start Application Monitor Application Cleanup Controller

Gush in Action gush> load tests/simple.xml Project "simple" is selected. Experiment "simple" is selected. gush> run Starting experiment run. Running experiment simple... gush> The configuration matcher has finished matching. The resource allocator has finished successfully. has joined the mesh. The file transfer of Package to planetlab1.williams.edu has been completed. The software installation of Package on planetlab1.williams.edu was successful. has joined the mesh. The file transfer of Package to planetlab2.williams.edu has been completed. The software installation of Package on planetlab2.williams.edu was successful. Hello World Hello World The experiment has ended. gush> disconnect has decided to leave the mesh. has decided to leave the mesh. gush> quit Recall our simple app spec…

Nebula Nebula (GUI) allows users to describe, run, monitor, & visualize applications XML-RPC interface for managing applications programmatically

Gush XML-RPC Interface class GushXmlRpcServer extends XmlRpcServer { void GushAddNode(HashMap properties); void GushRemoveNode(string hostname); void GushCreateResources(); void GushLoadApp(string filename); void GushRunApp(); void GushDisconnectApp(string hostname); void GushQuit(); void GushFailHost(string hostname); void setXmlRpcClientUrl(string clientUrl); } XML-RPC API allows programmatic access to Gush functions External services (including SWORD) use XML-RPC to add and remove resources from Gush resource pool Other Gush user interfaces (including Nebula) run applications using XML-RPC

Thank you! For more info: