Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Framework for Large-Scale emulations (thesis)
Search
Ah-Lun Tang
June 24, 2013
Technology
0
270
Framework for Large-Scale emulations (thesis)
Ah-Lun Tang
June 24, 2013
Tweet
Share
More Decks by Ah-Lun Tang
See All by Ah-Lun Tang
SYTYCC Hackathon - Final Pitch
ahluntang
0
350
So You Think You Can Code - pINGy - Pitch Saturday
ahluntang
0
310
Westtoer
ahluntang
1
37
Other Decks in Technology
See All in Technology
地理空間データ可視化・解析・活用ソリューション Pacific Spatial Solutions (PSS)
pacificspatialsolutions
0
320
EM完全に理解した と思ったけど、 やっぱり何も分からなかった話 / EM Night Fukuoka #1
hirutas
0
130
JSON攻略法.pdf
miyakemito
8
5.2k
Janus
bkuhlmann
1
490
実例で紹介するRAG導入時の知見と精度向上の勘所
yamahiro
1
250
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
16k
開発パフォーマンスを最大化するための開発体制
ham0215
2
490
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
870
LayerXにおけるLLMプロダクト開発の今までとこれから
layerx
PRO
3
540
生産性向上チームの紹介
cybozuinsideout
PRO
1
900
On Your Data を超えていく!
hirotomotaguchi
2
730
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
220
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
320
37k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Teambox: Starting and Learning
jrom
128
8.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
1.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
10
1k
Automating Front-end Workflow
addyosmani
1357
200k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
Facilitating Awesome Meetings
lara
43
5.6k
How to train your dragon (web standard)
notwaldorf
74
5.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
46k
Transcript
Framework voor Large-Scale emulaties door Ah-Lun Tang
Probleemstelling Doelstelling en vereisten Bestaande oplossingen Virtualisatie Implementatie van framework
Gebruik van framework Onderzoek & resultaten Conclusie Indeling
Probleemstelling Doelstelling en vereisten Bestaande oplossingen Virtualisatie Implementatie van framework
Gebruik van framework Onderzoek & resultaten Conclusie Indeling
Onderzoek bij iMinds Netwerktechnologieën Netwerkprotocollen Netwerktopologieën Probleem
Probleem Virtual Wall
Emulab (Utah) Honderdtal machines Verbinden op flexibele manier Topologie emuleren
Probleem Virtual Wall
Zeer grote topologieën niet mogelijk Aantal machines beperkt Probleem Virtual
Wall
Zeer grote topologieën niet mogelijk Aantal machines beperkt Probleem Virtual
Wall
Probleemstelling Doelstelling en vereisten Bestaande oplossingen Virtualisatie Implementatie van framework
Gebruik van framework Onderzoek & resultaten Conclusie Indeling
Doelstelling Grote netwerken Genereren Hergebruiken Emuleren (virtualisatie) Technologieën onderzoeken
Genereren Framework API Bouwstenen voor topologie Topologieën eenvoudig samenstellen Complexere
topologie ondersteunen Doelstelling
Hergebruiken Topologie opslaan Leesbaar formaat: XML Te transformeren naar ander
formaat Doelstelling
Emuleren Op Virtual Wall Op basis van XML document Grote
topologie: virtualisatie Doelstelling
Onderzoek Quagga OSPF BGP OpenFlow RouteFlow ... Doelstelling
Probleemstelling Doelstelling en vereisten Bestaande oplossingen Virtualisatie Implementatie van framework
Gebruik van framework Onderzoek & resultaten Conclusie Indeling
Bestaande oplossingen? Mininet Geautomatiseerd Virtualisatie: grote topologieën Zeer simpele netwerkknopen/nodes
Nodes kunnen geen Quagga draaien Enkel script, geen XML
Geautomatiseerd Virtualisatie: grote topologieën Zeer simpele netwerkknopen/nodes Nodes kunnen geen
Quagga draaien Enkel script, geen XML Bestaande oplossingen? Mininet
Bestaande oplossingen? Mininet Geautomatiseerd Virtualisatie: grote topologieën Zeer simpele netwerkknopen/nodes
Nodes kunnen geen Quagga draaien Enkel script, geen XML
Probleemstelling Doelstelling en vereisten Bestaande oplossingen Virtualisatie Implementatie van framework
Gebruik van framework Onderzoek & resultaten Conclusie Indeling
Virtualisatie Wat is virtualisatie? Hardware Fysieke machine
Hardware Besturingssysteem Fysieke machine Besturings systeem Virtualisatie Wat is virtualisatie?
Machine opdelen in Virtuele Machines Fysieke machine VM VM VM
VM Virtualisatie Wat is virtualisatie? Besturings systeem
Fysieke machine VM VM VM VM OS OS OS OS
Virtualisatie Wat is virtualisatie? Besturings systeem Machine opdelen in Virtuele Machines
Hypervisor Volledige virtualisatie Gedeeltelijke virtualisatie Virtualisatie Hoe?
Maakt en beheert virtuele machines = virtual machine manager/monitor VM
VM VM VM Virtualisatie Hypervisor
Hosted hypervisor Bare-metal hypervisor Virtualisatie Hypervisor
Hosted hypervisor Bare-metal hypervisor Hardware Virtualisatie Hypervisor
Hosted hypervisor Bare-metal hypervisor Hardware Besturingssysteem Virtualisatie Hypervisor
Hosted hypervisor Bare-metal hypervisor Hardware Besturingssysteem Hosted Hypervisor Virtualisatie Hypervisor
Hosted hypervisor Bare-metal hypervisor Hardware Besturingssysteem Hosted Hypervisor VM VM
VM VM VM VM VM VM Virtualisatie Hypervisor
Hosted hypervisor Bare-metal hypervisor Hardware Virtualisatie Hypervisor Hardware Besturingssysteem Hosted
Hypervisor VM VM VM VM VM VM VM VM
Hosted hypervisor Bare-metal hypervisor Hardware Bare-metal hypervisor Virtualisatie Hypervisor Hardware
Besturingssysteem Hosted Hypervisor VM VM VM VM VM VM VM VM
Hosted hypervisor Bare-metal hypervisor Hardware Bare-metal hypervisor VM VM VM
VM VM VM VM VM Virtualisatie Hypervisor Hardware Besturingssysteem Hosted Hypervisor VM VM VM VM VM VM VM VM
VMware Workstation, VirtualBox, ... VMware ESXi, Microsoft Hyper-V, Citrix XenServer,...
Virtualisatie Hypervisor Hardware Besturingssysteem Hosted Hypervisor VM VM VM VM VM VM VM VM Hardware Bare-metal hypervisor VM VM VM VM VM VM VM VM
Virtualisatie volledig vs gedeeltelijk
Hypervisor Virtualisatie volledig vs gedeeltelijk
Hypervisor Hardware Virtualisatie volledig vs gedeeltelijk
Hypervisor Hardware OS Virtualisatie volledig vs gedeeltelijk
Hypervisor Hardware OS Hypervisor Virtualisatie volledig vs gedeeltelijk
Hypervisor Hardware OS Hypervisor HW Virtualisatie volledig vs gedeeltelijk
Hypervisor Hardware OS Hypervisor HW OS Virtualisatie volledig vs gedeeltelijk
Linux unshare Virtualisatie Wat gebruikt Mininet?
Functie uit Linux kernel Virtuele machines via isolatie networknamespace isoleren
Virtualisatie unshare
Virtualisatie unshare Functie uit Linux kernel Virtuele machines via isolatie
networknamespace isoleren > unshare --net /bin/bash
Virtualisatie unshare Functie uit Linux kernel Virtuele machines via isolatie
networknamespace isoleren > unshare --net /bin/bash
Hypervisor Hardware OS Virtualisatie unshare Functie uit Linux kernel Virtuele
machines via isolatie networknamespace isoleren > unshare --net /bin/bash
Hypervisor/Kernel OS Virtualisatie unshare Functie uit Linux kernel Virtuele machines
via isolatie networknamespace isoleren > unshare --net /bin/bash
Hypervisor/Kernel Bash Virtualisatie unshare Functie uit Linux kernel Virtuele machines
via isolatie networknamespace isoleren > unshare --net /bin/bash
> unshare --net /bin/bash Uitbreiding LXC Userspace Tools Virtualisatie unshare
Hypervisor/Kernel Bash Functie uit Linux kernel Virtuele machines via isolatie networknamespace isoleren
Extra pakket bij Ubuntu Maakt gebruik van unshare Volledige distributie
in VM Virtualisatie LXC
> lxc-create -n vm -t debian Virtualisatie LXC Extra pakket
bij Ubuntu Maakt gebruik van unshare Volledige distributie in VM
Virtualisatie Keuze voor Large-Scale Framework Unshare & LXC Flexibiliteit Schaalbaarheid
Probleemstelling Doelstelling en vereisten Bestaande oplossingen Virtualisatie Implementatie van framework
Gebruik van framework Onderzoek & resultaten Conclusie Indeling
Implementatie Kenmerken topologie Verbindingen & Interfaces Netwerkknopen Switches
> ip link add type veth Implementatie Kenmerken topologie Verbindingen
& Interfaces Netwerkknopen Switches
> ip link add type veth > unshare --net /bin/bash
> lxc-create -n node -t debian Implementatie Kenmerken topologie Verbindingen & Interfaces Netwerkknopen Switches
> ip link add type veth > unshare --net /bin/bash
> lxc-create -n node -t debian > brctl addbr switch Implementatie Kenmerken topologie Verbindingen & Interfaces Netwerkknopen Switches
Verbindingen & Interfaces NetworkInterface interface_id link_id address mac routes: list
gateway __init__() Implementatie Kenmerken topologie
Netwerkknoop Container container_id container_type interfaces: list networks: list scripts template
storage __init__() Implementatie Kenmerken topologie
Switches Bridge bridge_id bridge_type interfaces: list __init__() Implementatie Kenmerken topologie
Voorgedefinieerde set van topologieën ring ster mesh lijn boom bus
Implementatie Kenmerken topologie: componenten
Aantal knopen in te stellen Te verbinden met andere componenten
Implementatie Kenmerken topologie: NetworkComponent
Probleemstelling Doelstelling en vereisten Bestaande oplossingen Virtualisatie Implementatie van framework
Gebruik van framework Onderzoek & resultaten Conclusie Indeling
API gebruiken Stappenplan Componenten aanmaken Componenten verbinden Exporteren in XML-formaat
Emuleren op Virtual Wall
API gebruiken Componenten aanmaken host = add_host(topology) star = create_star(host,
nodes, addressing, containertype, template) sun = create_star(host, nodes, addressing, containertype, template)
API gebruiken Containers verbinden star_node = star.topology['containers'] ['node1'] sun_node =
sun.topology['containers'] ['node1'] connect_elements(star_node, sun_node, star, sun, addressing)
API gebruiken Exporteren add_component_to_topology(topology, component) write_topology_xml(topology, output)
API gebruiken Emuleren op Virtual Wall > ./lscale.py emulate -f
topo.xml
Probleemstelling Doelstelling en vereisten Bestaande oplossingen Virtualisatie Implementatie van framework
Gebruik van framework Onderzoek & resultaten Conclusie Indeling
Onderzoek Schaalbaarheid? Unshare versus LXC Hoeveel containers op machine mogelijk?
Tijd tot topologie volledig aangemaakt is?
Onderzoek Testmachine Machine op wall1.ilabt.iminds.be Intel Xeon E5520 (2.27GHz) 12
GB RAM Ubuntu 12.04 LTS
Onderzoek Unshare 1 ring
Onderzoek Unshare Ring toevoegen
Onderzoek Unshare Ring toevoegen
Onderzoek Unshare Ring toevoegen
Onderzoek Opzettijd
Onderzoek Ping
Onderzoek Ping
Onderzoek LXC 1 ster
Onderzoek LXC ster toevoegen
Onderzoek LXC ster toevoegen
Onderzoek LXC ster toevoegen
Onderzoek Opzettijd
Onderzoek lxc-start
Onderzoek Ping
Indeling Probleemstelling Doelstelling en vereisten Bestaande oplossingen Virtualisatie Implementatie van
framework Gebruik van framework Onderzoek & resultaten Conclusie
Conclusie Voordelen Snelle generatie topologie Emulatie grotere topologieën Schaalbaar Flexibel
(unshare - LXC)
Conclusie Tekortkomingen Aantal pseudoterminals LXC werkt trager LXC niet thread-safe
Vragen?