Changes between Version 2 and Version 3 of PrimoGENIDesignDocument

12/30/09 01:29:15 (12 years ago)



  • PrimoGENIDesignDocument

    v2 v3  
    11= PrimoGENI Aggregate 1.0 Design Document =
    3 == Introduction ==
     3== 1.  Introduction ==
    5 === About This Document ===
     5=== 1.1 About This Document ===
    77This document describes the design of the PrimoGENI aggregate and how it will be integrated with the ProtoGENI control framework. The document will be used as a guideline for the implementation of the PrimoGENI aggregate, and as a baseline for the validation of its functionalities.
    1616This document shall be reviewed by the ProtoGENI cluster, GENI security team, GPO and any other interested parties. Feedbacks will be collected to improve the PrimoGENI design and implementation.
    18 === PrimoGENI Overview ===
     18=== 1.2 PrimoGENI Overview ===
    2020Simulation is effective for studying the behavior of large complex systems that are otherwise intractable to close-form mathematical/analytical solutions. Simulation can also offer scalability and flexibility beyond the capabilities of live experimentation and emulation. Real-time network simulation refers to simulation of potentially large-scale networks in real time so that the virtual network can interact with real implementations of network protocols, network services, and distributed applications. Real-time simulation supports network immersion, where a simulated network is made indistinguishable from a physical testbed in terms of conducting network traffic.
    2828 * An exploitation of the full potential of real-time simulation capabilities, with special emphasis on the design and implementation of PrimoGENI experiment workflow (including network model construction, resource specification, allocation and sharing), experiment monitoring, instrumentation and measurement capabilities.
    30 === PrimoGENI Design Goal ===
     30=== 1.3 PrimoGENI Design Goal ===
    3232Real-time simulation is aligned with the GENI concept of federating global physical/virtual resources as a shared experimental network infrastructure. Our immersive large-scale network simulator, PRIME, supports network experiments potentially with millions of simulated network entities (hosts, routers, and links) and thousands of emulated elements running unmodified network protocols and distributed applications/services.
    3838Our immediate goal is to allow interoperability with the ProtoGENI control framework and to provide experiment support to streamline potentially large-scale network experiments, including model configuration, resource specification, simulation deployment and execution, online monitoring and control, data collection, inspection, visualization and analysis.
    40 == PrimoGENI Design ==
     40== 2. PrimoGENI Design ==
    42 === Definitions ===
     42=== 2.1 Definitions ===
    4444 * '''Substrate''': physical facility on which PrimoGENI is operating; it describes the physical resources, layout and interconnection topology. PrimoGENI will be built on the ProtoGENI/Emulab facilities extended to allow real-time simulation and emulation.
    5454 * '''Aggregate manager and interface''': the PrimoGENI aggregate manages all resources, including meta resources controlled by and accessible in the ProtoGENI/Emulab suite, which includes cluster nodes, switches, and other resources, and virtual resources as exported by the PrimoGENI real-time simulation and emulation framework. It exports an aggregate interface as defined by the ProtoGENI control framework. PrimoGENI provides mechanisms for instantiating the virtual network onto the ProtoGENI/Emulab facilities as defined and configured by a slice.
    56 === Major Design Decisions ===
     56=== 2.2 Major Design Decisions ===
    5858PrimoGENI will be an aggregate consisting of both meta resources and virtual resources. That is, a sliver at the PrimoGENI aggregate will consist of virtual resources, i.e., the virtual network that includes both simulated elements (routers, hosts, links, and protocols) and emulated elements (hosts and routers running on virtual machines), and the associated meta resources that the virtual network is instantiated upon.
    6666PrimoGENI will provide an experiment control tool to streamline the "life cycle" of a GENI network experiment that involves PrimoGENI elements. The experiment control tool will help researchers with model construction, configuration, resource specification and assignment. It will include other function, such as model deployment, execution, online monitoring and control, experiment data collection, inspection, visualization and analysis, at a later design stage.
    68 === PrimoGENI System Architecture ===
     68=== 2.3 PrimoGENI System Architecture ===
    7070The following figure shows the PrimoGENI aggregate situated in the ProtoGENI control framework.
    9595Once the slivers are created and the slice is operational, researchers can run experiment on the '''experiment layer''' (logical). Researcher can log into individual emulated hosts, load software, and launch it. Traffic between the emulated hosts will be conducted on the virtual network. Traffic originated from or destined to other physical network entities will be redirected through the emulation gateway. Experiment data can be collected and viewed in real time on demand through the measurement facility (not shown). This functionality is expected to be added in the next design iteration.
    97 === Sliver ===
     97=== 2.4 Sliver ===
    9999A sliver in PrimoGENI consists of both meta resources and virtual resources.
    105105Once the resources are committed and the sliver created, researchers can directly log onto the emulated hosts (through SSH) to program, configure and conduct experiments.
    107 === Identification ===
     107=== 2.5 Identification ===
    109109Each identifiable GENI element has an associated GENI Identifier (GID). In ProtoGENI, GID is an SSL certificate with a distinguished name (DN) field that includes a human readable name (HRN), a UUID (which is a random number generated per X.667), and a user email address.
    111111While GIDs are used to identify various PrimoGENI aggregate elements as expected, we do not assign GIDs to virtual network elements for the obvious reason that this might hamper scalability of the simulator.  The entire virtual network is identified as a single GENI element. That is, the same certificate will be used to access all simulated and emulated elements. Within the virtual network, in order to for us to identify each network element (host, router, interface, link, subnetwork, or any functional unit inside a host or router, such as a protocol), we create a separate name space, which is intrinsic to the hierarchical nature of the virtual network. 
    113 === Resource Specification ===
     113=== 2.6 Resource Specification ===
    115115RSpec describes an aggregate/component in terms of the resources it possesses, and constraints and dependencies on the allocation of those resources. It is the mechanism for advertising, requesting, and describing the resources used by experimenters. We follow the same classification method defined by ProtoGENI, by dividing RSpec into three different closely related languages to address the three distinct purposes:
    118118 * '''Manifests''' provide useful information about the slivers actually allocated by the PrimoGENI aggregate to a client. This information may not be known until the slivers are actually created (i.e. dynamically assigned IP addresses, host names); also additional configuration options can be provided to a client. The PrimoGENI aggregate will also supply the researchers with the information about the emulated hosts for them to log onto the virtual machines.
    120 == Experiment Setup ==
     120== 3. Experiment Setup ==
    122 === Aggregate Registration ===
     122=== 3.1 Aggregate Registration ===
    124124PrimoGENI registers with the ProtoGENI clearinghouse.
    126 === Resource Discovery ===
     126=== 3.2 Resource Discovery ===
    128128Researcher gets a list of all physical resources -- whether or not they are currently available.
    130130Researcher gets a list of resources that are currently available to her and determines the virtual network (including both simulated and emulated elements) she wants to run on PrimoGENI, though an experiment support tool provided by PrimoGENI. The experiment support tool allows the research to configure the virtual network and helps map the virtual network onto the available physical resources. Once completed, the experiment support tool creates a request (RSpec).
    132 === Resource Authorization and Policy Implementation ===
     132=== 3.3 Resource Authorization and Policy Implementation ===
    134134Researcher sends the request to PrimoGENI aggregate manager.
    136136PrimoGENI aggregate manager decides to authorize the requested resources according to the local policy (currently admitting all) and issue a ticket to the researcher.
    138 === Resource Assignment ===
     138=== 3.4 Resource Assignment ===
    140140Researcher presents the ticket to PrimoGENI aggregate manager in an attempt to redeem the ticket.
    146146PrimoGENI informs the researcher (or the slice manager) of the status of the resource assignment through manifest.
    148 === Experiment Initiation ===
     148=== 3.4 Experiment Initiation ===
    150150Once the slice has been created successfully, the researcher can log into emulated hosts, load code, and run the experiment.