450 likes | 694 Views
Elmo: Source-Routed Multicast for Public Clouds. Muhammad Shahbaz Lalith Suresh, Jen Rexford, Nick Feamster , Ori Rottenstreich , and Mukesh Hira. Cloud Workloads Exhibit 1-to-Many Comm. Patterns. vSwitch. vSwitch. vSwitch. vSwitch. Cloud Workloads Exhibit 1-to-Many Comm. Patterns.
E N D
Elmo: Source-Routed Multicast for Public Clouds Muhammad Shahbaz Lalith Suresh, Jen Rexford, Nick Feamster, Ori Rottenstreich, and Mukesh Hira
Cloud Workloads Exhibit 1-to-Many Comm. Patterns vSwitch vSwitch vSwitch vSwitch
Cloud Workloads Exhibit 1-to-Many Comm. Patterns Tenants: … and more
Cloud Workloads Exhibit 1-to-Many Comm. Patterns Distributed Programming Frameworks (e.g., Hadoop and Spark) Publish-Subscribe Systems (e.g., ZeroMQ and RabbitMQ) Replication (e.g., for Databases and state machines) Infrastructure Applications (e.g., VMware NSX and OpenStack) Streaming Telemetry (e.g., Ganglia Monitoring System) and more …
Cloud Workloads Exhibit 1-to-Many Comm. Patterns Multicast vSwitch vSwitch vSwitch vSwitch
Cloud Workloads Exhibit 1-to-Many Comm. Patterns Multicast vSwitch vSwitch vSwitch vSwitch
Approaches to Multicast Good Bad Tenant Isolation Bisection Bandwidth Group Size Control Overhead Traffic Overhead Network Size Endhost Overhead Run at Line Rate No. of Groups IP Multicast SDN-based Multicast with rule aggregation App. Layer Multicast Src-Routed Multicast - SGM - BIER
Approaches to Multicast Good Bad Tenant Isolation Bisection Bandwidth Group Size Control Overhead Traffic Overhead Network Size Endhost Overhead Run at Line Rate No. of Groups IP Multicast SDN-based Multicast with rule aggregation App. Layer Multicast Src-Routed Multicast - SGM - BIER Elmo
Elmo: Source-Routed Multicast for Cloud Services vSwitch vSwitch vSwitch vSwitch
Elmo: Source-Routed Multicast for Cloud Services Key challenges: • How to efficiently encode multicast forwarding policy inside packets? • How to process this encoding at line rate?
Exploiting DC Characteristics for Efficient Encoding Core - Symmetric - Short Paths Spine - Co-located Placement Leaf Hypervisor vSwitch vSwitch vSwitch vSwitch Processes: VMs, containers, etc.
Programmable Switches for Line Rate Processing Barefoot Tofino or Cavium XPliant PISCES PISCES PISCES PISCES
Encoding a Multicast Tree in Elmo Key design decisions: • Encoding switch output ports in a bitmap • Encoding on the logical topology • Sharing bitmap across switches • Dealing with limited header space using default p-rules • Reducing traffic overhead using s-rules
Encoding a Multicast Tree in Elmo C0 C1 C3 C2 Multicast Tree S6 S7 S0 S1 S2 S3 S4 S5 L6 L7 L0 L1 L2 L3 L4 L5 PISCES PISCES PISCES PISCES
1. Encoding Switch Output Ports in a Bitmap C0 C1 C3 C2 1011 1011 1011 1011 Downstream S6 S7 S0 S1 S2 S3 S4 S5 01 11 10 11 01 10 L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 1. Bitmap is an internal data structurein switches for replicating packets 2. Switches typically have many ports participating in a multicast tree or none at all PISCES PISCES PISCES PISCES
1. Encoding Switch Output Ports in a Bitmap C0 C1 C3 C2 1011 1011 1011 1011 Downstream Upstream S6 S7 S0 S1 S2 S3 S4 S5 Bitmap + Flag Bit 01 11 10 11 01 10 L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 PISCES PISCES PISCES PISCES
2. Encoding on the Logical Topology Core C0 C1 C3 C2 1011 1011 1011 1011 Spine S6 S7 S0 S1 S2 S3 S4 S5 01 11 10 11 01 10 Leaf L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 PISCES PISCES PISCES PISCES
2. Encoding on the Logical Topology Logical Core C0 C1 C3 C2 1011 P2 P0 P1 P3 Logical Spine S6 S7 S0 S1 S2 S3 S4 S5 10 11 01 Leaf L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 PISCES PISCES PISCES PISCES
3. Sharing Bitmap Across Switches Logical Core C0 C1 C3 C2 1011 P2 P0 P1 P3 Logical Spine S6 S7 S0 S1 S2 S3 S4 S5 10 11 01 Leaf L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 Clustering Algorithm (a greedy version of Min-K-Union) to determine which switches should share a bitmap while minimizing extra transmissions. PISCES PISCES PISCES PISCES 001111 L5, L7 p-rule
4. Dealing with Limited Header Space using Default p-Rule C0 C1 C3 C2 1011 P2 P0 P1 P3 S6 S7 S0 S1 S2 S3 S4 S5 10 11 01 L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 PISCES PISCES PISCES PISCES 101111 L0, L6 001111 L5, L7 default p-rule p-rule
5. Reducing Traffic Overhead using s-Rules C0 C1 C3 C2 1011 P2 P0 P1 P3 S6 S7 S0 S1 S2 S3 S4 S5 10 11 01 L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 PISCES PISCES PISCES PISCES 101111 L0, L6 001111 L5, L7 Broadcast default p-rule p-rule
5. Reducing Traffic Overhead using s-Rules C0 C1 C3 C2 1011 P2 P0 P1 P3 S6 S7 S0 S1 S2 S3 S4 S5 10 11 01 L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 PISCES PISCES PISCES PISCES 001111 L5, L7 s-rule entry each p-rule
Encoding a Multicast Tree in Elmo C0 C1 C3 C2 1011 P2 P0 P1 P3 S6 S7 S0 S1 S2 S3 S4 S5 10 11 01 L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 PISCES PISCES PISCES PISCES
Encoding a Multicast Tree in Elmo 1011 C0 C1 C3 C2 1011 P2 P0 P1 P3 P2,P3:11 P0:10 00-1 S6 S7 S0 S1 S2 S3 S4 S5 10 11 01 100101-1 L5,L7:001111 L6 L7 L0 L1 L2 L3 L4 L5 L0,L6:101111 001110 101101 001011 100111 Sender PISCES PISCES PISCES PISCES Parameters: 1 p-rule per downstream layer (2 extra transmissions) and no s-rules Default p-rule
Encoding a Multicast Tree in Elmo 1011 C0 C1 C3 C2 1011 P2 P0 P1 P3 P2,P3:11 P0:10 00-1 S6 S7 S0 S1 S2 S3 S4 S5 10 11 01 100101-1 L5,L7:001111 L6 L7 L0 L1 L2 L3 L4 L5 L0,L6:101111 001110 101101 001011 100111 Sender PISCES PISCES PISCES PISCES Parameters: 1 p-rule per downstream layer (2 extra transmissions) and 1 s-rule per switch Default p-rule
Encoding a Multicast Tree in Elmo 1011 C0 C1 C3 C2 1011 P2 P0 P1 P3 P2,P3:11 00-1 S6 S7 S0 S1 S2 S3 S4 S5 10 11 01 100101-1 L5,L7:001111 L6 L7 L0 L1 L2 L3 L4 L5 001110 101101 001011 100111 s-rule entry each Sender PISCES PISCES PISCES PISCES Parameters: 1 p-rule per downstream layer (2 extra transmissions) and 1 s-rule per switch
Computes the encoding Encoding a Multicast Tree Controller 1011 C0 C1 C3 C2 P2 P0 P1 P3 P2,P3:11 00-1 S6 S7 S0 S1 S2 S3 S4 S5 100101-1 L5,L7:001111 L6 L7 L0 L1 L2 L3 L4 L5 s-rule entry each PISCES PISCES PISCES vSwitch Elmo Header
Computes the encoding Encoding a Multicast Tree Controller s-rules C0 C1 C3 C2 P2 P0 P1 P3 S6 S7 S0 S1 S2 S3 S4 S5 L6 L7 L0 L1 L2 L3 L4 L5 PISCES PISCES PISCES PISCES flow rules specifying: output ports and the Elmo header to push on the packet 00-1 1011 P2,P3:11 L5,L7:001111 100101-1 Elmo Header
Computes the encoding Encoding a Multicast Tree Controller s-rules C0 C1 C3 C2 P2 P0 P1 P3 S6 S7 S0 S1 S2 S3 S4 S5 L6 L7 L0 L1 L2 L3 L4 L5 PISCES PISCES PISCES PISCES flow rules specifying: output ports and the Elmo header to push on the packet 00-1 1011 P2,P3:11 L5,L7:001111 100101-1 Elmo Header
Evaluation We evaluated three main aspects of Elmo: • Data- and control-plane scalability: Elmo scales to millions of multicast groups with minimal flow-table usage and control overhead on switches. • End-to-end applications: Applications run unmodified and benefits from reduced CPU and bandwidth utilization. • Hardware resource requirements: Elmo is inexpensive to implement in switching ASICs. • Load on hypervisor switches: Elmo imposes negligible overheads at hypervisor switches
Elmo Scales to Millions of Groups For a multi-rooted Clos topology with 27K hosts (having 48 hosts per rack), 1M multicast groups (with groups sizes based on IBM’s WVE trace), and a p-rule header of 325 bytes:
Elmo Scales to Millions of Groups For a multi-rooted Clos topology with 27K hosts (having 48 hosts per rack), 1M multicast groups (with groups sizes based on IBM’s WVE trace), and a p-rule header of 325 bytes: * min (max) * https://conferences.sigcomm.org/co-next/2013/program/p61.pdf
Applications Run Unmodified with No Overhead Subscriber Publisher
Elmo Operates within the Header Size Limit of Switch ASICs 190 bytes for other protocols (e.g., datacenter protocols take about 90 bytes)
Elmo Adds Negligible Overheads to Soft. Switches Separate write call for each p-rule
Conclusion • Designed for multi-tenant data centers • Compactly encodes multicast policy inside packets • Operates at line rate using programmable data planes Elmo A Scalable Multicast Service
Questions? Please visit our project webpage at: https://elmo-mcast.github.io Muhammad Shahbaz http://cs.stanford.edu/~mshahbaz