University MW 1100am1220pm ControlPlane Scalability COS 597E Software Defined Networking Controller Scalability Challenges Number of switches Number of control sessions Frequency of events ID: 778385
Download The PPT/PDF document "Jennifer Rexford Princeton" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Jennifer RexfordPrinceton UniversityMW 11:00am-12:20pm
Control-Plane Scalability
COS 597E: Software Defined Networking
Slide2Controller Scalability ChallengesNumber of switchesNumber of control sessions
Frequency of events
Size of topology state
Performance metricsThroughput: flow rules installed per secondLatency: delay to handle a packet-in
2
Slide3NOX ControllerNOX controller
Single-threaded,
unoptimized
C++ controller30K flow initiations per secondSub-10ms flow install timeNOX-MTMulti-threaded, better I/O handling, optimized
malloc
() implementation, …
On an 8-core machine, 1.6M request/sec and average response time of 2 msec
3
Slide4Distributed ControllersBetter scalability
Smaller topology
Fewer events
Fewer flow installationsBetter performanceCloser to the switchesLower control-plane latencyBetter reliability
Failover to a backup controller
4
Slide5Controller ConfigurationsHierarchical
Global controller, with multiple local controllers
Peers
Each handling different portions of the topology, flow space, slice, or applicationsReplicasMaster, with multiple slavesMultiple active replicas
5
Slide6Working with Multiple ControllersLocal scopeMAC learning
Elephant flow detection
Aggregate/threshold traffic statistics
Network-wide scopeComputing shortest pathsSelecting links to shut down to save energyUser mobility and virtual machine migration
6
Slide7Discussion QuestionsDoes the programmer know there is a multi-threaded/distributed controller?
Automated partitioning? Language constructs?
Does the application have to behave exactly the same as on a single controller?
Approximate shortest paths?Do the techniques for scalability interact with the techniques for fault tolerance?Shared reliable distributed data store?
Any useful changes to
OpenFlow
protocol?
7
Slide8Going Through Some ExamplesMAC learning
Histogram by source IP address
Stateful
firewallShortest-path routingMAC learning at edge, shortest-path in coreTraffic engineeringConsistent updates
Hedera
(elephant flow routing)
8