Changes between Version 11 and Version 12 of Omni


Ignore:
Timestamp:
09/14/10 12:22:25 (9 years ago)
Author:
tmitchel@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Omni

    v11 v12  
    77known as the omnispec.  The Omni client can also communicate with
    88control frameworks in order to create slices, delete slices, and
    9 enumerate available GENI Aggregate Managers.
    10 Note that Omni also supports using control framework native RSpecs.
    11 
    12 To configure Omni, please copy src/omni_config or /etc/omni/templates/omni_config
    13 to your ~/.gcf directory and fill in the parameters for at least one control
     9enumerate available GENI Aggregate Managers.  Note that Omni also
     10supports using control framework native RSpecs.
     11
     12To configure Omni, please copy src/omni_config to your ~/.gcf
     13directory and fill in the parameters for at least one control
    1414framework.  The "omni" section should be filled in with the
    15 certificate and key that you use in your control framework.  Note that keys
    16 for the GCF framework are by default stored in ~/.gcf-servers. Embedded
     15certificate and key that you use in your control framework.  Note that
     16keys for the GCF framework are by default stored in ~/.gcf. Embedded
    1717comments describe the meaning of each field.
    1818
    19 The currently supported control frameworks are SFA, PG and GCF. OpenFlow
    20 Aggregate Managers are also supported.
     19The currently supported control frameworks are SFA (PlanetLab),
     20ProtoGENI and GCF. The currently supported aggregates are SFA,
     21ProtoGENI, OpenFlow and GCF.
    2122
    2223Omni performs the following functions:
    23  * Talks to each clearinghouse in its native API
     24 * Talks to each control framework in its native API
    2425 * Contacts Aggregate Managers via the GENI API
    25  * Converts RSpects into (and from) native RSpec form to  a common 'omnispec'.
     26 * Uses either native RSpecs or a common RSpec format called an
     27   omnispec.
     28
    2629
    2730== Omnispecs ==
    28 Each OmniResource has a name, a description, a type, booleans
    29 indicating whether the resource is allocated and whether the request
    30 wants to allocate it, and then hashes for options and misc fields.
     31
     32Each resource in an omnispec is referred to as an OmniResource. Each
     33OmniResource has a name, a description, a type, booleans indicating
     34whether the resource is allocated and whether the request wants to
     35allocate it, and then hashes for options and misc fields.
     36
    3137
    3238== Extending Omni ==
     39
    3340Extending Omni to support additional types of Aggregate Managers with
    34 different RSpec formats requires adding a new omnispec/rspec conversion file.
     41different RSpec formats requires adding a new omnispec/rspec
     42conversion file.
    3543
    3644Extending Omni to support additional frameworks with their own
    3745clearinghouse APIs requires adding a new Framework extension class.
    3846
     47
    3948== Omni workflow ==
     49
    4050 1. Pick a Clearinghouse you want to use. That is the control framework you
    41   will use.
    42 
    43  2. Be sure the appropriate section of omni config for your framework
    44   (sfa/gcf/pg) has appropriate settings for contacting that Clearinghouse,
    45   and user credentials that are valid for that Clearinghouse.
    46 
     51    will use.
     52 2. Be sure the appropriate section of omni config for your framework
     53    (sfa/gcf/pg) has appropriate settings for contacting that
     54    Clearinghouse, and user credentials that are valid for that
     55    Clearinghouse.
    4756 3. Run omni listresources > avail-resources.omnispec
    48   a. When you do this, Omni will contact your designated Clearinghouse, using
    49    your framework-specific user credentials.
    50   b. The clearinghouse will list the Aggregates it knows about. EG for GCF,
    51    the am_* entries in gcf_config. For SFA, it will
    52    return the contents of /etc/sfa/geni_aggregates.xml.
    53   c. Omni will then contact each of the Aggregates that the Clearinghouse
    54    told it about, and use the GENI AM API to ask each for its resources. Again,
    55    it will use your user credentials. So each Aggregate Manager must  trust the
    56    signer of your user credentials, in order for you to talk to it. This is why
    57    you add the CH certificate to /etc/sfa/trusted_roots or to the -r argument of
    58    your GCF gcf-am.py.
    59   d. Omni will then convert the proprietary RSPecs into a single 'omnispec'.
    60 
    61  4. Save this to a file. You can then edit this file to reserve resources, by changing
    62   'allocate: false' to 'allocate: true' wherever the resource is not already allocated
    63   ('allocated: true').
    64 
    65  5. Create a Slice.
    66   Slices are created at your Clearinghouse. Slices are named based on the
    67   Clearinghouse authority that signs for them. Using the shorthand (just
    68   the name of your slice within PG, for example) allows Omni to ensure
    69   your Slice is named correctly. So run: omni.py createslice MyGreatTestSlice
    70 
    71  6. Allocate your Resources
    72   Given a slice, and your edited omnispec file, you are ready to allocate
    73   resources by creating slivers at each of the Aggregate Managers.
    74   Omni will contact your Clearinghouse again, to get the credentials
    75   for your slice. It will parse your omnispec file, converting it back
    76   into framework specific RSpec format as necessary.
    77   It will then contact each Aggregate Manager in your
    78   omnispec where you are reserving resources, calling the GENI AM API
    79   CreateSliver call on each. It will supply your Slice Credentials
    80   (from the Clearinghouse) plus your own user certificate, and the RSpec.
    81 
    82   At this point, you have resources and can do your experiment.
    83 
    84  7. Renew or Delete
    85   After a while you may want to Renew your Sliver that is expiring, or
    86   Delete it. Omni will contact the Clearinghouse, get a list of all
    87   Aggregates, and invoke RenewSliver or DeleteSliver on each, for
    88   your slice name.
     57  a. When you do this, Omni will contact your designated
     58     Clearinghouse, using your framework-specific user credentials.
     59  b. The clearinghouse will list the Aggregates it knows about. EG for
     60     GCF, the am_* entries in gcf_config. For SFA, it will return the
     61     contents of /etc/sfa/geni_aggregates.xml.
     62  c. Omni will then contact each of the Aggregates that the
     63     Clearinghouse told it about, and use the GENI AM API to ask each
     64     for its resources. Again, it will use your user credentials. So
     65     each Aggregate Manager must trust the signer of your user
     66     credentials, in order for you to talk to it. This is why you add
     67     the CH certificate to /etc/sfa/trusted_roots or to the -r
     68     argument of your GCF gcf-am.py.  d. Omni will then convert the
     69     proprietary RSPecs into a single 'omnispec'.
     70 4. Save this to a file. You can then edit this file to reserve
     71    resources, by changing 'allocate: false' to 'allocate: true'
     72    wherever the resource is not already allocated ('allocated: true').
     73 5. Create a Slice. Slices are created at your Clearinghouse. Slices
     74    are named based on the Clearinghouse authority that signs for
     75    them. Using the shorthand (just the name of your slice within PG,
     76    for example) allows Omni to ensure your Slice is named
     77    correctly. So run: omni.py createslice MyGreatTestSlice
     78 6. Allocate your Resources. Given a slice, and your edited omnispec
     79    file, you are ready to allocate resources by creating slivers at
     80    each of the Aggregate Managers.  Omni will contact your
     81    Clearinghouse again, to get the credentials for your slice. It
     82    will parse your omnispec file, converting it back into framework
     83    specific RSpec format as necessary.  It will then contact each
     84    Aggregate Manager in your omnispec where you are reserving
     85    resources, calling the GENI AM API CreateSliver call on each. It
     86    will supply your Slice Credentials (from the Clearinghouse) plus
     87    your own user certificate, and the RSpec. At this point, you have
     88    resources and can do your experiment.
     89 7. Renew or Delete.  After a while you may want to Renew your Sliver
     90    that is expiring, or Delete it. Omni will contact the
     91    Clearinghouse, get a list of all Aggregates, and invoke
     92    RenewSliver or DeleteSliver on each, for your slice name.
    8993
    9094== Running Omni ==
     
    9498-c FILE -- location of your config file (default ~/.gcf/omni_config)
    9599
    96 -f FRAMEWORK -- control framework to use (e.g. my_sfa), overriding default
    97  in config file.  The framework is a section named in the config file.
     100-f FRAMEWORK -- control framework to use (e.g. my_sfa), overriding
     101default in config file.  The framework is a section named in the config file.
    98102
    99103--debug -- Enable debug output
     
    113117  omni_config.
    114118
     119
    115120==== deleteslice ====
    116121 * format:  omni.py deleteslice <slice-name>
     
    119124  Deletes the slice in your chosen control framework
    120125
     126
    121127==== getversion ====
    122128 * format:  omni.py getversion [-a AM-URL]
     
    124130  * omni.py getversion
    125131  * omni.py getversion -a http://localhost:12348
     132
    126133
    127134==== listresources ====
     
    167174  native rspec to a single aggregate specified by the "-a" command.
    168175
     176
    169177==== deletesliver ====
    170178 * format:  omni.py deletesliver [-a AM-URL] <slice-name>
     
    173181  * omni.py deletesliver -a http://localhost:12348 myslice
    174182
    175         This command will free any resources associated with your slice. 
     183  This command will free any resources associated with your slice. 
    176184
    177185
     
    183191  * omni.py renewsliver -a http://localhost:12348 myslice "12/12/10 16:15"
    184192
    185         This command will renew your resources at each aggregate up to the
    186         specified time.  This time must be less than or equal to the time
    187         available to the slice.
    188         Times are in UTC.
     193  This command will renew your resources at each aggregate up to the
     194  specified time.  This time must be less than or equal to the time
     195  available to the slice.  Times are in UTC.
    189196
    190197
     
    195202  * omni.py sliverstatus -a http://localhost:12348 myslice
    196203
    197         This command will get information from each aggregate about the
    198         status of the specified slice
     204  This command will get information from each aggregate about the
     205  status of the specified slice
    199206
    200207
     
    206213
    207214  This command will stop the resources from running, but not delete
    208         their state.  This command should not be needed by most users.
     215  their state.  This command should not be needed by most users.
    209216
    210217== Omnispecs ==