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/ \
--subnet-name vlan1 \
--subnet-prefix 10.1.1.0/

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的加速网络的更多相关文章

  1. Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性

    <Windows Azure Platform 系列文章目录> 微软Azure在设计架构的时候,从安全角度考虑,是禁用ICMP协议的.所以对于Azure VM,是无法使用ping命令的. ...

  2. Azure 中的多个 VM NIC 和网络虚拟设备

    YU-SHUN WANG Azure 网络高级项目经理 在 2014 年欧洲 TechEd 大会上,我们宣布了在Azure VM 中为多个网络接口 (NIC) 提供支持,并与多家重要厂商合作,在 Az ...

  3. Windows Azure Virtual Machine (24) Azure VM支持多网卡功能

    <Windows Azure Platform 系列文章目录> Update 2016-03-30 一个VM的多张网卡可以在一个VNet的同一个Subnet子网下,笔者亲自测试过了. 如果 ...

  4. Windows Azure Virtual Machine (30) 修改Azure VM 的Subnet

    <Windows Azure Platform 系列文章目录> 我在使用Azure Virtual Machine虚拟机的时候,常常会结合Virtual Network虚拟网络一起使用. ...

  5. Dynamic CRM 2013 on Windows Azure VM

    三个A2 Size的VM,运行Windows Server 2012: AD Server,SQL Server,App Server 将AD Server的ip地址填写到Windows Azure虚 ...

  6. Windows Azure Virtual Machine (34) Azure VM挂载WebDAV

    <Windows Azure Platform 系列文章目录> 之前使用Azure VM,挂载box网盘.发现不能正常挂载,这里简单记录一下. 1.WebDAV的网络映射,需要WebCli ...

  7. 新版Azure CDN HTTPS加速服务正式上线

    随着网络安全问题日益得到全民重视,HTTPS网络访问协议在互联网访问中得到了广泛的使用.Azure CDN也早在一年前的2015年4月上线了HTTPS加速服务.该加速服务上线一年以来,用户使用量逐渐增 ...

  8. 在 Azure VM 中使用应用商店映像创建 HPC Pack 群集的头节点

    使用 Azure 应用商店和 Azure 门户中的 Microsoft HPC Pack 2012 R2 虚拟机映像创建 HPC 群集的头节点. 此 HPC Pack VM 映像基于预安装了 HPC ...

  9. Azure 中的虚拟网络和虚拟机

    创建 Azure 虚拟机 (VM) 时,必须创建虚拟网络 (VNet) 或使用现有的 VNet. 此外,还需要确定如何在 VNet 上访问 VM. 在创建资源之前必须做好规划,确保了解网络资源的限制. ...

随机推荐

  1. PHP 最大化资源配置 Resource Limits 错误两则

    报错信息1:PHP Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 67108888 b ...

  2. 恢复性训练day1

    DP: 0/1背包一个常见的错误是没有cmax(f[i][j],f[i-1][j]) 0/1背包的拓展中有转移式的变形,以及无限数量背包,分组背包等. 可化为背包问题的一般不会太难. 数组开小,出现大 ...

  3. Java 重写equals()与hashCode()方法

    List对象的contains方法实际上也是调用的equals()方法来进行逐条对比的. 示例代码: package com.imooc.collection; /** * 课程类 */ public ...

  4. Mybatis-config.xml配置文件详解

    1.官方给出的案列: 注意:这些配置在文件中的顺序非常重要!必须严格按照上图中出现的顺序定义 2.properties属性 该属性主要作用就是引入外部的properties是文件,文件格式为xxx=x ...

  5. Struts2全局异常处理

    1.在struts.xml中配置全局异常处理 在Action中抛出异常,此异常可以是action自己抛的,也可以是Service抛出来的,都会跳转到全局异常中,只有在当前Action中配置域全局异常返 ...

  6. How to use QToolBar and QToolButton in Qt

    http://developer.nokia.com/Community/Wiki/How_to_use_QToolBar_and_QToolButton_in_Qt How to use QTool ...

  7. QPushButton 响应回车 设置默认按钮

    ui.pushButton->setFocus(); //设置默认焦点 ui.pushButton->setShortcut( QKeySequence::InsertParagraphS ...

  8. SGU 106 The equation 扩展欧几里德

    106. The equation time limit per test: 0.25 sec. memory limit per test: 4096 KB There is an equation ...

  9. Specify compute hosts with SSDs

    scheduler_driver = nova.scheduler.filter_scheduler.FilterScheduler scheduler_available_filters = nov ...

  10. 有关linux下redis overcommit_memory的问题,有需要的朋友可以参考下。

    我在安装redis-4.0.6后,启动时出现一些问题,如下: :M Jan ::! Background save may fail under low memory condition. To fi ...