zoukankan      html  css  js  c++  java
  • 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的利用率。
  • 相关阅读:
    instance of type of object.prototype.tostring 区别
    字符串属性及方法大总结
    数组属性及方法大总结
    在Vue中遇到的各种坑 及性能提升
    find、filter、map的区别
    react 的CDN 连接
    react开启一个项目 webpack版本出错
    react中的jsx详细理解
    Vue 在beaforeCreate时获取data中的数据
    vue点击时动态改变样式 ------- 最简单的方法
  • 原文地址:https://www.cnblogs.com/hengwei/p/8667343.html
Copyright © 2011-2022 走看看