BonFIRE logo and link to main BonFIRE site

Table Of Contents

Previous topic

Introduction

Next topic

Quota and Usage

This Page

Using the BonFIRE Testbeds

The lowest layer of the BonFIRE Architecture are the testbeds. There are several testbeds in BonFIRE with different Infrastructure offerings. This is not only in the form of heterogeneous resources, but there are some differences in the services, functionality and some minor differences in how to access some of the testbeds.

The Different Testbeds

The testbeds are the Cloud infrastructures that provide compute, network and storage resources that can be used by BonFIRE experiments. BonFIRE has four types of testbeds provided by project partners:

  • four OpenNebula infrastructures operated by EPCC, HLRS, Inria and PSNC;
  • the Virtual Wall network emulation infrastructure provided by iMinds.

Additionally, BonFIRE will soon connect to external facilities such third-party cloud solutions like Amazon EC2, as well other FIRE and networking services such as FEDERICA and GEANT AutoBAHN.

Testbeds may expose their functionality via any API they choose, but to simplify the initial implementation all the embedded testbeds expose their basic resource manipulation functionality using a version of the Open Cloud Computing Interface (OCCI). The external facilities all expose their functionality via other, proprietary, interfaces. However because of different semantics or working model in each underlying system, some OCCI deviations between them for implementation need to be taken into account by experimenters in describing their experiments.

Features Supported By Each Testbed Site


List of features on each site
Features EPCC Inria HLRS PSNC iMinds
Custom instance types x x x    
Controlled deployment on physical hosts x x x x  
Exclusive access to physical hosts   x x x  
Access to VM logs x x x x  
Access to status logs x x x x  
Public IPs x x     limited
In-depth VM monitoring x x x x x
Infrastructure monitoring x x x x  
User-specified application monitoring x x x x x
Controlled network topologies       x  
Network background traffic         x
Network impairments x x x x x
Bandwidth on Demand x     x  
Controlled network slices with FEDERICA x     x  
Elasticity engine x x x x  
Shared storage         x

Differences Between Testbeds

Although BonFIRE offers a uniform way in which to interact with the different testbeds, there are a few differences in features and functionality offered by the different testbeds:

  • Each testbed offers heterogeneous resources. Also, within some testbeds, there are heterogeneous resources (USTUTT, Inria on-request).
  • Each testbed supports different Instance Types that specify the CPU and RAM of the compute resources.
  • To run an experiment on the Virtual Wall (iMinds), a GO command needs to be issued to deploy the experiment resources. Once deployed, more cannot be added. For all other testbeds, this is not the case.
  • Public IP addresses are limited at all testbeds, with the exception of Inria. EPCC offers a small set of Public IPs and the other testbeds do not offer any.
  • Private subnets possible at EPCC and PSNC.
  • Advanced network emulation only available at iMinds (control of network topologies, network impairments and background traffic).
  • Shared (NFS) storage only available at the Virtual Wall (but can be used in different experiments and accessed by VMs on different testbeds).
  • On-request (compute) resources are only available at Inria, USTUTT and iMinds). Please note that the process for using the on-request resources is different. See On Request Resources for more information.
  • Dynamic reservation of on-request resources only available at Inria. On other testbeds, experimenters need to make a request to BonFIRE for the testbed administrators to manually make available additional resources.
  • It is important to point out that aggregator data are lost at the end of an experiment. Hence, the user must perform a SAVE_AS command during the experiment lifetime in order to keep data.

Creating Resources on the BonFIRE Testbeds

A resource, be it storage, network, or compute, is created on a specific location (testbed). To discover the list of available testbeds, you can use the API via different Client Tools. Below are examples of listing the available testbeds and services using OCCI. This can also be viewed on the BonFIRE Portal.

Listing Available Testbeds

Listing available testbeds is easily achieved with a simple GET request:

$ curl -kni https://api.bonfire-project.eu/locations
HTTP/1.1 200 OK
Date: Thu, 08 Dec 2011 13:32:25 GMT
Server: thin 1.2.11 codename Bat-Shit Crazy
Cache-Control: public,max-age=120
Content-Type: application/vnd.bonfire+xml; charset=utf-8
ETag: "6cdf753edb840409981b901908ffb97f"
X-UA-Compatible: IE=Edge,chrome=1
X-Runtime: 0.022719
Vary: Authorization,Accept
Connection: close
Transfer-Encoding: chunked

<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations">
  <items offset="0" total="4">
    <location href="/locations/be-ibbt">
      <name>be-ibbt</name>
      <url>https://bonfire.test.atlantis.ugent.be</url>
      <link rel="parent" href="/" type="application/vnd.bonfire+xml"/>
      <link rel="computes" href="/locations/be-ibbt/computes" type="application/vnd.bonfire+xml"/>
      <link rel="networks" href="/locations/be-ibbt/networks" type="application/vnd.bonfire+xml"/>
      <link rel="storages" href="/locations/be-ibbt/storages" type="application/vnd.bonfire+xml"/>
      <link rel="configurations" href="/locations/be-ibbt/configurations" type="application/vnd.bonfire+xml"/>
      <link rel="services" href="/locations/be-ibbt/services" type="application/vnd.bonfire+xml"/>
    </location>
    <location href="/locations/fr-inria">
      <name>fr-inria</name>
      <url>https://api.bonfire-project.eu/</url>
      <link rel="parent" href="/" type="application/vnd.bonfire+xml"/>
      <link rel="computes" href="/locations/fr-inria/computes" type="application/vnd.bonfire+xml"/>
      <link rel="networks" href="/locations/fr-inria/networks" type="application/vnd.bonfire+xml"/>
      <link rel="storages" href="/locations/fr-inria/storages" type="application/vnd.bonfire+xml"/>
      <link rel="configurations" href="/locations/fr-inria/configurations" type="application/vnd.bonfire+xml"/>
      <link rel="services" href="/locations/fr-inria/services" type="application/vnd.bonfire+xml"/>
    </location>
    <location href="/locations/uk-uedin">
      <name>uk-uedin</name>
      <url>https://bonfire.epcc.ed.ac.uk:8443</url>
      <link rel="parent" href="/" type="application/vnd.bonfire+xml"/>
      <link rel="computes" href="/locations/uk-uedin/computes" type="application/vnd.bonfire+xml"/>
      <link rel="networks" href="/locations/uk-uedin/networks" type="application/vnd.bonfire+xml"/>
      <link rel="storages" href="/locations/uk-uedin/storages" type="application/vnd.bonfire+xml"/>
      <link rel="configurations" href="/locations/uk-uedin/configurations" type="application/vnd.bonfire+xml"/>
      <link rel="services" href="/locations/uk-uedin/services" type="application/vnd.bonfire+xml"/>
    </location>
  </items>
  <link href="/" rel="parent" type="application/vnd.bonfire+xml"/>
</collection>

Listing Services Available on Each Testbed

Every testbed maintains services for the user. For instance, most of the testbeds provide a machine that acts as an SSH Gateway (see SSH Gateway Configuration). Others also provide an aggregator machine that monitors the physical resources on which your virtual resources will be run. You can easily list all these services, and know their IP, using the API:

$ curl -kni https://api.bonfire-project.eu/locations/fr-inria/services
HTTP/1.1 200 OK
Date: Thu, 08 Dec 2011 13:35:43 GMT
Server: thin 1.2.11 codename Bat-Shit Crazy
Cache-Control: public,max-age=3600
Content-Type: application/vnd.bonfire+xml; charset=utf-8
ETag: "c8a39531f389008f56b0b1a3c4aef9d0"
X-UA-Compatible: IE=Edge,chrome=1
X-Runtime: 0.021710
Vary: Authorization,Accept
Connection: close
Transfer-Encoding: chunked

<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/fr-inria/services">
  <items offset="0" total="1">
    <service href="/locations/fr-inria/services/1">
      <name>aggregator</name>
      <ip>131.254.204.19</ip>
      <link rel="parent" href="/locations/fr-inria" type="application/vnd.bonfire+xml"/>
    </service>
  </items>
  <link href="/locations/fr-inria" rel="parent" type="application/vnd.bonfire+xml"/>
</collection>

Note

The ip element can be an IPv4 or IPv6 address, as well as a plain hostname.