HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable...
Transcript of HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable...
![Page 1: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/1.jpg)
HULA: Scalable Load Balancing Using Programmable Data Planes
Naga Katta1
Mukesh Hira2, Changhoon Kim3, Anirudh Sivaraman4, Jennifer Rexford1
1.Princeton 2.VMware 3.Barefoot Networks 4.MIT
1
![Page 2: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/2.jpg)
Datacenter Load Balancing
2
• Multiple network paths • High bisection bandwidth • Volatile traffic • Multiple tenants
![Page 3: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/3.jpg)
A Good Load Balancer
3
• Multiple network paths – Track path performance – Choose best path
• High bisection bandwidth • Volatile traffic • Multiple tenants
![Page 4: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/4.jpg)
A Good Load Balancer
4
• Multiple network paths – Track path performance – Choose best path
• High bisection bandwidth – Fine grained load balancing
• Volatile traffic • Multiple tenants
![Page 5: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/5.jpg)
A Good Load Balancer
5
• Multiple network paths – Track path performance – Choose best path
• High bisection bandwidth – Fine grained load balancing
• Volatile traffic – In-dataplane
• Multiple tenants
![Page 6: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/6.jpg)
A Good Load Balancer
6
• Multiple network paths – Track path performance – Choose best path
• High bisection bandwidth – Fine grained load balancing
• Volatile traffic – In-dataplane
• Multiple tenants – In-network
![Page 7: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/7.jpg)
CONGA (SIGCOMM’14)
7
![Page 8: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/8.jpg)
Datapath LB: Challenges
8
Tracks all paths
![Page 9: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/9.jpg)
Datapath LB: Challenges
9
Tracks all paths
Large FIBs
![Page 10: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/10.jpg)
Datapath LB: Challenges
10
Tracks all paths
Large FIBs
Custom ASIC
![Page 11: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/11.jpg)
Programmable Commodity Switches
11
• Vendor agnostic – Uniform programming interface (P4) – Today’s trend -> cheaper
• Reconfigurable in the field – Adapt or add dataplane functionality
• Examples – RMT, Intel Flexpipe, Cavium Xpliant, etc.
![Page 12: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/12.jpg)
Programmable Switches - Capabilities
12
Memory
M A
m1 a1
Ingress Parser
Memory
M A
m1 a1
Memory
M A
m1 a1
Memory
M A
m1 a1
Egress Deparser Queue Buffer
P4 Program
Compile
More than OF 1.X
![Page 13: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/13.jpg)
Programmable Switches - Capabilities
13
Memory
M A
m1 a1
Ingress Parser
Memory
M A
m1 a1
Memory
M A
m1 a1
Memory
M A
m1 a1
Egress Deparser Queue Buffer
P4 Program
Compile
More than OF 1.X
Programmable Parsing
![Page 14: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/14.jpg)
Programmable Switches - Capabilities
14
Memory
M A
m1 a1
Ingress Parser
Memory
M A
m1 a1
Memory
M A
m1 a1
Memory
M A
m1 a1
Egress Deparser Queue Buffer
P4 Program
Compile
More than OF 1.X
Programmable Parsing
Match-Action Pipeline
![Page 15: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/15.jpg)
Programmable Switches - Capabilities
15
Memory
M A
m1 a1
Ingress Parser
Memory
M A
m1 a1
Memory
M A
m1 a1
Memory
M A
m1 a1
Egress Deparser Queue Buffer
P4 Program
Compile
More than OF 1.X
Programmable Parsing
Match-Action Pipeline
Register Array
![Page 16: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/16.jpg)
Programmable Switches - Capabilities
16
Memory
M A
m1 a1
Ingress Parser
Memory
M A
m1 a1
Memory
M A
m1 a1
Memory
M A
m1 a1
Egress Deparser Queue Buffer
P4 Program
Compile
More than OF 1.X
Programmable Parsing
Match-Action Pipeline
Stateful Memory
Switch Metadata
![Page 17: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/17.jpg)
Hop-by-hop Utilization-aware Load-balancing Architecture
• Distance-vector like propagation – Periodic probes carry path utilization
• Each switch chooses best downstream path – Maintains only best next hop – Scales to large topologies
• Programmable at line rate – Written in P4.
17
![Page 18: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/18.jpg)
HULA: Scalable and Programmable
18
Objective P4 feature
Probe propagation Programmable parsing
Monitor path performance Link state metadata
Choose best path, route flowlets Stateful memory and comparison operators
![Page 19: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/19.jpg)
Probes carry path utilization
ToR
Aggregate
Spines
Probe originates
Probe replicates
19
![Page 20: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/20.jpg)
Probes carry path utilization
ToR
Aggregate
Spines
Probe originates
Probe replicates
P4 primitives New header format Programmable Parsing RW packet metadata
20
![Page 21: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/21.jpg)
Probes carry path utilization
S1
S2
S3
S4
ToR 10
ToR ID = 10 Max_util = 50%
ToR 1 Probe
ToR ID = 10 Max_util = 80%
ToR ID = 10 Max_util = 60%
21
![Page 22: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/22.jpg)
Each switch identifies best downstream path
S1
S2
S3
S4
ToR 10
Dst Best hop Path util
ToR 10 S4 50%
ToR 1 S2 10%
… …
ToR 1
Best hop table
Probe
ToR ID = 10 Max_util = 50%
22
![Page 23: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/23.jpg)
Switches load balance flowlets
S1
S2
S3
S4
ToR 10
Dest Best hop Path util
ToR 10 S4 50%
ToR 1 S2 10%
… …
Dest Timestamp Next hop
ToR 10 1 S4
… …
… …
ToR 1
Flowlet table
Best hop table
Data
23
![Page 24: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/24.jpg)
Switches load balance flowlets
S1
S2
S3
S4
ToR 10
Dest Best hop Path util
ToR 10 S4 50%
ToR 1 S2 10%
… …
ToR 1
Flowlet table
Best hop table
Data
P4 primitives RW access to stateful memory Comparison/arithmetic operators
24
Dest Timestamp Next hop
ToR 10 1 S4
… …
… …
![Page 25: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/25.jpg)
Switches load balance flowlets
S1
S2
S3
S4
ToR 10
Dest Best hop Path util
ToR 10 S4 50%
ToR 1 S2 10%
… …
ToR 1
Flowlet table
Best hop table
Data
P4 code snippet if(curr_time - flowlet_time[flow_hash] > THRESH) {
flowlet_hop[flow_hash] =best_hop[packet.dst_tor]; } metadata.nxt_hop = flowlet_hop[flow_hash]; flowlet_time[flow_hash] = curr_time;
25
Dest Timestamp Next hop
ToR 10 1 S4
… …
… …
![Page 26: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/26.jpg)
Evaluated Topology
L1
A1 A2
L2
S1 S2
A4
L4
A3
L3
8 servers per leaf
40Gbps
40Gbps
10Gbps
Link Failure
26
![Page 27: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/27.jpg)
Evaluation Setup
• NS2 packet-level simulator • RPC-based workload generator – Empirical flow size distributions – Websearch and Datamining
• End-to-end metric – Average Flow Completion Time (FCT)
27
![Page 28: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/28.jpg)
Compared with
• ECMP – Flow level hashing at each switch
• CONGA’ – CONGA within each leaf-spine pod – ECMP on flowlets for traffic across pods1
28
1. Based on communication with the authors
![Page 29: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/29.jpg)
HULA handles high load much better
29
![Page 30: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/30.jpg)
HULA keeps queue occupancy low
30
![Page 31: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/31.jpg)
HULA is stable on link failure
31
![Page 32: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/32.jpg)
HULA - Summary
• Scalable to large topologies • HULA distributes congestion state
• Adaptive to network congestion • Proactive path probing • Reliable when failures occur • Programmable in P4!
32
![Page 33: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/33.jpg)
Backup
33
![Page 34: HULA: Scalable Load Balancing Using Programmable Data Planesjrex/talks/hula16.pdf · HULA: Scalable Load Balancing Using Programmable Data Planes Naga Katta1 Mukesh Hira2, Changhoon](https://reader033.fdocuments.in/reader033/viewer/2022051604/6002dff6a374c01ff41dd7c7/html5/thumbnails/34.jpg)
HULA: Scalable, Adaptable, Programmable
34
LB Scheme
Congestion aware
Application agnostic
Dataplane timescale
Scalable Programmable dataplanes
ECMP
SWAN, B4 MPTCP
CONGA
HULA