Empowering Azure Storage with RDMA - Bai, Wei; Abdeen, Shanim Sainul; Agrawal, Ankit; Attre, Krishan Kumar; Bahl, Victor, Ameya Bhagat; Bhaskara, Gowri; Brokhman, Tanya; Cao, Lei; Cheema, Ahmad; Chow, Rebecca; Cohen, Jeff; et al. (USENIX Symposium on Networked Systems Design and Implementation (NSDI), 2023)
Given the wide adoption of disaggregated storage in public clouds, networking is the key to enabling high performance and high reliability in a cloud storage service. In Azure, we choose Remote Direct Memory Access (RDMA) as our transport and aim to enable it for both storage frontend traffic (between compute virtual machines and storage clusters) and backend traffic (within a storage cluster) to fully realize its benefits. As compute and storage clusters may be located in different datacenters within an Azure region, we need to support RDMA at regional scale. This work presents our experience in deploying intra-region RDMA to support storage workloads in Azure. The high complexity and heterogeneity of our infrastructure bring a series of new challenges, such as the problem of interoperability between different types of RDMA network interface cards. We have made several changes to our network infrastructure to address these challenges. Today, around 70% of traffic in Azure is RDMA and intra-region RDMA is supported in all Azure public regions. RDMA helps us achieve significant disk I/O performance improvements and CPU core savings.