Hyper-V Server网络硬件加速特性介绍-阿里云开发者社区

开发者社区> 云计算> 正文

Hyper-V Server网络硬件加速特性介绍

简介:

一、 动态虚拟机队列(VMQ)

虚拟机队列(VMQ)是一种硬件虚拟化技术,可高效地将网络通讯传输给虚拟化的宿主机操作系统。支持 VMQ 的网卡可对传入并等待路由的帧进行分类,根据筛选器创建队列,并将队列关联给虚拟机的虚拟网卡。每个虚拟机设备的缓冲区会分配一个 VMQ,这就避免了在虚拟交换机中进行无意义的数据包复制与路由查询操作。

基本上,VMQ 可让宿主机的一个网络适配器在虚拟机中呈现为多个网络适配器,并让每个虚拟机获得自己专用的网络适配器。这样可降低宿主机缓冲区中的数据量,并改善 I/O 操作的整体性能。

这种硬件队列可关联到不同 CPU,因此可针对每个虚拟机的网卡实现接收方缩放。Windows Server 2008 R2 可供管理员用静态方式配置处理 VMQ 中断所需的处理器数量。

下图为不启用 VMQ 的情况下,Hyper-V 宿主机使用 CPU0 处理网络通讯

clip_image002

如果不使用VMQ技,那么Hyper-V虚拟交换机负责对传入虚拟机的数据包进行路由和排序。对于负载繁重的 Hyper-V 宿主机,这将造成不小的 CPU 压力。若不使用 VMQ 技术与 RSS 功能,大部分网络处理任务都将由 CPU0 负责,最重影响到整个解决方案的扩展性。

下图为使用 VMQ 的情况下,Hyper-V 宿主机可用多个核心处理网络通讯

clip_image004

使用VMQ并启用VMQ后,物理网络适配器会为每个发出申请的虚拟网络适配器创建专用队列。数据包到达虚拟网络适配器后,物理网络适配器会将其放入网络适配器队列。需要使用数据包时,队列中的所有数据包数据会直接发往虚拟网络适配器。抵达不具备专属队列虚拟网络适配器的数据包,以及所有多播与广播数据包则会进入默认队列的虚拟网络。这个虚拟网络会按照常规做法负责将数据包路由到相应的虚拟网络适配器。这样做可大幅降低宿主机处理网络通讯时的 CPU 开销,并将负载分摊给多个核心处理。

下图为通过 DVMQ 功能,Hyper-V 宿主机可通过多个核心动态处理网络通讯

clip_image008

使用动态VMQ,最早包含在 Windows Server 2012 中的 DVMQ 可将传入的网络通讯处理任务动态分配给宿主机处理器(根据处理器使用情况及网络负载进行分摊)。在网络负载繁重时,动态 VMQ 可自动征用更多处理器。在网络负载减轻时,动态 VMQ 可释放这些处理器。VMQ 可将网络通讯的中断分配给多个处理器。在 Windows Server 2012 与 Windows Server 2012 R2 中,动态 VMQ 功能可使用适应性算法修改队列的 CPU 关联设置,无需删除/重新创建队列。这样即可将网络负载与处理器的使用情况进行更好的匹配,改善网络性能。

在Windows Server 2012/R2中要使用动态 VMQ 功能,需满足下列条件:

1. 带 Hyper-V 的 Windows Server 2012、带 Hyper-V 的 Windows Server 2012 R2、Hyper-V Server 2012 或 Hyper-V Server 2012 R2。

2. Hyper-V 交换机使用支持 VMQ 的网卡。

clip_image010

二、 单根 I/O 虚拟化(SR-IOV)

单根 I/O 虚拟化(SR-IOV)是一种开放标准,由 PCI-SIG 提出,这个特殊的兴趣小组还拥有并管理着 PCI 规范。SR-IOV 能与支持虚拟化技术的系统芯片组配合使用,对中断与直接内存访问实现重映射,并能将支持 SR-IOV 的设备直接分配给虚拟机。

正如上文讨论的,客户希望将网络密集型负载实现虚拟化,但若缺乏 vRSS 与动态 VMQ 等功能,就很难在虚拟机中获得与物理世界类似的性能。这主要是因为处理网卡中断与 DMA 请求需要占用大量 CPU 资源,而繁忙的 Hyper-V 交换机活动也会进一步提高 CPU 资源的使用率。

Windows Server 2012 中的 Hyper-V 开始支持具备 SR-IOV 功能的网络设备,能将物理网络适配器的 SRIOV 虚拟 Function 直接分配给虚拟机。这样做可提高网络吞吐率,降低网络延迟,同时降低处理网络通讯造成的宿主机 CPU 负担。下图显示了 Hyper-V 中 SR-IOV 的支持架构。

clip_image012

基本上,SR-IOV 通过重映射可绕过 Hyper-V 可扩展交换机,将虚拟网络的 Function 从物理网卡直接映射给虚拟机,借此即可绕过 Hyper-V 交换机。

在Windows Server 2012/R2中要想使用 SR-IOV,需满足下列条件:

1. 带 Hyper-V 的 Windows Server 2012、带 Hyper-V 的 Windows Server 2012 R2、Hyper-V Server 2012 或 Hyper-V Server 2012 R2。

2. 支持 SR-IOV 的物理宿主机系统(如 Intel VT-d2),芯片组需支持中断与 DMA 重映射,并要具备恰当的固件,以支持平台 SR-IOV 功能,并向操作系统提供必要的描述。SR-IOV 可能需要在 BIOS 中启用。

3. 管理用操作系统(运行 Hyper-V 角色的操作系统)与分配了虚拟 Function 的每个虚拟机需要安装支持 SR-IOV 的网络适配器与驱动。

clip_image014

三、 IPsec 任务卸载

IPsec 任务卸载是一种内置于 Windows 操作系统中的、用于支持配置硬件以减少 CPU 负载并执行密集型计算工作的网络适配器技术。通过将IPsec工作负载从主计算机的 CPU 移动到专用处理器上的网络适配器,可以更好地利用网络带宽。

clip_image016





     本文转自 徐庭 51CTO博客,原文链接:http://blog.51cto.com/ericxuting/1608569,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章