BonFIRE: features, sites and tools


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

A video with audio is available on YouTube:

Published in: Technology
  • 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

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>.
  • BonFIRE: features, sites and tools

    1. 1. Building service testbeds on FIREBonFIRE Webinar29th May 2013Delivered by Kostas Kavoussanakis, EPCC
    2. 2. BonFIRE2 2Overview• Basic experiment lifecycle• BonFIRE key functionalities• Testbed sites• Client tools• Experiment support mechanism
    3. 3. Building service testbeds on FIREBonFIRE Experiment Lifecycle
    4. 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. 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. 6. BonFIRE6 6ExperimentsResourceManagerExperiment: 356Walltime: 3600Experiment withWalltime 3600
    7. 7. BonFIRE7 72. Set up the experiment• Create networks, VMs and Storages• If you want monitoring, don’t forget to add an Aggregator.–
    8. 8. BonFIRE8 8ExperimentsResourceManagerExperiment 356Experiment 357MyDataBlockDataBlockSAVE
    9. 9. BonFIRE9 9Managed Experiments for initialdeploymentResourceManagerExperiment 356Experimentname: myExperimentcompute:Name: compute1Location: uk-eppcDisk: OSNetwork: BonFIRE WANCompute:Name: compute2Location: fr-inriaDisk: OSNetwork: BonFIRE WANExperimentManagerManagedExperiment 104
    10. 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. 11. BonFIRE11 11Creating and configuring VMsOSOSMySQLOSOS>> apt_get mysqlOSMySQLOSMySQL>OS> apt_get mysqlOSMySQLOSMySQLSAVESAVE
    12. 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. 13. BonFIRE13 13Data BlocksDataBlockOSMySQLOSOSOSOSMySQLSAVEMyDataBlock
    14. 14. BonFIRE14 14SSH Gateways and VPNBonFIRE WANJohnSmith/*****LDAP ServerLDAP ServerVPN serverVPN serverSSH GatewaySSH GatewaySSH GatewaySSH GatewaySSH GatewaySSH GatewayJohnSmith/*****JohnSmith/*****> ssh
    15. 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. 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. 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. 18. BonFIRE18 187. After the experiment• Access the monitoring data that you have saved–• Reuse the images that you have configured and saved
    19. 19. Building service testbeds on FIREBonFIRE Key Functionalities
    20. 20. BonFIRE20 20Four pillars of BonFIRE
    21. 21. BonFIRE21 21
    22. 22. BonFIRE22 22Three layers of monitoringPhysical MachineVirtualMachineVirtualMachineVirtualMachine
    23. 23. BonFIRE23 23Agents and AggregatorsVM Host 1VM Host 2VM Host 2VM Host 1VMVMVMVMExperimentAggregatorExperimentAggregatorDataVM dataApplication DataIntrastructure dataVM Host 1AgentAgentSiteAggregatorSiteAggregatorSiteAggregatorSiteAggregatorAgentAgent AgentAgentVM Host 2
    24. 24. BonFIRE24 24Zabbix GUI
    25. 25. BonFIRE25 25More Observability
    26. 26. BonFIRE26 26
    27. 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. 28. BonFIRE28 28epccvmhost0vmhost1ResourceManagerControlled placementLocation: epccInstance type: liteOpenNebulaLocation: epccInstance type: liteHost: vmhost1Location: epccInstance type: largeLocation: epccInstance type: largeHost: vmhost1
    29. 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. 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. 31. BonFIRE31 31
    32. 32. BonFIRE32 32Custom instance types
    33. 33. BonFIRE33 33epccvmhost0vmhost1Custom instance typeResourceManagerOpenNebulaLocation: epccInstance type: customCPU = 16VPCU = 16Memory = 16GBHost = vmhost1
    34. 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. 35. BonFIRE35 35
    36. 36. BonFIRE36 36Ease of Use• If it’s not easy, it won’t be used• But what is easy?• BonFIRE interpretations:
    37. 37. BonFIRE37 37BonFIRE Portal
    38. 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. 39. BonFIRE39 39300 pages of User Doc
    40. 40. Building service testbeds on FIREBonFIRE Testbed Sites
    41. 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. 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. 43. BonFIRE43 43Infrastructure Map
    44. 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. 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. 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. 47. Building service testbeds on FIREBonFIRE Client Tools
    48. 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. 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. 50. BonFIRE50 50BonFIRE PortalStep-by-step, wizard-like creation of resources
    51. 51. BonFIRE51 51BonFIRE Portal
    52. 52. BonFIRE52 52BonFIRE Portal  Monitoring
    53. 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. 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. 55. BonFIRE55 55Experiment descriptors
    56. 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. 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. 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. 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. 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. 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. 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. 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. 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. 65. BonFIRE65 65Resources• Client tools:
    66. 66. Building service testbeds on FIREExperiment Support
    67. 67. BonFIRE67 67Support Mechanism Documentation• General Information:• User Documentation: User Forum Support Ticketing
    68. 68. Building service testbeds on FIREThank you for your attention
    69. 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