Azure VM的加速網絡
Azure的VM在經過幾代發展後已經有多種硬件類型。目前Azure China的多種機型都配置了FPGA卡,可以實現網絡加速。本文將介紹Azure的加速網絡相關的內容。
一、 加速網絡的硬件準備
下圖是Azure中支持加速網絡的一種硬件的邏輯圖。可以看到硬件中增加了一塊FPGA卡,通過40G與網卡連接,同時FPGA還通過PCIe與CPU直接連接。這塊FPGA卡是實現wan過來加速的硬件條件。同時可以看出,支持硬件加速類型的VM所在是物理機的網絡接口起碼是40Gbps。
二、 SR-IOV
在介紹Azure的加速網絡前,先介紹一下加速網絡中用到的一個技術:SR-IOV。
SR-IOV 是PCI-SIG的一個IOV的規範,目的是提供一種標準規範,通過為虛擬機提供獨立的內存空間,中斷,DMA流,實現VM直接掛載物理邏輯網卡。SR-IOV 架構被設計用於將單個設備通過支持多個VF,並減少硬件的開銷。
SR-IOV 引入了兩種類型:
- PF: 包含完整的PCIe 功能,包括SR-IOV的擴張能力,該功能用於SR-IOV的配置和管理。
- FV: 包含輕量級的PCIe 功能。包含數據移動所需要的最小的必要的資源。
如下圖:
可以看到,VM bypass了虛擬化層面的hypervisor,直接和物理網卡的邏輯網卡通信。減少了對物理機CPU的占用,提高了效率。
三、 SmartNIC
Azure的SmartNIC就是在FPGA的硬件下,通過SR-IOV實現的一種加速網絡。下圖是通過FPGA實現的SmartNIC的邏輯圖:
VM的某個網絡數據流的第一個數據包還是經過虛擬交換機,用於生成SDN的流表,一旦生成後,流表將offload到FPGA的SmartNIC中,由FPGA硬件實現轉發。
加速網絡可實現虛擬機的單根I / O虛擬化(SR-IOV),從而大大提高VM的網絡性能。 這種高性能路徑繞過了數據路徑中的主機,減少了延遲,抖動和CPU利用率,可用於支持的VM類型上最苛刻的網絡工作負載。 下圖顯示了有和沒有加速網絡的兩臺虛擬機之間的通信:
通過SR-IOV技術,在重載的應用中,網絡側占用CPU的資源大大減少,可以明顯提升應用的流暢性。當然如果在輕載情況下,效果並不明顯。
四、 加速網絡(Accelerated networking)
在Azure的VM中,如下的VM支持加速網絡功能:
加速網絡支持大多數具有4個或更多vCPU的通用和計算優化實例大小。 但在支持超線程的D / DSv3或E / ESv3等實例上,需要具有8個或更多vCPU的VM實例支持加速網絡。
支持的系列有:D / DSv2,D / DSv3,E / ESv3,F / Fs / Fsv2和Ms / Mms。
目前在Azure China支持的是Dv2、DSv2、F、FS系列。在Global Azure,還有Dv3系列、Ev3系列、Fv2系列、M系列等。
在Azure China支持加速網絡最小的VM型號是D3v2和F4的VM。
目前支持加速網絡的操作系統有:
- Ubuntu 16.04: 4.11.0-1013 or greater kernel version
- SLES 12 SP3: 4.4.92-6.18 or greater kernel version
- RHEL 7.4: 7.4.2017120423 or greater kernel version
- CentOS 7.4: 7.4.20171206 or greater kernel version
- Microsoft Windows Server 2012 R2 Datacenter
- Windows Server 2016
五、 具體配置
以創建一臺Linux的VM為例:
1、 創建Resouce Group
az group create --name hwan --location chinanorth
2、 創建Vnet
az network vnet create --resource-group hwan --name hwan-vnet --address-prefix 10.1.1.0/24 --subnet-name vlan1 --subnet-prefix 10.1.1.0/24
3、 創建PIP地址
az network public-ip create --name hwan-pip --resource-group hwan
4、 創建網卡
az network nic create --resource-group hwan --name hwan-nic --vnet-name hwan-vnet --subnet vlan1 --accelerated-networking true \ --public-ip-address hwan-pip
此時的網卡開啟了加速網絡的功能,可以通過命令查看到其狀態:
5 創建VM
az vm create --resource-group hwan --name hwanvm01 --image OpenLogic:CentOS:7.4:latest --size Standard_D3_v2 --admin-username hengwei --authentication-type Password --admin-password xxxx --nics hwan-nic
此時帶有加速網絡功能的VM就創建好了。
6、 驗證
登陸到VM中去,通過lspci命令查看:
可以看到Mellanox的網卡的VF接口。這樣帶有加速網絡的VM就創建好了。
7、 限制
目前在China的Azure上,創建帶有加速網絡的VM只能通過Azure CLI或者PowerShell來創建。在Global Azure上可以通過Portal頁面創建。
另外目前只能在創建VM的時候開啟加速網絡功能,在已有的VM上,不能添加這個功能。
六、 總結
Azure通過FPGA開啟SR-IOV功能,使VM獲得SmartNIC,開啟了VM的加速網絡功能,可以實現:
- 低延遲/更高的數據包數處理能力(pps):從數據路徑bypass了虛擬交換機,這減少了主機中用於處理數據包的時間。
- 減少抖動:虛擬交換機處理取決於需要應用的策略數量以及正在進行處理的CPU的工作負載。 將策略執行卸載到硬件通過將數據包直接發送到VM,從而消除了這種可變性。
- CPU利用率降低:Bypass主機的虛擬交換機會降低CPU處理網絡流量的時間,提高CPU的利用率。
Azure VM的加速網絡