1. 程式人生 > >Azure VM的加速網絡

Azure VM的加速網絡

占用 true gic pub 工作 logic 交換機 2012 r2 style

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的加速網絡