优化网络传输性能

优化网络传输性能
■ 河南 郭建伟
编者按:随着Windows Server版本的演进,其功能也变得越来越强大。但是,对于任何版本的Windows Server来说,如何优化和提高网络管理的能力,始终使其重点发展的方向。在最新的Windows Server 2016中,其网络管理与维护的功能得到了进一步的强化。灵活的使用其内置的各种网络优化技术,对于提高网络运维的效率是极为重要的。这里就从DVMQ,RDMA,SMB Direct,SR-IOV,数据中心桥接,QoS,RSS等方面,来讲述了优化网络性能的方法。
管理虚拟机队列
在Hyper-V虚拟化环境中,当物理网卡进行数据传输时,如果没有启用VMQ(即Virtual Machine Queue,虚拟机队列),在处理网络流量时,中断处理只有一个CPU 核心管控,即使存在空闲的CPU核心,也无法参与进来。当启用了VMQ功能后,数据流量就可以在不同的CPU核心上进行处理,从而大大提高网络传输的能力。
在W i n d o w s S e r v e r 2016中,还提供了DVMQ(即Dynaic Virtual Machine Queue,动态虚拟机队列)技术,主要用来强化VMQ(虚拟机队列)的功能。对于DVMQ 来说,相对于VMQ来说增加了监控功能,即可以监控正在使用的CPU核心的工作状态。
如果其检测到某个CPU
核心处于满负荷运行状态,
就会自动将其处理过程切换
到比较闲置的其他CPU核心
上。VMQ技术会在物理网卡
层面为每台虚拟机生成一个
队列,利用对应的虚拟机使
用的虚拟网卡的MAC地址作
为与之关联的队列的标识,
之后VMQ会将不同的队列分
配到对应的CPU核心上进行
处理,当其处理完毕后不会
经由标准的TCP/IP路由,而
通过虚拟交换机的扩展模
崔津渡
块,直接将流量投递到目标
虚拟机上。
DVMQ通过对Hyper-V主
机的逻辑CPU核心进行监控,
将不同的队列从满负载的
CPU逻辑核心切换到较为空
闲的CPU核心上进行处理。
在配置VMQ时,必须保证
物理网卡支持该功能,在虚
拟机上也必须启用该功能。
煤炭科学技术在Hypr-V管理器右侧点
击“虚拟交换机管理器”项,
可以创建一个虚拟交换机,
使其和某块物理网卡进行绑
定。
在该Hyper-V主机上打
开设备管理中,打开该物理
网卡的属性窗口,在“高级”
面板中的“设置”列表周末
选择“虚拟化”项,点击“属
性”按钮,在打开窗口中选择
“启用虚拟机队列”项,启用
VMQ功能。
在PowerShell窗口中执
行“Get-NetAdapterVMQ”命
令,查看VMQ的状态信息。当不同的虚拟机和外界进行流量传输时,就会看到对应的虚拟机队列信息。在Hyper-V管理器中选择某个
虚拟机,在右侧点击“设置”
项,在打开窗口左侧选择虚
拟网卡,在右侧选择对应的
虚拟交换机。在左侧选择“硬
件加速”项,在右侧选择“启
用虚拟机队列”项。让虚拟
机支持VMQ功能。
RDMA和SMB Direct的功能和特点
对于RDMA(即Remote Direct Memery Access,远程直接内存访问)技术来说,主要用来减少在网络传输中CPU处理的过程,提高CPU 的效能。例如,在Windows Server 2016中存在一台文件服务器,当启用了RDMA功能后,并且物理网卡/交换机等设备也要支持该功能,其通讯过程就会跳过操作系统和网卡驱动等环节,应用程序提交的数据会发送到网卡当中,网卡就会完成处理和通讯的过程。
在Windows Server 2016的虚拟化环境中,如果虚拟化的客户机和文件服务器位于同一台Hyper-V主机中,那么当启用了RDMA功能后,连底层的网卡通讯过程都可
以忽略掉,即虚拟机的应用被折磨的男孩
之间可以进行直接的内存通
讯。当然,操作系统必须为
Windows Server 2016,并且
需要安装对应的集成的驱动
程序。从实质上说,RDMA的
潘金莲之前世今生诱僧
功能就是将应用程序中的通
讯数据直接和网卡进行交
互。
在Hyper-V主机中的虚
拟机可以直接进行内存通
讯,因为虚拟机要和物理主
机进行通讯,会使用VMBUS
的功能,因此主机可以了解
所有虚拟机的基本定位信
息,所有的虚拟机也都使用
了VMBUS功能,所以虚拟机
之间的通讯可以直接跳过虚
拟系统和虚拟网卡层面的。
对于SMB Direct功
能来说,是基于RDMA之上
来实现的,并且其是专门
针对文件服务器来实现共
享。启用SMB Direct功能,
可以进一步的提升网络通
讯的效率降低网络延迟,而
且可以有效降低CPU的负
载。在Hyper-V主机上打开
PowerShell窗口,执行“Get-
Command *rdma*”命令,查
看和RDMA相关的命令信息。
执行“Get-NetAdapterRdma”
命令,查看网卡信息,在其
中的“Enabled”列中如果显
卸骨术
示“False”,表示该网卡没有
启用RDMA功能。执行“Get-
NetAdapterRdma | Enable-
NetAdapterRdma”命令,启用
RDMA功能。
实现虚拟网卡映射
SR-IOV(即Single Root I/O Virtualization,单根虚拟化)适用于Windows
Server 2016的Hyper-V运
行环境,在Hyper-V中管理
员可以创建多台虚拟机,并
为其配置虚拟网卡,使用SR-IOV技术,可以有效提高虚拟网卡的效能。对RSS和VMQ技术来说,在处理网络流量时,必须依靠CPU的支持方可。对于SR-IOV 来说,可以直接跳过CPU 利用网卡进行处理,这样就减轻了CPU的负载。SR-IOV可以将虚拟网卡
直接映射到物理网卡中,使其可以直接调用物理网卡中的资源,来完成对于通讯队列的处理。
因为物理网卡提供了相应的API接口,这些接口被称为虚拟函数,其可以直接调用物理网卡中的芯片来处理数据流量。SR-IOV的主要作用就是将虚拟的网络通讯队列,直接映射到虚拟机中进行处理,避开了物理CPU 的处理环节。实现SR-IOV 技术,是存在一些先决条件的。例如服务器的网卡,主板都必须支持SR-IOV功能,在网卡和主板上都配置了特殊的芯片,来实现SR-IOV功能。在服务器的BIOS中必须启用该功能,服务器必须支持SLAT(即Second Level Address Translation)功
能,可以对虚拟内存地址进
行转换。
张岱年对于SLAT来时,其实质
上是将虚拟机中的内存地址
和物理服务器的内存地址进
行更好的匹配,让虚拟机在
使用硬件资源是减少地址转
换的过程,直接访问到物理
的内存地址。当启用了SR-
IOV功能后,RSS就会被自动
停用。对于Hyper-V虚拟机
来说,需要安装对应的网卡
驱动,启用网卡的SR-IOV功
能。
对应地,在Hyper-V的
虚拟交换机上也必须启用
用SR-IOV功能。在某台
Hyper-V主机上打开设备管
理器,双击某块物理网卡,在
其属性窗口中的“高级”面
板中选择“虚拟化”项,
点击属性按钮,在打开
窗口(如图1)中选择
“启用SR-IOV”项,启用
该功能。将虚拟机中的
网卡和物理网卡进行直
接连接,虚拟网卡将需
要处理的资源投送给物
理网卡,物理网卡可以
直接处理通讯的队列。
在Hyper-V管理器
中打开虚拟交换机管理界
面,删除存在的虚拟焦化经
济。以内对于已经存在的虚
拟交换机来说,是无法启用
SR-IOV功能的。创建新的虚
拟交换机,输入其名称,选择
“外部网络”项,在列表中选
择启用了SR-IOV功能的网
卡,选择“启用单根I/O虚拟
化”项,点击确定按钮,让该
虚拟交换机支持SR-IOV功
能。选择某台虚拟机,在其
设置窗口中为其指定上述虚
拟交换机。在左侧选择“硬
件加速”向,在右侧选择“启
用SR-IOV”项,就为该机的
虚拟网卡启用了SR-IOV功
能。这样,虚拟网卡就具备
了虚拟函数接口功能,通过
该接口就可以将信息投递到
物理网卡中。图1 启用单根虚拟化功能
使用数据中心桥接,加速网络访问
数据中心桥接(即Datacenter Bridging)是基于国际化标准组织所制定的标准协议,其主要作用是帮助应用程序在进行网络通信时,能够获取足够的优先级和网络直连的保障。因为数据中心桥接功能是基于标准协议创建的,所以不仅适用于Windows Server 的系统,对于数据中心的服务器、网卡和交换机等设备也可以提供支持。对于物理网络通讯的过程来说,从Windows Server 发起数据流量,从物理网卡到交换机,整个数据通讯从每个层面都可以得到优化和保障。
使
用SR-IOV,RDMA 等
技术来说,虽然提高网络通信的效能,但是对于网络质量控制来说,却存在一定的问题。因为Hyper-V 的虚拟机在传输数据时,会直接调用硬件的网卡,就会绕过Hyper-V 主机中的网络协议栈,让关于QoS 的策略变得没有毫无用处。数据中心桥接功能可以很好的解决上
述问题,即使虚拟机跳过了Hyper-V 主机的网络协议栈,因为物理网卡、交换机均支持该功能,所以针对网络程序设置的优先级和网络质量保证来说,在网卡、交换机中是可以识别并得到执行的。
在配置数据中心桥接时,首先需要识别不同的网络应用程序,这依靠的是协议和端口号来进行的,例如iSCSI 使用了TCP/UCP 3260端口,NFS 使用了TCP/UCP 2049端口,SMB 使用了TCP/UCP 445端口,Live Migration 使用了TCP 6600端口等。
接下来数据中心桥接功能会针对不同的应用程序,通过添加标签的方式为其设置优先级,这不仅仅需要在数据中心桥接的策略中进行指定,还需要对网络程序发送的数据包进行修改,即将优先级的信息写入到相应的数据包中,网卡和交换机会识别这些数据包,并遵循数据包中的优先级信息,来执行预设的策略。
在Hyper-V 管
理器中打开某台虚拟机,在PowerShell 窗口中执行“G e t -W i n d o s F e a t u r e *brid*”命令,查看数据中心桥接功能的名称信息。
行“I n s t a l l -
W i n d o w s F e a t u r e  D a t a -Center-Bridging”命令,来安装该组件。
行“Get-Command
-Module DcbQos”命令,查看和数据中心桥接功能相关的命令。
例如,执行“New-NetQos Policy-Name "SMBLink" -N etDirectPortMatchConditi on 445 -PriorityValueActi on 1”命令,创建名为“SMBLink”的策略,设置了其使用的端口和优先级。
执行“Enable-NetQosFl owControl -Priority 1”命令,来启用该策略。
执行“Enable-NetAdapt erQos -Name "xxx"”命令,将该策略和具体的网卡绑定起来,这里的“xxx”为网卡的名称。
执行“New-NetQosTraff
icClass -Name "SMBLink" -Priority 1 –BandwidthP ercentage 50 -Algorithm
ETS”命令,可以设置该策略可以占用的网卡的带宽的比例。这样,对于使用SMB 协
议的网络传输来说,其优先级为1,可以使用50%带宽的网卡带宽。
RSS 技术的原理和配置
RSS(即Receiver Side Scaling,接收端缩放),对于服务器来说,在默认情况下,在进行网络传输时,需要CPU 进行中断处理,但是只能有一个CPU 内核进行处理,及时有更多的内核处于空闲状态,也无法对上述情况进行处理。RSS 技术很好地解决了上述问题,
当进行网络数据传输时,RSS 可以让多个CPU 核心同时进行处理。RSS 可以产生多个不同的传输队列,每个队列的中的数据会有一个CPU 核心进行处理。这样,所有的CPU 资源都会被充分利用起来,可以更加高效快速的处理网络数据。
RSS 实际上是网卡中内置的功能,当其启用后,就会利用多个CPU 核心处理网络
数据。当然,RSS 技术并非只为Hyper-V 产生的,也可以使用到其他的服务器上。例如在某台物理服务器上打开设备管理器,在“网络适配器”节点下显示所有的网卡设备,双击其中某块网卡,在属性窗口中的“高级”面板(如图2)左侧的“属性”列表中选择“RSS 负载平衡配置
文件”项,在右侧选择合适的配置文件。
对于单个物理CPU 来说,可以选择“ClosestProcessor”项,让所有的逻辑CPU 核心都可以参与处理网络流量,并形成一种负载均衡机制。
在左侧选择“RSS 基础处理器数量”项,可以设置基础的CPU 核心,在右侧显示默认值为0,表示使用
第一个物理CPU 的第一个逻辑核心。在左侧选择“最大RSS 处理器数”项,可以设置最大的CPU 核心数量,在右侧设置合适的CPU 核心数量,选择“最大RSS 队列数”项,在右侧设置合适的队列数量。
当配置完成后,在PowerShell 窗口中执行“Get-NetAdapterRss”命令,来查看RSS
的配置信息。在
图2 设置RSS 属性信息

本文发布于:2024-09-23 17:20:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/104029.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:网卡   功能   进行   网络
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议