development of a hardware abstraction layer for the
play

Development of a hardware-abstraction layer for the Baltikum test - PowerPoint PPT Presentation

Chair of Network Architectures and Services Department of Informatics Technical University of Munich Development of a hardware-abstraction layer for the Baltikum test framework IDP final talk Tobias Betz December 12, 2016 Chair of Network


  1. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Development of a hardware-abstraction layer for the Baltikum test framework IDP final talk Tobias Betz December 12, 2016 Chair of Network Architectures and Services Department of Informatics Technical University of Munich

  2. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Contents Baltikum framework Design goals Experiment workflow REST API Baltinet library Case study Conclusion Bibliography T. Betz – Baltikum framework 2

  3. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework • Framework for conducting networking experiments, currently man- aging the Baltikum testbed. • Partly developed during Bachelor Thesis. T. Betz – Baltikum framework 3

  4. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — Design goals Main goal: reproducible automated network experiments with hardware- independent framework • Modular low-level interfaces for interaction with testbed hardware • Interactive control over hosts during the experiment T. Betz – Baltikum framework 4

  5. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — Design goals — Modular low-level interface Every node provides three functions: start() , command() , and stop() Listing 1: Old implementation Listing 2: New implementation 1 function node.start() { 1 function node.start() { iPXE configuration switch(node.boot_module) 2 2 IPMI command case IPMI: 3 3 ... IPMI.send_command(...) 4 4 5 } 5 case Wake -on-LAN: 6 6 WoL.send_magic_packet(...) 7 8 case always -on: 9 nop 10 11 } 12 Same for command() and stop() T. Betz – Baltikum framework 5

  6. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — Design goals — Interactive control MGMT Node1 Node2 Deploy/start rolescript - configure node - testing process - synchronize - upload results Figure 1: Old workflow T. Betz – Baltikum framework 6

  7. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — Design goals — Interactive control MGMT Node1 Node2 Node3 Deploy con fi g Foreground command Background command Queued command Queued command Queued command Figure 2: New workflow with command types T. Betz – Baltikum framework 7

  8. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — Experiment workflow 1. Allocate resources 2. Configure resources 3. Testing process 4. Free resources T. Betz – Baltikum framework 8

  9. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — Experiment workflow 1. Allocate resources Modular low-level interface 2. Configure resources 3. Testing process Interactive control 4. Free resources Modular low-level interface T. Betz – Baltikum framework 8

  10. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — REST API 1. Allocate resources http://.../allocation 2. Configure resources 3. Testing process http://.../cmd 4. Free resources http://.../allocation T. Betz – Baltikum framework 9

  11. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — REST API — /allocation Allocation status of the nodes 1 { "id": "pc3.r", 2 "user": "betz", 3 "status": "allocated", 4 "test_id": "MyExperiment", 5 "force_reboot": true 6 7 } T. Betz – Baltikum framework 10

  12. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — REST API — /cmd Users can send commands for the nodes to execute 1 { "node": "pc3.r", 2 "user": "betz", 3 "payload": "whoami; echo foo = $foo", 4 "background": false , 5 "queued": false 6 7 } Example response 1 { "message": "root\nfoo = bar\n", 2 3 } T. Betz – Baltikum framework 11

  13. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltikum framework — REST API — /nodes Static information about testbed hardware 1 { "id": "pc3.r", 2 "type": "host", 3 "description": "Intel(R) Xeon(R) CPU E3 -1265L V2 @ 2.50GHz , 4 4 cores", "interfaces": [ 5 { 6 "description": "Intel 82580 Gigabit Network Connection", 7 "id": "eth0", 8 "phys -address": "90:e2:ba:2a:91:fc", 9 "speed": "1Gb" 10 }, 11 ... 12 ], 13 "management": { 14 "address": "pc3.r", 15 "configuration": "ssh -jumper -ilab", 16 "initialize": "wake -on-lan -ilab", 17 "phys -address": "bc:5f:f4:4a:49:59" 18 19 }, "config": {} 20 21 } T. Betz – Baltikum framework 12

  14. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltinet library • User-side Python library to provide abstraction from the REST API • User does not have to send HTTP requests by hand T. Betz – Baltikum framework 13

  15. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Baltinet library — Overview User Baltinet MGMT Host1 Baltinet.start() PATCH /allocation IPMI Host1.cmd() POST /cmd SSH T. Betz – Baltikum framework 14

  16. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Case study — Experimenting on the iLab testbed • Secure Multiparty Computation experiment (ongoing Master The- sis) • iLab hosts have homogeneous hardware, good for P2P protocols • Measure time to setup communication in SMC framework T. Betz – Baltikum framework 15

  17. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Case study — iLab testbed isle switch ilab-control Server pc3 pc6 KVM KVM switch switch central switch Isle S pc2 pc5 Isle A Isle B Isle C Isle D Isle E Isle F Isle R pc1 pc4 network equipment for users Figure 3: The iLab testbed [1] T. Betz – Baltikum framework 16

  18. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Case study — Framework overview HTTP pcX.Y Experimenter's computer kaunas ilab-control H S SSH S Baltinet script Eve REST API SSH proxy HTTP SSH L o W Power management Baltinet library script MongoDB iPXE DHCP DNS Figure 4: Baltikum framework controlling the iLab testbed T. Betz – Baltikum framework 17

  19. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Case study— Baltinet script Listing 3: Example Baltinet script 1 import baltinet 2 3 topo = baltinet.Topo(...) 4 bn = baltinet.Baltinet(topo=topo , exp_id='MyExperiment ') 5 bn.start() # 1./2. Allocate/Configure resources (/ allocation) 6 7 bn['pc3.r'].cmd('./ install.sh') # 3. Testing process (/cmd) 8 9 for host in bn.hosts: host.cmd('./run.sh > /tmp/output ') # 3. Testing process (/cmd) 10 11 12 for host in bn.hosts: # upload results 13 host.cmd('testbed -upload /tmp/output ') # 3. Testing process (/cmd) 14 15 16 bn.stop() # 4. Free resources (/ allocation) T. Betz – Baltikum framework 18

  20. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Case study— Results Experiment successfully ran on 11 iLab hosts (2 isles) Listing 4: SMC Experiment results 1 num ,time ,nodeid ,result ,testid 2 11,764,1,132, parameters_11_8_1600_20 3 11,764,2,132, parameters_11_8_1600_20 4 11,765,3,132, parameters_11_8_1600_20 5 11,765,4,132, parameters_11_8_1600_20 6 11,766,5,132, parameters_11_8_1600_20 7 11,756,6,132, parameters_11_8_1600_20 8 11,765,7,132, parameters_11_8_1600_20 9 11,764,8,132, parameters_11_8_1600_20 10 11,764,9,132, parameters_11_8_1600_20 11 11,763,10,132, parameters_11_8_1600_20 12 11,764,11,132, parameters_11_8_1600_20 T. Betz – Baltikum framework 19

  21. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Conclusion • Successful case study on iLab testbed • Restructured REST API ⇒ Optional reboot of hosts, check allocation status, ... • Dynamic interaction with hosts during experiment using /cmd end- point ⇒ No more static role scripts • Modular low-level control over testbed (modules for SSH, Wake- on-LAN, ...) ⇒ Easier to refactor and expand T. Betz – Baltikum framework 20

  22. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Q&A T. Betz – Baltikum framework 21

Recommend


More recommend