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. jQuery带缩略图焦点图插件

    在线演示 本地下载

  2. 递归实现N皇后问题

    其实是看到一位名为“活在二次元的伪触”的博主昨天还是前天写了篇这个题材的笔记,觉得有点意思,于是想自己来写写. 其实我发现上述那位同学写N皇后问题写得还不错,文末也会给出这位同学用通过递归的方法实现N ...

  3. 《Inode与Block重要知识总结核心讲解》【转】

    本文转载自:https://blog.csdn.net/BlackEnn/article/details/50787092 1.查看/dev/sda1下磁盘分区的block大小: 2.查看单个inod ...

  4. Java -- JDBC 批处理

    两种批处理方式: 采用Statement.addBatch(sql)方式实现批处理: •优点:可以向数据库发送多条不同的SQL语句. •缺点: •SQL语句没有预编译. •当向数据库发送多条语句相同, ...

  5. Spring boot 更改端口的几种方式

    web服务的默认端口是8080,但有时候我们需要更改成其他端口,这里有几种端口修改方式: 在application.properties文件添加配置(最简单) server.port= 在applic ...

  6. 我的博客搬家到https://www.w2le.com/了

    大家以后想看我的博文的请到这里哦,欢迎大家访问https://www.w2le.com/

  7. docker安装---CentOS_7

    操作系统要求 要安装Docker,您需要64位版本的CentOS 7.步骤:   卸载旧版本 Docker的旧版本被称为docker或docker-engine . 如果这些已安装,请卸载它们以及关联 ...

  8. ComboBoxStyle和ToggleButton

    <Style x:Key="ComboBoxStyle" TargetType="{x:Type ComboBox}">   <Setter ...

  9. Excel 导入到处问题处理!

    1.未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 因为没有安装64位的Jet40驱动.可以到 http://www.microsoft.com/downl ...

  10. java常用封装方法

    public Map<String,String> getDateByStr(String str,String startDate,String endTime){ Map<Str ...