Accelerated Networking For Azure Virtual Machines

Introduction

Network Performance is a major factor while designing any application hosting infrastructure. In today’s modern computing world, high-speed networks with lower latency and reduced CPU utilization is essential when hosting modernized applications like streaming or real-time applications in which data should stream and real-time updates should happen smoothly. To boost network performance and cater to all such scenarios for Azure Virtual Machines Microsoft has introduced the concept of Accelerated Networking.

However, this feature is available with some limitations. Accelerated Networking is available for Virtual Machine instances that have two or more vCPUs for general purpose VM series (D/DSv2) and compute optimized Virtual Machine M series (F/Fs). This feature is also supported on Virtual Machine instances that support hyperthreading and have four or more vCPUs for series E/ESv3, D/DSv3, Fsv2 and Ms. Supported Operating Systems are Windows 2012 R2 Datacenter, Windows Server 2016 Datacenter, CoreOS Linux, Ubuntu 16.04, RHEL 7.4, CentOS 7.4, Oracle Linux 7.4, SLES 12 SP3, Debian "Stretch" with backports kernel.

Also, the Virtual Machines should be deployed in the same Virtual Network to take advantage of Accelerated Networking.

Understanding Accelerated Networking

Before we explore what Accelerated Networking is let us try to understand how Azure Virtual Machines communicate with each other in a virtual network.

Azure

In Figure 1 we have two Virtual Machines deployed in the same Virtual Network. While communicating with Virtual Machine B, Virtual Machine A’ s traffic goes through Virtual Switch A, Network Card A, Physical Host and then to Network Card B, Virtual Switch B and then finally reaches Virtual Machine B. Virtual Switch is an important hop in the whole traffic route. This enforces all networking policies like access control list, network security groups, and isolation as well as any other virtualized services necessary for network traffic. This is how Virtual Machines talk to each other in the Azure networking infrastructure.

Azure 

In Accelerated Networking, Virtual Switch hop is removed in the network traffic route. All policy enforcement and needed network related tasks performed by the Virtual Switch are offloaded to the underlying hardware. Figure 2 demonstrates how Accelerated Networking works. Virtual Machine A sends traffic directly to Network Card A. Then the traffic flows through Physical Switch Network Card B and then reached Virtual Machine B. This concept is an Azure implementation for Single Root I/O Virtualization (SR-IOV) introduced in Hyper-V for Windows Server 2012.

Creating a Virtual Machine with Accelerated Networking

Let us create a Virtual Machine with Accelerated Networking enabled using an Azure portal. Below are the steps.

Step 1 - Select a Virtual Machine with a supporting Operating System

Log in to Azure Portal and select a supporting Virtual Machine with supporting Operating System. In this demo, Virtual Machine with Windows Server 2012 Datacenter is selected. This feature is only supported in Azure Resource Manager and is not supported on the classic portal. Click on the Create button.

Azure 
 
Step 2 - Configure basic settings

Provide information to configure settings like Virtual Machine Name, Virtual Machine disk type, Username, Password, Subscription, Resource Group details, Location. Click on OK button.

Azure 
 
Step 3 - Select supported Virtual Machine size

Select a VM size that is supported for Accelerated Networking. In this demo D4s_v3 with 4 vCPUs is selected. Click the Select button.

Azure 
 
Step 4 - Enable Accelerated Networking

In the settings section enable Accelerated Networking. This setting will not appear in the supported Operating system and Virtual Machine size is not selected. Also, it will be available only for the Azure Resource Manager.

Azure 
 
Step 5 - Review request summary and create Virtual Machine

Click on Create button to spin up a Virtual Machine with Accelerated Networking enabled.

Azure 
 
Winding up

Though this feature is not supported across all virtual machine SKUs, it is a great feature provided by Azure to boost up network performance for Virtual Machines. However, the virtual machines have to be on the same network. This article demonstrated enabling Accelerated Networking using Azure Resource Manager Portal. However, in the real world where implementations are done for the client, most of the Azure deployments are done using PowerShell scripts. Enabling Accelerated Networking for Virtual Machines using PowerShell will be demonstrated in the next article.