Changes between Version 11 and Version 12 of Omni
- Timestamp:
- 09/14/10 12:22:25 (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Omni
v11 v12 7 7 known as the omnispec. The Omni client can also communicate with 8 8 control frameworks in order to create slices, delete slices, and 9 enumerate available GENI Aggregate Managers. 10 Note that Omni alsosupports using control framework native RSpecs.11 12 To configure Omni, please copy src/omni_config or /etc/omni/templates/omni_config13 to your ~/.gcfdirectory and fill in the parameters for at least one control9 enumerate available GENI Aggregate Managers. Note that Omni also 10 supports using control framework native RSpecs. 11 12 To configure Omni, please copy src/omni_config to your ~/.gcf 13 directory and fill in the parameters for at least one control 14 14 framework. The "omni" section should be filled in with the 15 certificate and key that you use in your control framework. Note that keys16 for the GCF framework are by default stored in ~/.gcf-servers. Embedded15 certificate and key that you use in your control framework. Note that 16 keys for the GCF framework are by default stored in ~/.gcf. Embedded 17 17 comments describe the meaning of each field. 18 18 19 The currently supported control frameworks are SFA, PG and GCF. OpenFlow 20 Aggregate Managers are also supported. 19 The currently supported control frameworks are SFA (PlanetLab), 20 ProtoGENI and GCF. The currently supported aggregates are SFA, 21 ProtoGENI, OpenFlow and GCF. 21 22 22 23 Omni performs the following functions: 23 * Talks to each c learinghousein its native API24 * Talks to each control framework in its native API 24 25 * 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 26 29 27 30 == 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 32 Each resource in an omnispec is referred to as an OmniResource. Each 33 OmniResource has a name, a description, a type, booleans indicating 34 whether the resource is allocated and whether the request wants to 35 allocate it, and then hashes for options and misc fields. 36 31 37 32 38 == Extending Omni == 39 33 40 Extending Omni to support additional types of Aggregate Managers with 34 different RSpec formats requires adding a new omnispec/rspec conversion file. 41 different RSpec formats requires adding a new omnispec/rspec 42 conversion file. 35 43 36 44 Extending Omni to support additional frameworks with their own 37 45 clearinghouse APIs requires adding a new Framework extension class. 38 46 47 39 48 == Omni workflow == 49 40 50 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. 47 56 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. 89 93 90 94 == Running Omni == … … 94 98 -c FILE -- location of your config file (default ~/.gcf/omni_config) 95 99 96 -f FRAMEWORK -- control framework to use (e.g. my_sfa), overriding default97 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 101 default in config file. The framework is a section named in the config file. 98 102 99 103 --debug -- Enable debug output … … 113 117 omni_config. 114 118 119 115 120 ==== deleteslice ==== 116 121 * format: omni.py deleteslice <slice-name> … … 119 124 Deletes the slice in your chosen control framework 120 125 126 121 127 ==== getversion ==== 122 128 * format: omni.py getversion [-a AM-URL] … … 124 130 * omni.py getversion 125 131 * omni.py getversion -a http://localhost:12348 132 126 133 127 134 ==== listresources ==== … … 167 174 native rspec to a single aggregate specified by the "-a" command. 168 175 176 169 177 ==== deletesliver ==== 170 178 * format: omni.py deletesliver [-a AM-URL] <slice-name> … … 173 181 * omni.py deletesliver -a http://localhost:12348 myslice 174 182 175 183 This command will free any resources associated with your slice. 176 184 177 185 … … 183 191 * omni.py renewsliver -a http://localhost:12348 myslice "12/12/10 16:15" 184 192 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. 189 196 190 197 … … 195 202 * omni.py sliverstatus -a http://localhost:12348 myslice 196 203 197 198 204 This command will get information from each aggregate about the 205 status of the specified slice 199 206 200 207 … … 206 213 207 214 This command will stop the resources from running, but not delete 208 215 their state. This command should not be needed by most users. 209 216 210 217 == Omnispecs ==