Azure Accelerated Networking: SmartNICs in the Public Cloud
- Daniel Firestone ,
- Andrew Putnam ,
- Hari Angepat ,
- Derek Chiou ,
- Adrian Caulfield ,
- Eric Chung ,
- Matt Humphrey ,
- Kalin Ovtcharov ,
- Jitu Padhye ,
- Doug Burger ,
- Dave Maltz ,
- Albert Greenberg ,
- Sambhrama Mundkur ,
- Alireza Dabagh ,
- Mike Andrewartha ,
- Vivek Bhanu ,
- Harish Kumar Chandrappa ,
- Somesh Chaturmohta ,
- Jack Lavier ,
- Norman Lam ,
- Fengfen Liu ,
- Gautham Popuri ,
- Shachar Raindel ,
- Tejas Sapre ,
- Mark Shaw ,
- Gabriel Silva ,
- Madhan Sivakumar ,
- Nisheeth Srivastava ,
- Anshuman Verma ,
- Qasim Zuhair ,
- Deepak Bansal ,
- Kushagra Vaid ,
- David A. Maltz
15th USENIX Symposium on Networked Systems Design and Implementation (NSDI) |
Modern cloud architectures rely on each server running its own networking stack to implement policies such as tunneling for virtual networks, security, and load balancing. However, these networking stacks are becoming increasingly complex as features are added and as network speeds increase. Running these stacks on CPU cores takes away processing power from VMs, increasing the cost of running cloud services, and adding latency and variability to network performance.
We present Azure Accelerated Networking (AccelNet), our solution for offloading host networking to hardware, using custom Azure SmartNICs based on FPGAs. We define the goals of AccelNet, including programmability comparable to software, and performance and efficiency comparable to hardware. We show that FPGAs are the best current platform for offloading our networking stack as ASICs do not provide sufficient programmability, and embedded CPU cores do not provide scalable performance, especially on single network flows.
Azure SmartNICs implementing AccelNet have been deployed on all new Azure servers since late 2015 in a fleet of >1M hosts. The AccelNet service has been available for Azure customers since 2016, providing consistent <15μs VM-VM TCP latencies and 32Gbps throughput, which we believe represents the fastest network available to customers in the public cloud. We present the design of AccelNet, including our hardware/software co-design model, performance results on key workloads, and experiences and lessons learned from developing and deploying AccelNet on FPGA-based Azure SmartNICs.