DevoFlow: Scaling Flow Management for High-Performance Networks
Andy Curtis Jeff Mogul Jean Tourrilhes Praveen Yalagandula Puneet Sharma Sujata Banerjee
Wednesday, August 17, 11
DevoFlow: Scaling Flow Management for High-Performance Networks - - PowerPoint PPT Presentation
DevoFlow: Scaling Flow Management for High-Performance Networks Andy Curtis Je ff Mogul Jean Tourrilhes Praveen Yalagandula Puneet Sharma Sujata Banerjee Wednesday, August 17, 11 Software-de fi ned networking Wednesday, August 17, 11
Andy Curtis Jeff Mogul Jean Tourrilhes Praveen Yalagandula Puneet Sharma Sujata Banerjee
Wednesday, August 17, 11
Wednesday, August 17, 11
Wednesday, August 17, 11
Wednesday, August 17, 11
Wednesday, August 17, 11
Control-plane Data-plane
Wednesday, August 17, 11
Control-plane Data-plane
Routed packets Inbound packets
Wednesday, August 17, 11
Control-plane Data-plane
Reachability Routed packets Reachability Inbound packets
Wednesday, August 17, 11
Control-plane Data-plane
Routed packets Inbound packets OpenFlow switch Centralized controller
Wednesday, August 17, 11
Flow setups Link state Forwarding rule stats Forwarding table entries Statistics requests
Control-plane Data-plane
Routed packets Inbound packets Centralized controller
Wednesday, August 17, 11
Wednesday, August 17, 11
[Ethane, SIGCOMM 2007]
PortLand [Tavakoli et al. Hotnets 2009]
[Aster*x, ACLD demo 2010; Wang et al., HotICE 2011]
Wednesday, August 17, 11
sized networks is challenging
Wednesday, August 17, 11
OpenFlow in hardware
effective, scalable flow management
center flow scheduling
Wednesday, August 17, 11
OpenFlow in hardware Experience drawn from implementing OpenFlow
Wednesday, August 17, 11
. . . . . .
Central controller
Edge switches Aggregation Core
Wednesday, August 17, 11
. . . . . .
Central controller
Edge switches Aggregation Core
Wednesday, August 17, 11
. . . . . .
Central controller
Edge switches Aggregation Core
Wednesday, August 17, 11
. . . . . .
Central controller
Edge switches Aggregation Core
Wednesday, August 17, 11
. . . . . .
Central controller
Wednesday, August 17, 11
. . . . . .
Up to 10 million new flows per second in data center with 100 edge switches
[Benson et al. IMC 2010] Central controller
Wednesday, August 17, 11
. . . . . .
Up to 10 million new flows per second in data center with 100 edge switches
[Benson et al. IMC 2010]
If controller can handle 30K flow setups/
Central controller
Wednesday, August 17, 11
. . . . . .
Central controller
Onix [Koponen et al. OSDI 2010] Maestro [Cai et al. Tech Report 2010] HyperFlow [Tootoonchian and Ganjali, WREN 2010] Devolved controller [Tam et al. WCC 2011]
Wednesday, August 17, 11
. . . . . .
Central controller
Wednesday, August 17, 11
Control-plane Data-plane
Routed packets Inbound packets
Wednesday, August 17, 11
Control-plane Data-plane Switch CPU ASIC Switch control-plane
Routed packets Inbound packets
Wednesday, August 17, 11
Control-plane Switch CPU ASIC
Routed packets Inbound packets
Data-plane Switch control-plane
Wednesday, August 17, 11
Wednesday, August 17, 11
~1 control packet for every 2–3 data packets
Wednesday, August 17, 11
Wednesday, August 17, 11
Client A Client B OpenFlow controller
ProCurve 5406 zl switch
Wednesday, August 17, 11
Client A Client B OpenFlow controller
ProCurve 5406 zl switch
We believe our measurement numbers are representative of the current generation of OpenFlow switches
Wednesday, August 17, 11
50 100 150 200 250 300
Flow setups per sec.
5406 zl
Wednesday, August 17, 11
1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Flow setups per sec.
5406 zl
Expected
We can expect up to 10K flow arrivals / sec.
[Benson et al. IMC 2010]
40x difference!
Wednesday, August 17, 11
1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Flow setups per sec.
5406 zl
Expected
Too much latency: adds 2ms to flow setup
Wednesday, August 17, 11
Control-plane
Routed packets Inbound packets
Data-plane Switch CPU
Wednesday, August 17, 11
Control-plane
Routed packets Inbound packets
Data-plane Switch CPU
Wednesday, August 17, 11
Control-plane
Routed packets Inbound packets
Data-plane Switch CPU
Wednesday, August 17, 11
Wednesday, August 17, 11
50 100 150 200 250 300
Flow setups per sec.
Never 1 s 500 ms Stat-pull frequency:
Wednesday, August 17, 11
edge switch
Wednesday, August 17, 11
magnitude more bandwidth
CPU speeds
for several generations
Wednesday, August 17, 11
OpenFlow in hardware
effective, scalable flow management
center flow scheduling
Wednesday, August 17, 11
We devolve control over most flows back to the switches
Wednesday, August 17, 11
flow management
Wednesday, August 17, 11
Wednesday, August 17, 11
for new microflows
Wednesday, August 17, 11
wildcard rules
src dst src port dst Port * 129.100.1.5 * * src dst src port dst Port
exact-match rules
Wednesday, August 17, 11
wildcard rules
src dst src port dst Port * 129.100.1.5 * * src dst src port dst Port
exact-match rules
Wednesday, August 17, 11
wildcard rules
src dst src port dst Port * 129.100.1.5 * * src dst src port dst Port
exact-match rules
Wednesday, August 17, 11
wildcard rules
src dst src port dst Port * 129.100.1.5 * * src dst src port dst Port 129.200.1.1 129.100.1.5 4832 80
exact-match rules
Wednesday, August 17, 11
for new microflows
Wednesday, August 17, 11
for new microflows
1/3 1/6 1/2
Wednesday, August 17, 11
Wednesday, August 17, 11
probability
Wednesday, August 17, 11
probability
reached, flow is setup at central controller
Wednesday, August 17, 11
probability
reached, flow is setup at central controller
Wednesday, August 17, 11
most mechanisms
Wednesday, August 17, 11
application, but scaling is still a challenge
Wednesday, August 17, 11
Wednesday, August 17, 11
new flows
Wednesday, August 17, 11
new flows
to detect elephant flows
central controller
Wednesday, August 17, 11
performance?
Wednesday, August 17, 11
Wednesday, August 17, 11
17 Mbps
Wednesday, August 17, 11
bandwidth
. . . . . .
bandwidth
Wednesday, August 17, 11
[Kandula et al. IMC 2009]
Wednesday, August 17, 11
[Kandula et al. IMC 2009]
bytes per flow
Wednesday, August 17, 11
(i.e., Hedera [Al-Fares et al. NSDI 2010])
Wednesday, August 17, 11
Wednesday, August 17, 11
50 100 150 200 250 300 Aggregate Throughput (Gbps)
Shuffle with 400 servers
ECMP Wildcard Stat-pulling Sampling Thresholds
OpenFlow-based DevoFlow-based
Wednesday, August 17, 11
50 100 150 200 250 300 Aggregate Throughput (Gbps)
Shuffle with 400 servers
ECMP Wildcard Stat-pulling Sampling Thresholds
OpenFlow-based DevoFlow-based
Wednesday, August 17, 11
MSR workload
ECMP Wildcard Stat-pulling Sampling Thresholds
OpenFlow-based DevoFlow-based
50 100 150 200 250 Aggregate throughput (Gbps)
Wednesday, August 17, 11
Shuffle with 400 servers
ECMP VLB Stat-pulling Sampling Thresholds OpenFlow-based DevoFlow-based 40 80 120 160 200 240 Aggregate Throughput (Gbps)
Wednesday, August 17, 11
Shuffle with 400 servers
ECMP VLB Stat-pulling Sampling Thresholds OpenFlow-based DevoFlow-based 40 80 120 160 200 240 Aggregate Throughput (Gbps)
Wednesday, August 17, 11
Shuffle with 400 servers
ECMP VLB Stat-pulling Sampling Thresholds OpenFlow-based DevoFlow-based 40 80 120 160 200 240 Aggregate Throughput (Gbps)
Wednesday, August 17, 11
Shuffle with 400 servers
ECMP VLB Stat-pulling Sampling Thresholds OpenFlow-based DevoFlow-based 40 80 120 160 200 240 Aggregate Throughput (Gbps)
Wednesday, August 17, 11
Shuffle + MSR workload
ECMP VLB Stat-pulling Sampling Thresholds OpenFlow-based DevoFlow-based 50 100 150 200 250 300 350 400 Aggregate throughput (Gbps)
Wednesday, August 17, 11
Shuffle + MSR workload
ECMP VLB Stat-pulling Sampling Thresholds OpenFlow-based DevoFlow-based 50 100 150 200 250 300 350 400 Aggregate throughput (Gbps)
Wednesday, August 17, 11
DevoFlow-based OpenFlow-based
2000 4000 6000 8000
Wildcard Stats-pulling Sampling Threshold
483 7758 705 74
Wednesday, August 17, 11
DevoFlow-based OpenFlow-based
2000 4000 6000 8000
Wildcard Stats-pulling Sampling Threshold
483 7758 705 74
Wednesday, August 17, 11
DevoFlow-based OpenFlow-based
2000 4000 6000 8000
Wildcard Stats-pulling Sampling Threshold
483 7758 705 74
Multipath wildcard rules and targeted stats collection reduces control traffic
Wednesday, August 17, 11
250 500 750 1000 Forwarding table entries
DevoFlow-based OpenFlow-based
Wildcard Stats-pulling Sampling Threshold
71 926 6 13
Wednesday, August 17, 11
250 500 750 1000 Forwarding table entries
DevoFlow-based OpenFlow-based
Wildcard Stats-pulling Sampling Threshold
71 926 8 15
Wednesday, August 17, 11
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 50 100 150 200 250 0.1 0.5 1 10 30 Never Percent of forwarding bandwidth needed for control plane bandwidth Control plane throughput needed (Mbps) Stat-pulling rate 95th percentile 99th percentile
(s)
Wednesday, August 17, 11
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 50 100 150 200 250 0.1 0.5 1 10 30 Never Percent of forwarding bandwidth needed for control plane bandwidth Control plane throughput needed (Mbps) Stat-pulling rate 95th percentile 99th percentile
5406zl bandwidth
(s)
Wednesday, August 17, 11
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 50 100 150 200 250 0.1 0.5 1 10 30 Never Percent of forwarding bandwidth needed for control plane bandwidth Control plane throughput needed (Mbps) Stat-pulling rate 95th percentile 99th percentile
5406zl bandwidth This is to meet a 2ms switch- internal queuing deadline
(s)
Wednesday, August 17, 11
switches
reliance on the control-plane
for data center flow scheduling
Wednesday, August 17, 11
Wednesday, August 17, 11
Wednesday, August 17, 11
with use of switch CPU
Wednesday, August 17, 11
32K–64K exact match entries ~1500 TCAM entries
Wednesday, August 17, 11
5000 10000 15000 20000 25000 30000 35000 Flow table size (flows) 2 4 6 8 Time to pull statistics (s) Average reply time Maximum reply time
Wednesday, August 17, 11
5000 10000 15000 20000 25000 30000 35000 Flow table size (flows) 2 4 6 8 Time to pull statistics (s) Average reply time Maximum reply time
2.5 sec. to pull stats at average edge switch
Wednesday, August 17, 11
1 2 3 4 5 6 7 8 9 10 Stats request rate (req / s) 50 100 150 200 250 300 TCP connections rate (sockets / s) TCP connection rate 2000 4000 6000 8000 Stats collected (entries / s) Stats collected
Wednesday, August 17, 11
[Kandula et al. IMC 2009]
Inter-arrival times Flow sizes
Wednesday, August 17, 11
100 200 300 400 500 600 MSR, 25% inter-rack MSR, 75% inter-rack shu e, n=400 MSR + shu e, n = 400 MSR + shu e, n = 800 Aggregate Throughput (Gbps) ECMP Wildcard 1s Pull-based 5s Sampling 1/1000 Threshold 1MB
Workload
DevoFlow-based OpenFlow-based
Wednesday, August 17, 11
504 483 446 29,451 7,758 4,871 7,123 709 71 432 181 74 5000 10000 15000 20000 25000 30000 0.1s 1s 10s 0.1s 1s 10s 1/100 1/1000 1/10000 128KB 1MB 10MB Wildcard Pull-based Sampling Threshold
MSR, 25% inter-rack MSR, 75% inter-rack
DevoFlow schedulers OpenFlow schedulers
DevoFlow-based OpenFlow-based
Wednesday, August 17, 11
200 400 600 800 1000 1200 1400 1600 1800 0.1s 1s 10s 0.1s 1s 10s 1/100 1/1000 1/10000 128KB 1MB 10MB Wildcard Pull-based Sampling Threshold
Avg - MSR, 25% inter-rack Max - MSR, 25% inter-rack Avg - MSR, 75% inter-rack Max - MSR, 75% inter-rack
DevoFlow schedulers OpenFlow schedulers
DevoFlow-based OpenFlow-based
DevoFlow aggressively uses multipath wildcard rules
Wednesday, August 17, 11