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的利用率。

原文地址:https://www.cnblogs.com/hengwei/p/8667343.html

时间: 2024-10-11 08:09:37

Azure VM的加速网络的相关文章

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

<Windows Azure Platform 系列文章目录> 我在使用Azure Virtual Machine虚拟机的时候,常常会结合Virtual Network虚拟网络一起使用. 但是有的时候,我们部署在虚拟网络的Subnet子网信息有误,我想修改这台虚拟机所属的子网,应该怎么修改? 在这里我简单的介绍一下. 1.首先,我们有一个虚拟网络VNet,有2个subnet子网.如下图: 2.我们有一台Azure VM虚拟机,加入到某一台虚拟网络Subnet-1里.如下图: 3.我们现在要实现

Azure VM 部署RDS 之二

3部署AD环境 3.1配置虚拟网络DNS服务器注册 配置DNS,进入portal,虚拟网络,选择刚才创建的虚拟网络,配置页面,输入DNS名称和地址,点击保存,重启所有VM已完成修改. 3.2部署ADDS服务 在管理portal,选择RDSDC, 点击下方的链接,进入系统 在出现的远程桌面的对话框中,输入用户名和密码,登陆到系统. 在服务管理器的右上角,选择管理---添加角色和功能 直接跳过开始页,在Installation Type页选择角色和功能安装,下一步 在server selection

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

<Windows Azure Platform 系列文章目录> Windows Azure VM在默认情况下,是一张网卡,2个IP地址.在很多情况下,我们需要Azure支持多张网卡,在这里笔者简单介绍一下. 假设我们创建了一个虚拟网络,3个Subnet子网,分为命名为Frondend, MidTier和Backend,具有不同的CIDR地址.如下图: 那我们可以创建一个具有三个网卡的Azure VM,每张网卡对应不同的subnet.如下图: 这里特别强调一下,创建多网卡的Azure VM是有限

使用Azure Monitor从Azure VM收集数据

相信大家都知道,在我们日常运维的过程中,对系统的监控是必不可少的.通过监控我们能够了解到系统资源的使用状况如网络吞吐量,磁盘使用率以及系统的某些服务是否处于running状态,以便于在适当的时候采取相应的措施.那今天我们就来看一下如何使用Azure Monitor从Azure虚拟机收集logs和metrics数据.若要使用Azure Monitor收集在Azure中运行的虚拟机的性能和日志数据,我么可以对其安装Log Analytics Agent,通过Log Analytics Agent将A

使用即时VM访问保护Azure VM

前面和大家了聊了如何对运行在Azure中的工作负载进行全方位的监控,但是想必大家都知道,若要保证系统的正常运行我们不仅要实时的监控系统的负载,还要确保系统的安全.那么接下来我们就一起来看一下如何使用Azure安全中心所提供的即时VM访问( Just in Time VM Access)功能来保护Azure VM 即使VM访问是Azure安全中心中的一个功能,通过即时VM访问,我们可以通过阻止到特定端口的入站流量来在网络级别锁定VM,从而减少对VM的***面,同时他也保持在需要时可以远程访问VM的

如何使用Azure VM串行控制台

Azure VM现在可以通过Azure门户访问串行控制台.它不依赖于虚拟机的网络或操作系统状态.这是理想的恢复机器/数据,修改系统配置和故障排除.Azure串行控制台访问只能通过Azure门户访问.它使用虚拟机的COM1端口.这适用于Windows和Linux虚拟机.在我的演示中,我将展示如何通过串口控制台访问windows VM. 先决条件 仅适用于ARM模式创建的资源,不适用于经典部署模型 最少具有虚拟机的 Container 角色 VM的账户密码 先决条件都准备好以后,我们就可以开始配置了

利用Windows Azure Pack创建虚拟化网络

接上一篇,SCVMM网络虚拟化配置软件定义网络SDN,不太清楚的同学可以先看看.我们利用Windows Server 2012 R2与SCVMM R2进行了网络虚拟化的配置,下面我们要来验证一下网络虚拟化是否生效.那么,最简单的方法就是利用Windows Azure Pack来进行虚拟网络创建.最近太忙了,这篇文章早写好了快两个月. 1.首先,我们登陆的Windows Azure Pack的租户门户,选择自定义创建"虚拟网络".   2.下面填入虚拟网络的名称,选择IPV4地址协议,配

Azure VM部署FTP

Azure VM部署FTP -----Windows Server篇 由于在Azure的VM中部署FTP Server相比本地部署来说,还需要考虑Azure的发布,默认情况下,Azure会禁用所有的虚拟机端口,所以我们需要手动开启FTP的端口. 1 准备虚拟机和IIS服务 安装IIS中FTP Server(PS: 虚拟机部署详见之前的虚拟机管理) 通过RDP进入到虚拟机,选择添加角色和功能,开始部署FTP角色 直接下一步 选择"基于角色或基于功能的安装",下一步 选择相应的服务器,下一

PowerShell批量配置Azure VM端点

我们可以通过PowerShell命令:Add-AzureEndpoint来向虚拟机添加端点. 请参考以下脚本,批量添加虚拟机端点: 备注:该例子针对一个虚拟机,添加了三个端口: 端口名称 协议 公用端口 私有端口 MyPort1 tcp 5001 5001 MyPort2 tcp 5002 5002 MyPort3 udp 5003 5003 该例子中,云服务名称与虚拟机名称均为:JohnsonLinux.如果需要添加更多的端口,那么可以按照相应格式,将端口配置添加到$newVmEndpoint