Differences

This shows you the differences between two versions of the page.

Link to this comparison view

public:experimenters:start [2014/01/17 10:33]
ibaldin
public:experimenters:start [2017/10/19 09:31] (current)
ibaldin [Selecting which ORCA actor to request resources from]
Line 4: Line 4:
 Various GENI aggregates are managed by different control framework software elements, e.g. ProtoGENI/Emulab, PlanetLab, Orca, FOAM etc. Various GENI aggregates are managed by different control framework software elements, e.g. ProtoGENI/Emulab, PlanetLab, Orca, FOAM etc.
  
-ExoGENI is managed through a combination of [[:public:software:start |control framework software]], namely [[https://geni-orca.renci.org| Orca]] and [[http://groups.geni.net/geni/wiki/OpenFlow/FOAM |FOAM]]. Orca is used to create integrated slices of compute elements and Layer2 links with optional OpenFlow integration. FOAM is used to manage standalone OpenFlow experiments. One of the critical aspects of ExoGENI is that it can be viewed both as a //collection of independently-managed racks, as well as a single aggregate, capable of creating complex inter-rack topologies//. +ExoGENI is managed through a combination of [[:public:software:start |control framework software]], namely [[https://geni-orca.renci.org| Orca]] and [[http://groups.geni.net/geni/wiki/OpenFlow/FOAM |FOAM]]. Orca is used to create integrated slices of compute elements and Layer2 links with optional OpenFlow integration. FOAM is used to manage standalone OpenFlow experiments. One of the critical aspects of ExoGENI is that it can be viewed both as a //[[public:experimenters:topology | collection of independently-managed racks, as well as a single aggregate]], capable of creating complex inter-rack topologies//. 
  
 ExoGENI offers two basic classes of compute slivers: [[public:experimenters:resource_types:start | VMs and bare-metal servers]]. VMs are offered in a number of subclasses, which differ from one another by the number of CPU cores, amount of RAM and amount of disk made available in each; VM classification is based on the EC2 instance type hierarchy adapted to the ExoGENI hardware and OpenStack.   ExoGENI offers two basic classes of compute slivers: [[public:experimenters:resource_types:start | VMs and bare-metal servers]]. VMs are offered in a number of subclasses, which differ from one another by the number of CPU cores, amount of RAM and amount of disk made available in each; VM classification is based on the EC2 instance type hierarchy adapted to the ExoGENI hardware and OpenStack.  
  
-VM [[public:experimenters:images | images]] can be built by experimenters off-line (e.g. using the ExoGENI image [[public:experimenters:playpen | playpen]]). In contrast, a limited number of bare-metal images is periodically synchronized out-of-band between the racks and a central repository. These are provided as-is, with no customization options, other than post-installing needed packages in a booted sliver.+VM [[public:experimenters:images | images]] can be built by experimenters off-line. In contrast, a limited number of bare-metal images is periodically synchronized out-of-band between the racks and a central repository. These are provided as-is, with no customization options, other than post-installing needed packages in a booted sliver.
  
 Experimental slices can have complex topologies of compute instances/slivers that span one or more ExoGENI (and non-ExoGENI) sites. Experimenters can get resources from [[public:experimenters:orca_sm|specific racks]], however the true power of ExoGENI is in the ability to automatically tie resources of multiple racks in Layer2 topologies. This is accomplished by submitting slice requests to [[public:experimenters:orca_sm|ExoSM]]. Experimental slices can have complex topologies of compute instances/slivers that span one or more ExoGENI (and non-ExoGENI) sites. Experimenters can get resources from [[public:experimenters:orca_sm|specific racks]], however the true power of ExoGENI is in the ability to automatically tie resources of multiple racks in Layer2 topologies. This is accomplished by submitting slice requests to [[public:experimenters:orca_sm|ExoSM]].
Line 26: Line 26:
   - ExoGENI offers two broad categories of compute nodes. You can get [[:public:experimenters:resource_types:start | KVM virtual machines]] of multiple sizes and [[:public:experimenters:resource_types:start | bare-metal nodes]]. This contrasts with e.g. OpenVZ or other container types available in other testbeds. Compute instances in ExoGENI can behave differently, than in other testbeds    - ExoGENI offers two broad categories of compute nodes. You can get [[:public:experimenters:resource_types:start | KVM virtual machines]] of multiple sizes and [[:public:experimenters:resource_types:start | bare-metal nodes]]. This contrasts with e.g. OpenVZ or other container types available in other testbeds. Compute instances in ExoGENI can behave differently, than in other testbeds 
      * They are well-isolated from other slices and represent completely separate compute nodes with their own operating system, on which the slice owner is root.      * They are well-isolated from other slices and represent completely separate compute nodes with their own operating system, on which the slice owner is root.
-     * Command-line reboots are not guaranteed to succeed (however they do if no errors in boot process are present). 
   - ExoGENI does not oversubscribe its resources: each rack site has a certain number of CPU cores dedicated to launching virtual machines. Each VM can have [[:public:experimenters:resource_types:start | multiple cores]]. When all the cores in the rack are exhausted, no more compute instances can be created on this rack. This is done to improve performance isolation between experiments.   - ExoGENI does not oversubscribe its resources: each rack site has a certain number of CPU cores dedicated to launching virtual machines. Each VM can have [[:public:experimenters:resource_types:start | multiple cores]]. When all the cores in the rack are exhausted, no more compute instances can be created on this rack. This is done to improve performance isolation between experiments.
-  - ExoGENI is a [[:public:experimenters:images | 'Bring Your Own Image' (BYOI) testbed]]. You can build your own image outside the testbed, post it on any webserver, create an image description file and launch your slice with this image. ExoGENI **does not have its own image hosting service**. While we offer a number of images to the community, these are merely examples. We encourage experimenters to build their own images, upload them to their own webservers and [[public:experimenters:images | list them with us]]. +  - ExoGENI is a [[:public:experimenters:images | 'Bring Your Own Image' (BYOI) testbed]]. You can build your own image outside the testbed, post it on any webserver (or use Dropbox), create an image description file and launch your slice with this image. ExoGENI **does not have its own image hosting service**. While we offer a number of images to the community, these are merely examples. We encourage experimenters to build their own images, upload them to their own webservers and [[public:experimenters:images | list them with us]]. 
       * Compute images from other testbeds generally are not portable to ExoGENI.       * Compute images from other testbeds generally are not portable to ExoGENI.
-      * There is no ability to save an image of a running compute instance. Instead ExoGENI offers a separate [[:public:experimenters:playpen playpen]] for building and testing your images, if you need itAccess to playpen is not required to build an image, as it can be done on any linux computer, however it may help debug stubborn boot problems+      * ExoGENI offers [[http://www.exogeni.net/2014/06/creating-a-custom-image-from-an-existing-virtual-machine/ scripts to snapshot the running VM]] (or even a [[http://www.exogeni.net/2014/07/creating-a-custom-exogeni-image-using-virtual-box/ | VirtualBox VM]]) that you can then retrieve and turn into a new image
       * Once the image is built, it can be used across the entire testbed - there is no association between images and ExoGENI sites.       * Once the image is built, it can be used across the entire testbed - there is no association between images and ExoGENI sites.
   - ExoGENI is designed as Infrastructure-as-a-Service testbed, on which experiments act as applications. This means that the default behavior of ExoGENI slivers are minimal. ExoGENI tries not to make any assumptions about what elements of the slice should or should not do and leaves it up to experimenter tools to configure the correct behavior. Common examples of differences with other testbeds include:   - ExoGENI is designed as Infrastructure-as-a-Service testbed, on which experiments act as applications. This means that the default behavior of ExoGENI slivers are minimal. ExoGENI tries not to make any assumptions about what elements of the slice should or should not do and leaves it up to experimenter tools to configure the correct behavior. Common examples of differences with other testbeds include:
Line 57: Line 56:
  
 Feature comparison matrix Feature comparison matrix
-^ Feature ^ Flukes ^ Omni ^ Flack ^ GENI Portal|+^ Feature ^ Flukes ^ Omni ^ Flack/Jacks ^ GENI Portal|
 |Installation | JNLP (downloadable), requires Java | Requires Python | Browser-based (Flash)| Browser-based (Flash) | |Installation | JNLP (downloadable), requires Java | Requires Python | Browser-based (Flash)| Browser-based (Flash) |
 |Interface | Graphical | Command-line | Graphical | Graphical | |Interface | Graphical | Command-line | Graphical | Graphical |
Line 65: Line 64:
 |ExoGENI any-to-any VLAN stitching between racks | Yes | Yes | Yes | Yes | |ExoGENI any-to-any VLAN stitching between racks | Yes | Yes | Yes | Yes |
 |[[https://geni-orca.renci.org/trac/wiki/flukes#Nodes | ExoGENI nodegroups]] | Yes | No | No | No | |[[https://geni-orca.renci.org/trac/wiki/flukes#Nodes | ExoGENI nodegroups]] | Yes | No | No | No |
-|[[ https://geni-orca.renci.org/trac/wiki/flukes#Slicemodifications | ExoGENI slice modify]] | Yes | No | No | No | +|[[ http://www.exogeni.net/2016/01/using-exogeni-slice-modifydynamic-slice-capabilities/ | ExoGENI slice modify]] | Yes | No | No | No | 
-|[[ https://geni-orca.renci.org/trac/wiki/velocity-templates | ExoGENI templated post-boot scripts]] | Yes | Yes ((manual rspec edits and using <pbs:services_post_boot_script type="velocity"> service)) | Partial (('execute' service allows for variable substitutions, but does not allow macros and automatic code generation)) | Partial (('execute' service allows for variable substitutions, but does not allow macros and automatic code generation)) |+|[[ http://www.exogeni.net/2016/11/using-exogeni-slice-stitching-capabilities/ | Using ExoGENI Slice-to-slice Stitching capabilities]]| Yes | No | No | No | 
 +|[[ https://geni-orca.renci.org/trac/wiki/velocity-templates | ExoGENI templated post-boot scripts]] | Yes | Yes ((manual rspec edits and using <pbs:services_post_boot_script type="velocity"> service)) | Partial (('execute' service allows for variable substitutions, but does not allow macros and automatic code generation)) | Partial (('execute' service applied in ExoGENI allows for variable substitutions, but does not allow macros and automatic code generation)) |
 |[[https://geni-orca.renci.org/trac/wiki/flukes#StitchPorts | Stitching to campus networks ]] | Yes | No | No | No | |[[https://geni-orca.renci.org/trac/wiki/flukes#StitchPorts | Stitching to campus networks ]] | Yes | No | No | No |
-|Storage slivering | Yes | No | No | No |+|Storage slivering ((creating slivers of up to several TB of iSCSI storage in your slice)) | Yes | No | No | No |
 |Multi-point Layer2 Connections | Yes | Partial((It is possible to express a request in RSpec for a multipoint connection, but it is not possible to produce a manifest)) | No | No | |Multi-point Layer2 Connections | Yes | Partial((It is possible to express a request in RSpec for a multipoint connection, but it is not possible to produce a manifest)) | No | No |
 |Automatic IP address assignment | Yes | No | No ((InstaGENI and Emulab substrates are capable of automatic IP address assignment, however it is not the function of Flack.))  | No | |Automatic IP address assignment | Yes | No | No ((InstaGENI and Emulab substrates are capable of automatic IP address assignment, however it is not the function of Flack.))  | No |
Line 105: Line 105:
 ===== Selecting which ORCA actor to request resources from ===== ===== Selecting which ORCA actor to request resources from =====
  
-ORCA actors named 'SM' (Service Manager) are available from [[public:experimenters:orca_sm | multiple locations]]. They implement the same logic and present similar API (ORCA native API, usable by Flukes and GENI AM API, usable by Omni and Flack), but have different levels of resource visibility. Each rack presents an SM actor that has visibility only for the resources in that rack. An actor called 'ExoSM' has global visibility across all racks and all interconnecting networks between them. +ORCA controllers, to which slice requests can be submitted are available from [[public:experimenters:orca_sm | multiple locations]]. They implement the same logic and present similar API (ORCA native API, usable by Flukes and GENI AM API, usable by Omni and GENI Portal/Jacks), but have different levels of resource visibility. Each rack presents a controller that has visibility only for the resources in that rack. An actor called 'ExoSM' has global visibility across all racks and all interconnecting networks between them. 
  
-Rack SMs can create topologies only within a single rack. ExoSM can create topologies consisting of resources from many ExoGENI racks. Bare-metal nodes are available only through ExoSM. +Rack controllers can create topologies only within a single rack. ExoSM can create topologies consisting of resources from many ExoGENI racks. Bare-metal nodes are available only through ExoSM. 
  
 Reasons to use ExoSM: Reasons to use ExoSM:
-  * You have a topology in mind that needs multiple racks. ORCA native stitching will connect racks together (Note that due to physical connectivity limitations you can connect RCI and Duke rack to any other rack, however general inter-rack reachability is not guaranteed. This will be remedied in the Spring of 2013.).+  * You have a topology in mind that needs multiple racks. ORCA native stitching will connect racks together.
   * You need a topology that includes bare metal nodes   * You need a topology that includes bare metal nodes
   * You have a single-rack topology in mind and either   * You have a single-rack topology in mind and either
Line 120: Line 120:
   * There are no resources available from ExoSM   * There are no resources available from ExoSM
   * You have a complex topology in mind, but you wish to use GENI stitching instead of ORCA's native slice stitching   * You have a complex topology in mind, but you wish to use GENI stitching instead of ORCA's native slice stitching
 +
 +At different times some of the racks and controllers may not be available due to e.g. maintenance events. To see which racks are available, you can visit the [[http://www.exogeni.net/status | status page]].
  
 ===== Compute images ===== ===== Compute images =====
Navigation
Print/export