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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ah-Lun Tang
June 24, 2013
Technology
0
280
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
360
So You Think You Can Code - pINGy - Pitch Saturday
ahluntang
0
310
Westtoer
ahluntang
1
48
Other Decks in Technology
See All in Technology
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
140
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
420
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
220
配列に見る bash と zsh の違い
kazzpapa3
1
150
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
300
プロポーザルに込める段取り八分
shoheimitani
1
280
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
190
OpenShiftでllm-dを動かそう!
jpishikawa
0
110
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
2
200
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.1k
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
Building AI with AI
inesmontani
PRO
1
690
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
420
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
What's in a price? How to price your products and services
michaelherold
247
13k
A Tale of Four Properties
chriscoyier
162
24k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
270
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?