KANDOO A FRAMEWORK FOR EFFICIENT & SCALABLE OFFLOADING OF - - PowerPoint PPT Presentation
KANDOO A FRAMEWORK FOR EFFICIENT & SCALABLE OFFLOADING OF - - PowerPoint PPT Presentation
KANDOO A FRAMEWORK FOR EFFICIENT & SCALABLE OFFLOADING OF CONTROL APPLICATIONS Soheil Hassas Yeganeh Yashar Ganjali soheil@cs.toronto.edu yganjali@cs.toronto.edu EVENTS. Rare Control Plane Link state changes Frequent and
A FRAMEWORK FOR EFFICIENT & SCALABLE OFFLOADING OF CONTROL APPLICATIONS
KANDOO
Soheil Hassas Yeganeh
soheil@cs.toronto.edu
Yashar Ganjali
yganjali@cs.toronto.edu
EVENTS.
2
Control Plane Data Plane
- Rare
- Link state changes
- Frequent and Exhaustive
- Network-wide stat collection
- Packet-ins (if flow-entries are not
installed proactively)
SCALABILITY ISSUES.
3
Control Plane Data Plane
Frequent events stress the control plane.
Stress the control channels. Stress controller’s resources.
EXISTING SOLUTIONS.
4
Distributed Controllers: Data Plane Extensions:
Control Plane Control Plane
- Consider this as an intrinsic limitation.
- HyperFlow, Onyx, Devolved Controllers, ...
- Delegate more responsibilities to the data
plane.
- DIFANE, DevoFlow, ...
Control Plane Data Plane Control Plane Data Plane
EXISTING SOLUTIONS.
5
Control Plane Control Plane Control Plane Data Plane Control Plane Data Plane
Still, high control channel consumption. N e e d t
- m
- d
i f y t h e d a t a p l a n e . C
- m
e s a t t h e c
- s
t
- f
v i s i b i l i t y .
PROBLEM STATEMENT.
6
Control Plane Control Plane Control Plane Data Plane Control Plane Data Plane
How to handle frequent events close to the metal without modifying OpenFlow?
THE IDEA.
7
OFFLOADING LOCAL CONTROL APPS TO LOCAL RESOURCES.
Applications that do not need the network-wide state. Resources close to switches.
- But, there are many apps
that are local in scope:
- Applications that require only
local switch state.
Local Apps.
- An assumption in
distributed controllers:
- All control apps require the
network-wide state.
8
Controller Controller Controller App App App Switch Switch Switches Local App Switch Local App Switch
- Local applications:
- Learning Switch
- Local Policy Enforcer
- Link Discovery
- Local components in
control applications:
- Elephant Flow Detection in
an Elephant Flow Rerouting application.
LOCAL APPS.
9
Local App Switch Local App Switch Local App Switch Local App Switch
- Local applications:
- Learning Switch
- Local Policy Enforcer
- Link Discovery
- Local components in
control applications:
- Elephant Flow Detection in
an Elephant Flow Rerouting application.
LOCAL APPS.
9
Local apps have implicit parallelism.
Local App Switch Local App Switch Local App Switch Local App Switch
End-Host
LOCAL RESOURCES.
10
Switch Programmable Switch
We can offload local apps to computing resources next to switches.
Local App
- Soft. Switch
End-Host Local App Switch Local App
End-Host
LOCAL RESOURCES.
10
Switch Programmable Switch
On the same hosts running software switches. Inside programmable switches.
We can offload local apps to computing resources next to switches.
Local App
- Soft. Switch
End-Host
Hosts close to switches.
Local App Switch Local App
KANDOO.
- Two layers of controllers:
- A logically centralized Root Controller.
- Local Controllers.
11
Root Controller Root Controller Switch Local Controller Switch Switch Switch Switch Local Controller Local Controller Root Controller
Rare Events
Frequent Events
KANDOO.
- Two layers of controllers:
- A logically centralized Root Controller.
- Local Controllers.
11
Local controllers run local apps.
Root Controller Root Controller Switch Local Controller Switch Switch Switch Switch Local Controller Local Controller Root Controller
Rare Events
Frequent Events
The root controller runs non-local apps. Local controllers shield the root controller. Lightweight and easy to implement.
AN EXAMPLE:
ELEPHANT FLOW REROUTEING.
12
Switch Switch Switch
OF Controller
Appreroute Appdetect
Stat Reply Stat Request
Root Controller
Appreroute
AN EXAMPLE:
ELEPHANT FLOW REROUTEING.
13
Switch Switch Switch
Local Controller
Appdetect
Local Controller
Appdetect
Local Controller
Appdetect
Root Controller
Appreroute
Flow-Entry Flow-Entry
AN EXAMPLE:
ELEPHANT FLOW REROUTEING.
13
Switch Switch Switch
Local Controller
Appdetect
Local Controller
Appdetect
Local Controller
Appdetect
Application-specific events. Kandoo’s event channels. Scales linearly with the number of switches.
Eelephant
SIMPLE, YET FLEXIBLE, ARCHITECTURE.
14
Root Ctrl Switch Switch Switch Local Ctrl Root Ctrl Switch Switch Switch Local Ctrl
- Soft. Switch
- Soft. Switch
Local Ctrl Local Ctrl Root Ctrl Switch Switch Switch
- Soft. Switch
- Soft. Switch
Local Ctrl Local Ctrl Local Ctrl Local Ctrl Local Ctrl
SIMPLE, YET FLEXIBLE, ARCHITECTURE.
14
Root Ctrl Switch Switch Switch Local Ctrl Root Ctrl Switch Switch Switch Local Ctrl
- Soft. Switch
- Soft. Switch
Local Ctrl Local Ctrl Root Ctrl Switch Switch Switch
- Soft. Switch
- Soft. Switch
Local Ctrl Local Ctrl Local Ctrl Local Ctrl Local Ctrl
Scale at the edge. Normal OpenFlow. One local controller per switch!
EVALUATION SUMMARY.
- Implemented Kandoo:
- Handles 1.3 Mp/s on a single
core of Xeon E7-4807.
- Elephant Flow Rerouting:
- In an emulated environment.
- More than 5x less channel
consumption.
- Significantly better scalability in
regards to the network size.
15
Host Host Host Host
Local Controller 0 Local Controller 1 Local Controller N
Root Controller Appreroute Appdetect Appdetect Appdetect Learning Switch Learning Switch Learning Switch Core Switch ToR Switch 1 ToR Switch N Host Host Host Host
Local Controller 0 Local Controller 1 Local Controller N
Root Controller Appreroute Appdetect Appdetect Appdetect Learning Switch Learning Switch Learning Switch Core Switch ToR Switch 1 ToR Switch N
EVALUATION SUMMARY.
- Implemented Kandoo:
- Handles 1.3 Mp/s on a single
core of Xeon E7-4807.
- Elephant Flow Rerouting:
- In an emulated environment.
- More than 5x less channel
consumption.
- Significantly better scalability in
regards to the network size.
15
500 1000 1500 2000 2500 3000 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Messages Per Second
Ratio of Elephant to Mouse Flows
Normal OpenFlow Controller Kandoo's Root Controller 500 1000 1500 2000 2500 3000 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Messages Per Second
Ratio of Elephant to Mouse Flows
Normal OpenFlow Controller Kandoo's Root Controller
EVALUATION SUMMARY.
- Implemented Kandoo:
- Handles 1.3 Mp/s on a single
core of Xeon E7-4807.
- Elephant Flow Rerouting:
- In an emulated environment.
- More than 5x less channel
consumption.
- Significantly better scalability in
regards to the network size.
15
1000 2000 3000 4000 5000 6000 2 3 4 5 6 7 Messages Per Second Fanout
Normal Openflow Root Controller
1000 2000 3000 4000 5000 6000 2 3 4 5 6 7 Messages Per Second Fanout
Normal Openflow Root Controller
FUTURE DIRECTIONS.
- A Generalized Hierarchy
- Filling the gap between local and non-local apps.
- Finding the right scope is quite challenging.
- Finding the right scope is quite challenging.
- Porting Kandoo to Programmable Switches
- Highly efficient and better resource utilization.
16
THANKS. QUESTIONS?
17