Skip to content

Commit e1ff801

Browse files
authored
Merge pull request #230532 from v-thepet/vnet2
Freshness: Five virtual network articles
2 parents 38f8e3e + f63c1bb commit e1ff801

File tree

7 files changed

+1057
-930
lines changed

7 files changed

+1057
-930
lines changed
Lines changed: 73 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Accelerated Networking overview
3-
description: Accelerated Networking to improves networking performance of Azure VMs.
3+
description: Learn how Accelerated Networking can improve the networking performance of Azure VMs.
44
services: virtual-network
55
author: asudbring
66
manager: gedegrac
@@ -9,99 +9,113 @@ ms.devlang: na
99
ms.topic: how-to
1010
ms.tgt_pltfrm: vm-windows
1111
ms.workload: infrastructure
12-
ms.date: 02/15/2022
12+
ms.date: 03/20/2023
1313
ms.author: allensu
1414
---
1515

16-
# What is Accelerated Networking?
16+
# Accelerated Networking (AccelNet) overview
1717

18-
Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, greatly improving its networking performance. This high-performance path bypasses the host from the data path, which reduces latency, jitter, and CPU utilization for the most demanding network workloads on supported VM types. The following diagram illustrates how two VMs communicate with and without accelerated networking:
18+
This article explains Accelerated Networking and describes its benefits, constraints, and supported configurations. Accelerated Networking enables [single root I/O virtualization (SR-IOV)](/windows-hardware/drivers/network/overview-of-single-root-i-o-virtualization--sr-iov-) on supported virtual machine (VM) types, greatly improving networking performance. This high-performance data path bypasses the host, which reduces latency, jitter, and CPU utilization for the most demanding network workloads.
1919

20-
![Communication between Azure virtual machines with and without accelerated networking](./media/create-vm-accelerated-networking/accelerated-networking.png)
20+
The following diagram illustrates how two VMs communicate with and without Accelerated Networking:
2121

22-
Without accelerated networking, all networking traffic in and out of the VM must traverse the host and the virtual switch. The virtual switch provides all policy enforcement, such as network security groups, access control lists, isolation, and other network virtualized services to network traffic.
22+
![Screenshot that shows communication between Azure VMs with and without Accelerated Networking.](./media/create-vm-accelerated-networking/accelerated-networking.png)
2323

24-
> [!NOTE]
25-
> To learn more about virtual switches, see [Hyper-V Virtual Switch](/windows-server/virtualization/hyper-v-virtual-switch/hyper-v-virtual-switch).
24+
**Without Accelerated Networking**, all networking traffic in and out of the VM traverses the host and the virtual switch. The virtual switch provides all policy enforcement to network traffic. Policies include network security groups, access control lists, isolation, and other network virtualized services. To learn more about virtual switches, see [Hyper-V Virtual Switch](/windows-server/virtualization/hyper-v-virtual-switch/hyper-v-virtual-switch).
2625

27-
With accelerated networking, network traffic arrives at the VM's network interface (NIC) and is then forwarded to the VM. All network policies that the virtual switch applies are now offloaded and applied in hardware. Because policy is applied in hardware, the NIC can forward network traffic directly to the VM. The NIC bypasses the host and the virtual switch, while it maintains all the policy it applied in the host.
28-
29-
The benefits of accelerated networking only apply to the VM that it's enabled on. For the best results, enable this feature on at least two VMs connected to the same Azure virtual network. When communicating across virtual networks or connecting on-premises, this feature has minimal impact to overall latency.
26+
**With Accelerated Networking**, network traffic that arrives at the VM's network interface (NIC) forwards directly to the VM. Accelerated Networking offloads all network policies that the virtual switch applied, and applies them in hardware. Because hardware applies policy, the NIC can forward network traffic directly to the VM. The NIC bypasses the host and the virtual switch, while it maintains all the policy it applied in the host.
3027

3128
## Benefits
3229

33-
- **Lower Latency / Higher packets per second (pps)**: Eliminating the virtual switch from the data path removes the time packets spend in the host for policy processing. It also increases the number of packets that can be processed inside the VM.
30+
Accelerated Networking has the following benefits:
3431

35-
- **Reduced jitter**: Virtual switch processing depends on the amount of policy that needs to be applied. It also depends on the workload of the CPU that's doing the processing. Offloading the policy enforcement to the hardware removes that variability by delivering packets directly to the VM. Offloading also removes the host-to-VM communication, all software interrupts, and all context switches.
32+
- **Lower latency and higher packets per second (pps).** Removing the virtual switch from the data path eliminates the time packets spend in the host for policy processing, and increases the number of packets that the VM can process.
3633

37-
- **Decreased CPU utilization**: Bypassing the virtual switch in the host leads to less CPU utilization for processing network traffic.
34+
- **Reduced jitter.** Virtual switch processing time depends on the amount of policy to apply and the workload of the CPU that does the processing. Offloading policy enforcement to the hardware removes that variability by delivering packets directly to the VM. Offloading also removes the host-to-VM communication, all software interrupts, and all context switches.
3835

39-
## Supported operating systems
36+
- **Decreased CPU utilization.** Bypassing the virtual switch in the host leads to less CPU utilization for processing network traffic.
4037

41-
The following versions of Windows are supported:
38+
## Limitations and constraints
4239

43-
- **Windows Server 2022**
44-
- **Windows Server 2019 Standard/Datacenter**
45-
- **Windows Server 2016 Standard/Datacenter**
46-
- **Windows Server 2012 R2 Standard/Datacenter**
47-
- **Windows 10, version 21H2 or later** _(includes Windows 10 Enterprise multi-session)_
48-
- **Windows 11** _(includes Windows 11 Enterprise multi-session)_
40+
- The benefits of Accelerated Networking apply only to the VM that enables it.
4941

50-
The following distributions are supported out of the box from the Azure Gallery:
51-
- **Ubuntu 14.04 with the linux-azure kernel**
52-
- **Ubuntu 16.04 or later**
53-
- **SLES12 SP3 or later**
54-
- **RHEL 7.4 or later**
55-
- **CentOS 7.4 or later**
56-
- **CoreOS Linux**
57-
- **Debian "Stretch" with backports kernel, Debian "Buster" or later**
58-
- **Oracle Linux 7.4 and later with Red Hat Compatible Kernel (RHCK)**
59-
- **Oracle Linux 7.5 and later with UEK version 5**
60-
- **FreeBSD 10.4, 11.1 & 12.0 or later**
42+
- For best results, you should enable Accelerated Networking on at least two VMs in the same Azure virtual network. This feature has minimal impact on latency when you communicate across virtual networks or connect on-premises.
6143

62-
## Limitations and constraints
44+
- You can't enable Accelerated Networking on a running VM. You can enable Accelerated Networking on a supported VM only when the VM is stopped and deallocated.
45+
46+
- You can't deploy virtual machines (classic) with Accelerated Networking through Azure Resource Manager.
47+
48+
### Supported regions
49+
50+
Accelerated Networking is available in all global Azure regions and the Azure Government Cloud.
51+
52+
### Supported operating systems
53+
54+
The following versions of Windows support Accelerated Networking:
55+
56+
- Windows Server 2022
57+
- Windows Server 2019 Standard/Datacenter
58+
- Windows Server 2016 Standard/Datacenter
59+
- Windows Server 2012 R2 Standard/Datacenter
60+
- Windows 10, version 21H2 or later, including Windows 10 Enterprise multisession
61+
- Windows 11, including Windows 11 Enterprise multisession
62+
63+
The following Linux and FreeBSD distributions from the Azure Gallery support Accelerated Networking out of the box:
64+
65+
- Ubuntu 14.04 with the linux-azure kernel
66+
- Ubuntu 16.04 or later
67+
- SLES12 SP3 or later
68+
- RHEL 7.4 or later
69+
- CentOS 7.4 or later
70+
- CoreOS Linux
71+
- Debian "Stretch" with backports kernel
72+
- Debian "Buster" or later
73+
- Oracle Linux 7.4 and later with Red Hat Compatible Kernel (RHCK)
74+
- Oracle Linux 7.5 and later with UEK version 5
75+
- FreeBSD 10.4, 11.1 & 12.0 or later
6376

6477
### Supported VM instances
6578

66-
Accelerated Networking is supported on most general purpose and compute-optimized instance sizes with 2 or more vCPUs. On instances that support hyperthreading, Accelerated Networking is supported on VM instances with 4 or more vCPUs.
79+
- Most general-purpose and compute-optimized VM instance sizes with two or more vCPUs support Accelerated Networking. On instances that support hyperthreading, VM instances with four or more vCPUs support Accelerated Networking.
6780

68-
Support for Accelerated Networking can be found in the individual [virtual machine sizes](../virtual-machines/sizes.md) documentation.
81+
- To check whether a VM size supports Accelerated Networking, see [Sizes for virtual machines in Azure](../virtual-machines/sizes.md).
6982

70-
The list of Virtual Machine SKUs that support Accelerated Networking can be queried directly via the following Azure CLI [`az vm list-skus`](/cli/azure/vm#az-vm-list-skus) command.
83+
- You can directly query the list of VM SKUs that support Accelerated Networking by using the Azure CLI [az vm list-skus](/cli/azure/vm#az-vm-list-skus) command.
7184

72-
> [!NOTE]
73-
> Although NC and NV sizes will show in the command below, they do not support Accelerated Networking. Enabling Accelerated Networking on NC or NV VMs will have no effect.
85+
```azurecli-interactive
86+
az vm list-skus \
87+
--location westus \
88+
--all true \
89+
--resource-type virtualMachines \
90+
--query '[].{size:size, name:name, acceleratedNetworkingEnabled: capabilities[?name==`AcceleratedNetworkingEnabled`].value | [0]}' \
91+
--output table
92+
```
7493

75-
```azurecli-interactive
76-
az vm list-skus \
77-
--location westus \
78-
--all true \
79-
--resource-type virtualMachines \
80-
--query '[].{size:size, name:name, acceleratedNetworkingEnabled: capabilities[?name==`AcceleratedNetworkingEnabled`].value | [0]}' \
81-
--output table
82-
```
94+
>[!NOTE]
95+
>Although NC and NV sizes appear in the command output, those sizes don't support Accelerated Networking. Enabling Accelerated Networking on NC or NV VMs has no effect.
8396
84-
### Custom images (or) Azure compute gallery images
97+
### Custom VM images
8598

86-
If you're using a custom image and your image supports Accelerated Networking, make sure that you have the required drivers to work with Mellanox ConnectX-3, ConnectX-4 Lx, and ConnectX-5 NICs on Azure. Also, Accelerated Networking requires network configurations that exempt the configuration of the virtual functions (mlx4_en and mlx5_core drivers). In images that have cloud-init >=19.4, networking is correctly configured to support Accelerated Networking during provisioning.
99+
If you use a custom image that supports Accelerated Networking, make sure you have the required drivers to work with Mellanox ConnectX-3, ConnectX-4 Lx, and ConnectX-5 NICs on Azure. Accelerated Networking also requires network configurations that exempt configuration of the virtual functions on the mlx4_en and mlx5_core drivers. Images with cloud-init version 19.4 or greater have networking correctly configured to support Accelerated Networking during provisioning.
87100

101+
The following example shows a sample configuration drop-in for `NetworkManager` on RHEL or CentOS:
88102

89-
Sample configuration drop-in for NetworkManager (RHEL, CentOS):
90-
```
103+
```bash
91104
sudo mkdir -p /etc/NetworkManager/conf.d
92105
sudo cat /etc/NetworkManager/conf.d/99-azure-unmanaged-devices.conf <<EOF
93-
# Ignore SR-IOV interface on Azure, since it'll be transparently bonded
106+
# Ignore SR-IOV interface on Azure, since it's transparently bonded
94107
# to the synthetic interface
95108
[keyfile]
96109
unmanaged-devices=driver:mlx4_core;driver:mlx5_core
97110
EOF
98111
```
99112

100-
Sample configuration drop-in for networkd (Ubuntu, Debian, Flatcar):
101-
```
113+
The following example shows a sample configuration drop-in for `networkd` on Ubuntu, Debian, or Flatcar:
114+
115+
```bash
102116
sudo mkdir -p /etc/systemd/network
103117
sudo cat /etc/systemd/network/99-azure-unmanaged-devices.network <<EOF
104-
# Ignore SR-IOV interface on Azure, since it'll be transparently bonded
118+
# Ignore SR-IOV interface on Azure, since it's transparently bonded
105119
# to the synthetic interface
106120
[Match]
107121
Driver=mlx4_en mlx5_en mlx4_core mlx5_core
@@ -110,20 +124,8 @@ Unmanaged=yes
110124
EOF
111125
```
112126

113-
### Regions
114-
115-
Accelerated networking is available in all global Azure regions and Azure Government Cloud.
116-
117-
### Enabling accelerated networking on a running VM
118-
119-
A supported VM size without accelerated networking enabled can only have the feature enabled when it's stopped and deallocated.
120-
121-
### Deployment through Azure Resource Manager
122-
123-
Virtual machines (classic) can't be deployed with accelerated networking.
124-
125127
## Next steps
126-
* Learn [how Accelerated Networking works](./accelerated-networking-how-it-works.md)
127-
* Learn how to [create a VM with Accelerated Networking in PowerShell](./create-vm-accelerated-networking-powershell.md)
128-
* Learn how to [create a VM with Accerelated Networking using Azure CLI](./create-vm-accelerated-networking-cli.md)
129-
* Improve latency with an [Azure proximity placement group](../virtual-machines/co-location.md)
128+
- [How Accelerated Networking works in Linux and FreeBSD VMs](./accelerated-networking-how-it-works.md)
129+
- [Create a VM with Accelerated Networking by using PowerShell](./create-vm-accelerated-networking-powershell.md)
130+
- [Create a VM with Accelerated Networking by using Azure CLI](./create-vm-accelerated-networking-cli.md)
131+
- [Proximity placement groups](../virtual-machines/co-location.md)

0 commit comments

Comments
 (0)