Slides for a general webinar about BonFIRE, the features offered, the sites making up this multi-site testbed and the tools available for experimenters using the facility.
A video with audio is available on YouTube: http://youtu.be/0ulgvs32wvI
4. BonFIRE4 4
Prerequisites
• You must have an account in BonFIRE.
– If you don’t, please go to:
• http://www.bonfire-project.eu/involved
• https://portal.bonfire-project.eu/register/
• Your public key must be uploaded.
– If not, you can find more information here:
• http://doc.bonfire-project.eu/R3.1/getting-started/upload-ssh-
key.html
• You must have access to a SSH environment able to
connect through one the BonFIRE SSH gateways
– If not, you can find more information here:
• http://doc.bonfire-project.eu/R3.1/getting-started/ssh-gateway-
config.html
5. BonFIRE5 5
1. Create the experiment
You can choose
between different tools
Portal
Command Line
Experiment Manager
Restfully
CURL with
OCCI
• Don’t forget to set walltime properly. After it expires, the
experiment (and its resources) will be SHUTDOWN and
DELETED.
7. BonFIRE7 7
2. Set up the experiment
• Create networks, VMs and Storages
• If you want monitoring, don’t forget to add an Aggregator.
– http://doc.bonfire-project.eu/R3.1/monitoring/howto.html
9. BonFIRE9 9
Managed Experiments for initial
deployment
Resource
Manager
Experiment 356
Experiment
name: myExperiment
compute:
Name: compute1
Location: uk-eppc
Disk: OS
Network: BonFIRE WAN
Compute:
Name: compute2
Location: fr-inria
Disk: OS
Network: BonFIRE WAN
Experiment
Manager
Managed
Experiment 104
10. BonFIRE10 10
3. Configure the computes
• Log in to the computes and configure the,
• Bear in mind that you can SAVE an image and it can
be reused as many times as you want in the same
location.
• Images can’t be moved between locations, think
about scripts for repeating the same commands.
11. BonFIRE11 11
Creating and configuring VMs
OS
OS
MySQL
OS
OS
>> apt_get mysql
OS
MySQL
OS
MySQL
>
OS
> apt_get mysql
OS
MySQL
OS
MySQL
SAVE
SAVE
14. BonFIRE14 14
SSH Gateways and VPN
BonFIRE WAN
JohnSmith/*****
LDAP ServerLDAP Server
VPN serverVPN server
SSH GatewaySSH Gateway
SSH GatewaySSH Gateway
SSH GatewaySSH Gateway
JohnSmith/*****
JohnSmith/*****
> ssh 192.168.4.2
15. BonFIRE15 15
4. Perform your experiment
• Here you decide what to do!
• If the experiment contains Virtual Wall (iMinds)
resources, don’t forget to put in RUNNING state the
experiment.
16. BonFIRE16 16
5. Monitoring
• Access the Zabbix GUI, tunneled through the Portal.
• Monitor Zabbix parameters, or configure your own.
– BonFIRE offers application, VM and infrastructure monitoring from
the same API
• Use the monitoring API to make elasticity and application
decisions on the fly
17. BonFIRE17 17
6. Wrap up your experiment
• The experiment can finish in two different ways:
– Expiry time (Walltime) ends.
– You have finished before walltime arrives, and you
decide to stop or delete the experiment.
• Before this time arrives, save the images and
datablocks that you want to use again. Then,
shutdown the VM where the image/datablock is being
used.
– http://doc.bonfire-project.eu/R3.1/reference/experiment-
lifecycle.html
18. BonFIRE18 18
7. After the experiment
• Access the monitoring data that you have saved
– http://doc.bonfire-project.eu/R3.1/monitoring/getting-data/export-
csv.html
• Reuse the images that you have configured and saved
22. BonFIRE22 22
Three layers of monitoring
Physical Machine
Virtual
Machine
Virtual
Machine
Virtual
Machine
23. BonFIRE23 23
Agents and Aggregators
VM Host 1
VM Host 2
VM Host 2
VM Host 1
VMVM
VMVM
Experiment
Aggregator
Experiment
Aggregator
Data
VM data
Application Data
Intrastructure data
VM Host 1
Agent
Agent
Site
Aggregator
Site
Aggregator
Site
Aggregator
Site
AggregatorAgent
Agent Agent
Agent
VM Host 2
29. BonFIRE29 29
Exclusive physical machines
INRIA
node1 node2 node3
node7node6
node8 node9
Open
Nebula
Resource
Manager
Reservation
System
Give me
3 physical
machines
from
26/4/12 10:00 to
28/4/12 20:00
Cluster: 34563
P23
P40
p92
Location: inria
Cluster: 34563
p23
p40
p92
Cluster: 34563
Location: inria
Cluster: 34563
Host: p40
node5
30. BonFIRE30 30
Controlled Contention
VM Host 1 VM Host 2
ExclusivePhysicalMachine
VM under testVM under test
VM under testVM under test VM under testVM under test
CoCoMaCoCoMa
Memory Use
IO Use
44. BonFIRE44 44
• Sites have different computing architectures
• Different varieties of VMs are described through
instance types
• Sites support different instance types
Name VCPU cores Memory Features
Lite 0.5 256MB CPU may be < 1
Small 1 1GB
Medium 2 2GB
Large 2 4GB
Large+ 2 4GB Higher CPU
clock speed
(over 3GHz)
Large-EN 4 4GB Emulated
network
Xlarge 4 8GB
XLarge+ 4 8GB Higher CPU
clock speed
(over 3GHz)
Custom Free Free Integer values
Which site to use?
Site Lite Small Medium Large Large+ Large-EN XLarge Xlarge+ Custom
HP + + + + +
iMinds ++
HLRS + + + + ++ + ++ +
EPCC + + + ++ ++ +
INRIA + + + +
45. BonFIRE45 45
Which site to use?
• Depends on your requirements
• Special characteristics
– Controlled networks only available at iMinds
– Public IPs are not available at iMinds and HLRS
– Reservation of nodes only available at INRIA
• Reservation at Inria Exclusive access to node
• https://api.bonfire-project.eu/locations/fr-inria/reservations
• Access methods
– SSH & VPN
– Each gateway serves for every BonFIRE WAN IP address
46. BonFIRE46 46
Information about site status
• BonFIRE health map indicates general availability
– Nagios system tests
– http://nebulosus.rus.uni-stuttgart.de/nagvis/frontend/nagvis-
js/index.php?mod=Map&act=view&show=bonfire-full
• Log files
– OpenNebula status
– OpenNebula Virtual machines
– Experiment Manager log
• Mailing list
– bonfire-announcements@lists.atosresearch.eu
48. BonFIRE48 48
Interacting with BonFIRE
Resource
Manager
Site Z
Site Y
Site X
OCCI
EnactorcURL
Experimenter
Create compute
XML
All communication via an
open RESTful interface
Don’t need to write XML and
use OCCI directly - we have
several client tools available!
49. BonFIRE49 49
Client tools overview
BonFIRE Portal
• Web interface to the BonFIRE API
• Very simple to use and get started in BonFIRE
Experiment descriptors
• Write the initial resource deployment in JSON or OVF
• Create descriptor step-by-step on Portal and edit later
Restfully
• General-purpose RESTful client
• Ruby scripting or Ruby shell interactions with the BonFIRE API
Command line tools
• Interactive, manual or scripted interaction with the BonFIRE API
53. BonFIRE53 53
BonFIRE Portal pros and cons
Pros
• Very easy to use
• Great starting point for
understanding how things
work in BonFIRE
• Gives you the overview of
your experiments and
resources
Cons
• Slow to set up large-scale
experiments
• Manual creation of each
resource
• No scripted events
possible for interacting with
services
54. BonFIRE54 54
Experiment descriptors
Experiment descriptors can specify the initial deployment of
resources.
Additional features include:
• VM contextualisation
• IP dependency resolution
• Configuration of monitoring metrics
Two representation languages available
• JSON
• OVF
57. BonFIRE57 57
Experiment descriptor pros and cons
Pros
• Good for large-scale
deployment of resources
• Easy to create via the
Portal and edit offline
• Intuitive and purposefully
created for BonFIRE
• Submit via Portal or
command line
Cons
• Cannot script other
elements of experiment
set-ups like interacting with
experiment services
• Cannot get connection to
resources when created to
perform actions
58. BonFIRE58 58
Restfully
• A general-purpose client tool for RESTful APIs
• Abstracts the details of exchanging HTTP requests
• Discovers resources at run-time
• Can be used in a Ruby shell to interactively query the
BonFIRE API
• Can be used in Ruby scripts to automate deployment of
resources and interactions with the resources
Written in Ruby
61. BonFIRE61 61
Restfully pros and cons
Pros
• Good for large-scale
experiments
• One script for deployment
of resources and gives you
connection to resources to
interact with, e.g., to install
software, start services,
etc.
• Interactive scripting
possible (user input on
command line)
Cons
• You have to create the
scripts from scratch
• Learning curve for Ruby
can be steep, but we
provide examples online
• Manually need to resolve
deployment constraints
62. BonFIRE62 62
Command line tools
• Purposefully built for BonFIRE
• Written in Python
– Bindings are easy to get by reading our online documentation
• Support for BonFIRE experiment lifecycle:
– bfexperiment
– bfcompute
– bfstorage
– …
• Abbreviations possible, instead of long URIs
– /locations/uk-epcc/networks/42 42
64. BonFIRE64 64
Command line tools pros and cons
Pros
• Intuitive to use
• Scripting possible, e.g.,
Bash on Linux or Batch
(MSDOS) on Windows
Cons
• Scripting is more limited
than Restfully
– Connecting to interact with
resources possible but not as
easy as with Ruby
• Less declarative than
experiment descriptor
– Manually need to resolve
deployment constraints
67. BonFIRE67 67
Support Mechanism
Documentation
• General Information:
http://bonfire-project.eu/
• User Documentation:
http://www.bonfire-project.eu/docs
User Forum
https://forum.bonfire-project.eu/
Support Ticketing System
support@bonfire-project.eu
The following positional argument must be specified when creating experiments:<name> - The name for this experiment.The following options are applicable when creating experiments:-D <description>, --description <description> - description of the experiment. Defaults to “<no description>”.-W <walltime>, --walltime <walltime> - lifetime of the experiment in seconds. Defaults to one day.-G <group>, --group <group> - A user group this experiment will be accessible by. This option can be specified multiple times.The following positional arguments must be specified when creating storages (in that order):<name> - The name for this resource.<location> - The BonFIRE site where this resource will be created.Optionally, an experiment this resource will be part of can be specified as a third positional argument. The following options are applicable when creating storages:-D <description>, --description - The description of this storage resource. Defaults to “<no description>”.-S <size>, --size - Size of this storage resource in MiB. This is only applicable to datablock resources. Defaults to 1024 MiB.-T {datablock|shared} - The type of this storage resource. Note that “shared” storages are only available on be-ibbt. Defaults to “datablock”.-F <filesystem>, --fstype <filesystem> - The filesystem the storage resource will be formatted with. This is only applicable to datablock resources. Defaults to “ext3”.-G <group>, --group <group> - A user group this resource will be accessible by. This option can be specified multiple times.-P, --public - Indicates that this storage resource should be publicly available. Defaults to <false>.-R, --persistent - Indicates that a persistent storage resource should be created. Defaults to <false>.