Data Center Load Balancing 11.11.2015 Kristian Hartikainen
Load Balancing in Computing Efficient distribution of the workload across the available computing resources Distributing computation over multiple CPU cores Distributing network requests across multiple servers And many others... The goal is efficient resource usage to optimize the desired performance metrics Maximizing network throughput Minimizing latency And many others...
Data Center Load Balancing Load balancing problems arise in several (computing) contexts Our focus is on the data center and mobile edge load balancing Data center load balancing also consists of several different levels CPU's, network processing units, racks, clusters, data centers
Data Center Load Balancing Data centers are becoming larger and larger and more common Large companies are building their own data centers Many other companies are moving their computation, storage and operations to clouds, i.e. data centers provided by other companies However, scaling data center network is difficult Workloads are a priori unkown, and also variable over time The data centers often run commodity OS, and thus the software and protocols cannot be customized Virtualization, applications running on different physical racks
Papers About Load Balancing Mohammad Al-Fares, Sivasankar Radhakrishnan, Barath Raghavan, Nelson Huang, and Amin Vahdat. 2010. Hedera: dynamic flow scheduling for data center networks. In Proceedings of the 7th USENIX conference on Networked systems design and implementation (NSDI'10). USENIX Association, Berkeley, CA, USA, 19-19. Keqiang He, Eric Rozner, Kanak Agarwal, Wes Felter, John Carter, and Aditya Akella. 2015. Presto: Edge-based Load Balancing for Fast Datacenter Networks. SIGCOMM Comput. Commun. Rev. 45, 5 (August 2015), 465-478. Mohammad Alizadeh, Tom Edsall, Sarang Dharmapurikar, Ramanan Vaidyanathan, Kevin Chu, Andy Fingerhut, Vinh The Lam, Francis Matus, Rong Pan, Navindra Yadav, and George Varghese. 2014. CONGA: distributed congestion-aware load balancing for datacenters. In Proceedings of the 2014 ACM conference on SIGCOMM (SIGCOMM '14). ACM, New York, NY, USA, 503-514. DOI=http://dx.doi.org/10.1145/2619239.2626316
Data Center Network Topology Limited port density (even in the highest-end) switches forces the data center topology to take a form of multi-rooted tree
Data Center Network Topology The goal is to simultaneously and dynamically forward network flows along the available paths However, the existing protocols are optimized for a single path Today's state of the art data center forwarding is based on Equal Cost Multi-path (ECMP) algorithms. ECMP is static, meaning that the algorithm does not account for either current network utilization or flow size This results in hash collisions and thus degrades the overall switch utilization ECMP randomly hashes flows to paths ECMP uses purely local decision to split traffic among equal cost paths, and is completely unaware of the potential further congestions on the path Many of the proposed solution require expensive specialized hardware or changes in the transport layer Makes the deployment harder We survey the available possibilities to overcome these issues and do the load balancing efficiently
Multipath TCP (MPTCP) challenging to deploy because it requires changes in the transport layer host-based load balancing adds more complexity to an already complex transport layer
Hedera: Dynamic Flow Scheduling for Data Center Networks Dynamic flow scheduling system, which adaptively schedules a multi-stage switching fabric Central scheduler with global knowledge of active flows > routing based on the network conditions Implemented using commodity hardware and unmodified hosts However, the centralized scheduler is problematic The required update frequency, to approach high performance, itself requires large overheads too slow for the traffic volatility in data centers
CONGA: Distributed Congestion-Aware Load Balancing for Datacenters Estimates real-time congestion on the fabric paths Forwards the flows (flowlets) based on the feedback from remote switches No centralized scheduler like in Hedera Implemented on custom ASIC's Makes the deployment harder
Presto: Edge-based Load Balancing for Fast Datacenter Networks A near uniform sub-flow distributed load balancing scheme Nearly optimal network load balancing at fast network speeds Deals with failures and asymmetry Basically just changes the algorithms in the vswitch and the Linux Kernel generic receive offload mechanism > efficient handling of packet reordering cause by the multipath routing No special hardware or changes to the transport layer required Easy to deploy