Presentation is loading. Please wait.

Presentation is loading. Please wait.

OpenFlow Controllers Marcelo Pinheiro September 23rd, 2011.

Similar presentations


Presentation on theme: "OpenFlow Controllers Marcelo Pinheiro September 23rd, 2011."— Presentation transcript:

1 OpenFlow Controllers Marcelo Pinheiro September 23rd, 2011

2 Agenda OpenFlow Components OpenFlow Controllers OpenFlow software switch Options

3 OpenFlow Components Reference: http://www.openflow.org/wp/openflow- components/ http://www.openflow.org/wp/openflow- components/

4 OpenFlow Controllers ControllersLanguagesDocsOpen- Source InstitutionsMultithrea ded Notes NOXC++/Phyto n GoodYesNicira NetworksYesWidely used MaestroJavaFairYesRice UniversityYesNo Ref. TremaC/RubyPoorYes No Ref. BeaconJavaGoodYesStanfordYesVery used HeliosC?NoNECNo Ref. BigSwitch*Java?NoBigSwitchProduction Network SNAC**C++/Phyto n ?NoNicira NetworksProduction Network * Based on Beacon ** Based on NOX 0.4 All controllers support OpenFlow 1.0

5 OpenFlow Controllers Performance TEST SETUP – May 17th, 2011 CPU: 1 x Intel Core i7 930 @ 3.33ghz, 4 physical cores, 8 threads RAM: 9GB OS: Ubuntu 10.04.1 LTS x86_64 – Kernel: 2.6.32-24-generic #43-Ubuntu SMP Thu Sep 16 14:58:24 UTC 2010 x86_64 GNU/Linux – Boost Library: v1.42 (libboost-all-dev) – malloc: Google's Thread-Caching Malloc version 0.98-1 – Java: Sun Java 1.6.0_25 Test methodology – cbench is run locally via loopback, the 4th thread's performance is slightly impacted – cbench emulates 32 switches, sending packet-ins from 1 million source MACs per switch – 10 loops of 10 seconds each are run 3 times and averaged per thread/switch combination – tcmalloc loaded first export LD_PRELOAD=/usr/lib/libtcmalloc_minimal.so.0 – Launched with taskset -c 7./cbench -c localhost -p 6633 -m 10000 -l 10 -s 32 - M 1000000 -t

6 OpenFlow Controllers Performance

7 TEST SETUP – May 1st, 2011 Machines: 2 x Dell PowerEdge 2950 (1 for controller, 1 for benchmarker and packet capturing)CPU: 2 x Intel(R) Xeon(R) CPU E5405 (4 Cores, 12M Cache, 2.00 GHz, 1333 MHz FSB) RAM: 4GB Network: 2 x Gigabit ports (tg3 driver) – Buffer sizes: TODO – TCP setting: OS: Debian Squeeze 32-bit – Kernel: 2.6.32-5-686-bigmem – Boost Library: v1.42 (libboost-all-dev) – malloc: Google's Thread-Caching Malloc (libgoogle-perftools-dev) – Java: Sun Java 1.6.0_24 (sun-java6-jdk) Connectivity: machines are connected via 2 directly attached gigabit links. Directly connected interfaces have IP addresses in the same broadcast domain. The second connection is used to run a second instance of the benchmarker software in case more bandwidth is needed for the test.

8 OpenFlow Controllers Performance Controller configuration: – nox: must be configured with "--enable-ndebug" passed to the configure script. – nox_d: must be configured with "--enable-ndebug --with-python=no" passed to the configure script. – beacon: see beacon.ini – maestro: see conf/openflow.conf Control application used: Layer-2 learning switch application. The switch application is a good representative of the controller flow handling performance with tunable read/write ratio (number of unique MAC addresses). Running controllers: Turn off debugging and verbose output. – nox:./nox_core -i ptcp:6633 switch – nox_d:./nox_core -i ptcp:6633 switch -t $NTHREADS – beacon:./beacon – maestro:./runbackground.pl conf/openflow.conf conf/learningswitch.dag Setting CPU affinity for controllers: The following script binds the running threads of a controller to different CPUs (on an 8-core system). Just replace $CTRLNAME with a unique part of controller's binary name (e.g., nox for nox and nox_d). (maestro's runbackground already sets cpu affinity). Running the benchmarker: – Get the latest version of oflops and compile it. – Run with cbench -c $ctrladdr -p $port -s $nswitch -m $duration -l $loop -t where $ctrladdr and $port are controller IP address and port number respectively, $nswitch is the number of emulated switches, $duration is the duration of test, and $loop is the number of times to repeat the test. The -t option is for running the throughput test: omit it for the latency test.

9 OpenFlow Controllers Performance

10 OpenFlow software switch Options Reference Linux Switch: This implementation runs on the widest variety of systems and is easy to port. It is also the slowest, as it cannot take advantage of multiple CPUs and requires kernel-to-user-space transitions. It supports as many ports as you can fit in a PC (8+), including wired and wireless ports. Select platform for further instructions: NetFPGA Switch: This switch offers line-rate performance for 4 Gigabit ports, regardless of packet size, via hardware acceleration. It requires the purchase of a NetFPGA card, which is $500 for researchers and $1000 for industry. More NetFPGA details are available at www.netfpga.org. NetFPGA Switchwww.netfpga.org Open vSwitch: Open vSwitch is a multilayer virtual switch, licensed under the open source Apache 2 license, with OpenFlow support. Open vSwitch currently supports multiple virtualization technologies including Xen/XenServer, KVM, and VirtualBox. Open vSwitch OpenWRT: By porting OpenFlow support to OpenWrt, we convert a cheap commercial wireless router and access point into an OpenFlow-enabled switch with a WebUI and a CLI. OpenWRT NetMagic – The platform is designed with a novel patented architecture, where a common high-density Field Programmable Gate Array (FPGA) device with a combination of commodity Ethernet switching chip can provide the both the high- speed Gigabit Ethernet switching capacity and reconfigurable user-defined packet handling function.

11 NetMagic x NetFPGA

12 Expedient

13 References OpenFlow – http://www.openflow.org/http://www.openflow.org/ NOX - http://noxrepo.org/wp/ http://noxrepo.org/wp/ Beacon - https://openflow.stanford.edu/display/Beacon/Hom e https://openflow.stanford.edu/display/Beacon/Hom e Maestro - http://code.google.com/p/maestro- platform/http://code.google.com/p/maestro- platform/ Trema - http://trema.github.com/trema/http://trema.github.com/trema/ SNAC - http://www.openflow.org/wp/snac/http://www.openflow.org/wp/snac/ Big Switch – http://www.bigswitch.com/http://www.bigswitch.com/ SNAC - http://snacsource.orghttp://snacsource.org NetMagic – http://www.netmagic.org/http://www.netmagic.org/


Download ppt "OpenFlow Controllers Marcelo Pinheiro September 23rd, 2011."

Similar presentations


Ads by Google