BonFIRE: features, sites and tools

Uploaded on

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. …

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:

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide
  • 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>.


  • 1. Building service testbeds on FIREBonFIRE Webinar29th May 2013Delivered by Kostas Kavoussanakis, EPCC
  • 2. BonFIRE2 2Overview• Basic experiment lifecycle• BonFIRE key functionalities• Testbed sites• Client tools• Experiment support mechanism
  • 3. Building service testbeds on FIREBonFIRE Experiment Lifecycle
  • 4. BonFIRE4 4Prerequisites• You must have an account in BonFIRE.– If you don’t, please go to:••• Your public key must be uploaded.– If not, you can find more information here:•• You must have access to a SSH environment able toconnect through one the BonFIRE SSH gateways– If not, you can find more information here:•
  • 5. BonFIRE5 51. Create the experimentYou can choosebetween different toolsPortalCommand LineExperiment ManagerRestfullyCURL withOCCI• Don’t forget to set walltime properly. After it expires, theexperiment (and its resources) will be SHUTDOWN andDELETED.
  • 6. BonFIRE6 6ExperimentsResourceManagerExperiment: 356Walltime: 3600Experiment withWalltime 3600
  • 7. BonFIRE7 72. Set up the experiment• Create networks, VMs and Storages• If you want monitoring, don’t forget to add an Aggregator.–
  • 8. BonFIRE8 8ExperimentsResourceManagerExperiment 356Experiment 357MyDataBlockDataBlockSAVE
  • 9. BonFIRE9 9Managed Experiments for initialdeploymentResourceManagerExperiment 356Experimentname: myExperimentcompute:Name: compute1Location: uk-eppcDisk: OSNetwork: BonFIRE WANCompute:Name: compute2Location: fr-inriaDisk: OSNetwork: BonFIRE WANExperimentManagerManagedExperiment 104
  • 10. BonFIRE10 103. Configure the computes• Log in to the computes and configure the,• Bear in mind that you can SAVE an image and it canbe reused as many times as you want in the samelocation.• Images can’t be moved between locations, thinkabout scripts for repeating the same commands.
  • 11. BonFIRE11 11Creating and configuring VMsOSOSMySQLOSOS>> apt_get mysqlOSMySQLOSMySQL>OS> apt_get mysqlOSMySQLOSMySQLSAVESAVE
  • 12. BonFIRE12 12Contextualisation, elasticity andconnectivity<context><role>server</role>…</context><context><role>client</role><serverIP></serverIP>…</context><context><role>client</role><serverIP></serverIP>…</context><context><role>client</role><serverIP></serverIP>…</context>BonFIREWANBonFIREWAN
  • 13. BonFIRE13 13Data BlocksDataBlockOSMySQLOSOSOSOSMySQLSAVEMyDataBlock
  • 14. BonFIRE14 14SSH Gateways and VPNBonFIRE WANJohnSmith/*****LDAP ServerLDAP ServerVPN serverVPN serverSSH GatewaySSH GatewaySSH GatewaySSH GatewaySSH GatewaySSH GatewayJohnSmith/*****JohnSmith/*****> ssh
  • 15. BonFIRE15 154. 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 theexperiment.
  • 16. BonFIRE16 165. Monitoring• Access the Zabbix GUI, tunneled through the Portal.• Monitor Zabbix parameters, or configure your own.– BonFIRE offers application, VM and infrastructure monitoring fromthe same API• Use the monitoring API to make elasticity and applicationdecisions on the fly
  • 17. BonFIRE17 176. Wrap up your experiment• The experiment can finish in two different ways:– Expiry time (Walltime) ends.– You have finished before walltime arrives, and youdecide to stop or delete the experiment.• Before this time arrives, save the images anddatablocks that you want to use again. Then,shutdown the VM where the image/datablock is beingused.–
  • 18. BonFIRE18 187. After the experiment• Access the monitoring data that you have saved–• Reuse the images that you have configured and saved
  • 19. Building service testbeds on FIREBonFIRE Key Functionalities
  • 20. BonFIRE20 20Four pillars of BonFIRE
  • 21. BonFIRE21 21
  • 22. BonFIRE22 22Three layers of monitoringPhysical MachineVirtualMachineVirtualMachineVirtualMachine
  • 23. BonFIRE23 23Agents and AggregatorsVM Host 1VM Host 2VM Host 2VM Host 1VMVMVMVMExperimentAggregatorExperimentAggregatorDataVM dataApplication DataIntrastructure dataVM Host 1AgentAgentSiteAggregatorSiteAggregatorSiteAggregatorSiteAggregatorAgentAgent AgentAgentVM Host 2
  • 24. BonFIRE24 24Zabbix GUI
  • 25. BonFIRE25 25More Observability
  • 26. BonFIRE26 26
  • 27. BonFIRE27 27Emulated networks using theVirtual WallClient 1Client 1Client 2Client 2Client 3Client 3Client 4Client 410Mbps10Mbps1000Mbps1000MbpsServerServer1000Mbps1000Mbps100Mbps50ms latency3% loss rate100Mbps50ms latency3% loss rate100Mbps100Mbps100Mbps50ms latency5% loss rate100Mbps50ms latency5% loss rate100Mbps50ms latency10% loss rate100Mbps50ms latency10% loss rate100Mbps50ms latency15% loss rate100Mbps50ms latency15% loss rate100Mbps50ms latency20% loss rate100Mbps50ms latency20% loss rate100MbpsTraffic: TCPPacket size: 200 bytesThroughput: 20 packet/s100MbpsTraffic: TCPPacket size: 200 bytesThroughput: 20 packet/s100MbpsTraffic: TCPPacket size: 200 bytesThroughput: 30 packet/s100MbpsTraffic: TCPPacket size: 200 bytesThroughput: 30 packet/s100MbpsTraffic: TCPPacket size: 200 bytesThroughput: 40 packet/s100MbpsTraffic: TCPPacket size: 200 bytesThroughput: 40 packet/s
  • 28. BonFIRE28 28epccvmhost0vmhost1ResourceManagerControlled placementLocation: epccInstance type: liteOpenNebulaLocation: epccInstance type: liteHost: vmhost1Location: epccInstance type: largeLocation: epccInstance type: largeHost: vmhost1
  • 29. BonFIRE29 29Exclusive physical machinesINRIAnode1 node2 node3node7node6node8 node9OpenNebulaResourceManagerReservationSystemGive me3 physicalmachinesfrom26/4/12 10:00 to28/4/12 20:00Cluster: 34563P23P40p92Location: inriaCluster: 34563p23p40p92Cluster: 34563Location: inriaCluster: 34563Host: p40node5
  • 30. BonFIRE30 30Controlled ContentionVM Host 1 VM Host 2ExclusivePhysicalMachineVM under testVM under testVM under testVM under test VM under testVM under testCoCoMaCoCoMaMemory UseIO Use
  • 31. BonFIRE31 31
  • 32. BonFIRE32 32Custom instance types
  • 33. BonFIRE33 33epccvmhost0vmhost1Custom instance typeResourceManagerOpenNebulaLocation: epccInstance type: customCPU = 16VPCU = 16Memory = 16GBHost = vmhost1
  • 34. BonFIRE34 34Elasticity as a Service (EaaS)ElasticityManagerElasticityManagerAggregatorAggregatorAggregator IP: {system.cpu.usage.last(0)}>70Min: 1Max: 5Type: liteDisk: disk_nameLocation: uk-epccLoad Balancer: HAProxy, port 80, uk-epccLoadBalancerLoadBalancerVMVMVMVMVMVM
  • 35. BonFIRE35 35
  • 36. BonFIRE36 36Ease of Use• If it’s not easy, it won’t be used• But what is easy?• BonFIRE interpretations:
  • 37. BonFIRE37 37BonFIRE Portal
  • 38. BonFIRE38 38Experiment Descriptor{"name": "myExperiment", "description": “Controlled Network", "duration": 60,"resources": [{ "network": { "name": "myNetwork", "locations": ["be-ibbt"],"address": "", "size": "C","lossrate": 0, "bandwidth": 700, "latency": 0 }},{ "compute": { "name": "server", "locations": ["be-ibbt"],"instanceType": "Large-EN", "min": 1,"resources": [{"storage": "@iperf-demo2"},{"network": "@BonFIRE WAN"},{"network": "myNetwork"}],"contexts": [] }},{ "compute": { "name": "client", "locations": ["be-ibbt"],"instanceType": "Large-EN", "min": 1,"resources": [{"storage": "@iperf-demo2"},{"network": "@BonFIRE WAN"},{"network": "myNetwork"}],"contexts": [ {"IPERF_SERVER": ["server","myNetwork"]} ] }}]}
  • 39. BonFIRE39 39300 pages of User Doc
  • 40. Building service testbeds on FIREBonFIRE Testbed Sites
  • 41. BonFIRE41 41Infrastructure in general• Open Access Sites– Virtual Wall: iMinds (IBBT)– OpenNebula: EPCC / INRIA / USTUTT– HP Cells: HPLabs• Side wide interconnects– Private: BonFIRE WAN (VPN network)– Public: GEANT• Special BonFIRE flavours– Heterogeneous resources– Permanent and on-request infrastructure– Virtual Wall: controlled networks (emulated)– HP Cells: securely isolated cells contain storages, computes, …
  • 42. BonFIRE42 42Site CapacitiesPermanent Cores Memory Storage NodesHPLabs 128 136 GB 5 TB 32iMinds 400 400 GB 32 TB 100HLRS 154 452 GB 12 TB 17EPCC 96 256 GB 3.6 TB 2INRIA 48 256 GB 2.4 TB 4On-Request Cores Memory Storage NodesHPLabs 384 144 GB 32 TB 96iMinds 64 64 GB 32 TB 16HLRSEPCCINRIA 1672 2.7 TB 42 TB 160
  • 43. BonFIRE43 43Infrastructure Map
  • 44. BonFIRE44 44• Sites have different computing architectures• Different varieties of VMs are described throughinstance types• Sites support different instance typesName VCPU cores Memory FeaturesLite 0.5 256MB CPU may be < 1Small 1 1GBMedium 2 2GBLarge 2 4GBLarge+ 2 4GB Higher CPUclock speed(over 3GHz)Large-EN 4 4GB EmulatednetworkXlarge 4 8GBXLarge+ 4 8GB Higher CPUclock speed(over 3GHz)Custom Free Free Integer valuesWhich site to use?Site Lite Small Medium Large Large+ Large-EN XLarge Xlarge+ CustomHP + + + + +iMinds ++HLRS + + + + ++ + ++ +EPCC + + + ++ ++ +INRIA + + + +
  • 45. BonFIRE45 45Which 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•• Access methods– SSH & VPN– Each gateway serves for every BonFIRE WAN IP address
  • 46. BonFIRE46 46Information about site status• BonFIRE health map indicates general availability– Nagios system tests–• Log files– OpenNebula status– OpenNebula Virtual machines– Experiment Manager log• Mailing list–
  • 47. Building service testbeds on FIREBonFIRE Client Tools
  • 48. BonFIRE48 48Interacting with BonFIREResourceManagerSite ZSite YSite XOCCIEnactorcURLExperimenterCreate computeXMLAll communication via anopen RESTful interfaceDon’t need to write XML anduse OCCI directly - we haveseveral client tools available!
  • 49. BonFIRE49 49Client tools overviewBonFIRE Portal• Web interface to the BonFIRE API• Very simple to use and get started in BonFIREExperiment descriptors• Write the initial resource deployment in JSON or OVF• Create descriptor step-by-step on Portal and edit laterRestfully• General-purpose RESTful client• Ruby scripting or Ruby shell interactions with the BonFIRE APICommand line tools• Interactive, manual or scripted interaction with the BonFIRE API
  • 50. BonFIRE50 50BonFIRE PortalStep-by-step, wizard-like creation of resources
  • 51. BonFIRE51 51BonFIRE Portal
  • 52. BonFIRE52 52BonFIRE Portal  Monitoring
  • 53. BonFIRE53 53BonFIRE Portal pros and consPros• Very easy to use• Great starting point forunderstanding how thingswork in BonFIRE• Gives you the overview ofyour experiments andresourcesCons• Slow to set up large-scaleexperiments• Manual creation of eachresource• No scripted eventspossible for interacting withservices
  • 54. BonFIRE54 54Experiment descriptorsExperiment descriptors can specify the initial deployment ofresources.Additional features include:• VM contextualisation• IP dependency resolution• Configuration of monitoring metricsTwo representation languages available• JSON• OVF
  • 55. BonFIRE55 55Experiment descriptors
  • 56. BonFIRE56 56JSON experiment description snippet{"name": "An experiment","description": "An experiment description ","duration": 60,"resources": [{"compute": {"name": "VM","locations": ["fr-inria"],"instanceType": "small","min": 1,...20,
  • 57. BonFIRE57 57Experiment descriptor pros and consPros• Good for large-scaledeployment of resources• Easy to create via thePortal and edit offline• Intuitive and purposefullycreated for BonFIRE• Submit via Portal orcommand lineCons• Cannot script otherelements of experimentset-ups like interacting withexperiment services• Cannot get connection toresources when created toperform actions
  • 58. BonFIRE58 58Restfully• 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 theBonFIRE API• Can be used in Ruby scripts to automate deployment ofresources and interactions with the resourcesWritten in Ruby
  • 59. BonFIRE59 59Ruby shell exampleruby-1.8.7-p249 > pp root.locations#<Collection:0x813dd534 uri=, selfITEMS (0..5)/5#<Resource:0x813c6b04 uri=>#<Resource:0x813b5868 uri=>#<Resource:0x813a45cc uri=>#<Resource:0x81393330 uri=>#<Resource:0x81382094 uri=>>=> nil
  • 60. BonFIRE60 60Ruby script examplesession = => "~/.restfully/",:gateway => "",:keys => ["~/.ssh/id_rsa"])beginexperiment = session.root.experiments.find{|e|e[name] == "Demo SSH" && e[status] == "running"} || session.root.experiments.submit(:name => "Demo SSH",:description => "SSH demo using Restfully - #{}",:walltime => 8*3600 # 8 hours)
  • 61. BonFIRE61 61Restfully pros and consPros• Good for large-scaleexperiments• One script for deploymentof resources and gives youconnection to resources tointeract with, e.g., to installsoftware, start services,etc.• Interactive scriptingpossible (user input oncommand line)Cons• You have to create thescripts from scratch• Learning curve for Rubycan be steep, but weprovide examples online• Manually need to resolvedeployment constraints
  • 62. BonFIRE62 62Command 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
  • 63. BonFIRE63 63Command line tools examplesCreate experiment• bfexperiment create <name> [-D <description>] [-W <walltime>][-G <group> ...]• bfexperiment create my-experiment -D description -W 60 -GbonfireCreate storage resource• bfstorage create <name> <location> [<experiment>] [-D<description>] [-S <size>] [-T {datablock|shared}] [-F <fstype>] [-G <group> ...] [-P] [-R]• bfstorage create my-storage fr-inria 42 -D storage-desc -S 1024-T datablock -F ext3 -G bonfire
  • 64. BonFIRE64 64Command line tools pros and consPros• Intuitive to use• Scripting possible, e.g.,Bash on Linux or Batch(MSDOS) on WindowsCons• Scripting is more limitedthan Restfully– Connecting to interact withresources possible but not aseasy as with Ruby• Less declarative thanexperiment descriptor– Manually need to resolvedeployment constraints
  • 65. BonFIRE65 65Resources• Client tools:
  • 66. Building service testbeds on FIREExperiment Support
  • 67. BonFIRE67 67Support Mechanism Documentation• General Information:• User Documentation: User Forum Support Ticketing
  • 68. Building service testbeds on FIREThank you for your attention
  • 69. BonFIRE69 69Licence and AcknowledgementsCopyright © 2013, EPCC, The University of Edinburgh, on behalf ofthe BonFIRE Consortium.Licensed under Creative Commons “Attribution-NoDerivs”.BonFIRE is funded by the European Union SeventhFramework Programme (FP7/2007-2013) under grantagreement numbers 257386 and