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,如需转载请自行联系原作者

相关文章
|
1月前
|
NoSQL 网络协议 Linux
Redis的实现一:c、c++的网络通信编程技术,先实现server和client的通信
本文介绍了使用C/C++进行网络通信编程的基础知识,包括创建socket、设置套接字选项、绑定地址、监听连接以及循环接受和处理客户端请求的基本步骤。
46 6
|
19天前
|
运维 负载均衡 安全
|
5月前
|
Java 数据挖掘 开发者
Java网络编程进阶:Socket通信的高级特性与应用
【6月更文挑战第21天】Java Socket通信是分布式应用的基础,涉及高级特性如多路复用(Selector)和零拷贝,提升效率与响应速度。结合NIO和AIO,适用于高并发场景如游戏服务器和实时数据分析。示例展示了基于NIO的多路复用服务器实现。随着技术发展,WebSockets、HTTP/2、QUIC等新协议正变革网络通信,掌握Socket高级特性为应对未来挑战准备。
49 1
|
1月前
|
存储 安全 网络安全
云端盾牌:云计算时代的网络安全守护在数字化浪潮中,云计算以其高效、灵活的特性成为企业转型的加速器。然而,伴随其迅猛发展,网络安全问题亦如影随形,成为悬在每个组织头顶的达摩克利斯之剑。本文旨在探讨云计算服务中的网络安全挑战,分析信息安全的重要性,并提出相应对策,以期为企业构建一道坚实的云端防护网。
在当今这个数据驱动的时代,云计算已成为推动创新与效率的关键力量。它允许用户随时随地访问强大的计算资源,降低了企业的运营成本,加速了产品上市时间。但随之而来的网络威胁也日益猖獗,尤其是对于依赖云服务的企业而言,数据泄露、身份盗用等安全事件频发,不仅造成经济损失,更严重损害品牌信誉。本文深入剖析云计算环境中的安全风险,强调建立健全的信息安全管理机制的重要性,并分享一系列有效策略,旨在帮助企业和个人用户在享受云服务带来的便利的同时,也能构筑起强有力的网络防线。
|
2月前
|
机器学习/深度学习 安全 网络安全
云端盾牌:云计算时代的网络安全守护在这个数字脉搏加速跳动的时代,云计算以其高效、灵活的特性,成为推动企业数字化转型的强劲引擎。然而,正如每枚硬币都有两面,云计算的广泛应用也同步放大了网络安全的风险敞口。本文旨在探讨云计算服务中网络安全的关键作用,以及如何构建一道坚不可摧的信息防线,确保数据的安全与隐私。
云计算作为信息技术领域的革新力量,正深刻改变着企业的运营模式和人们的生活。但在享受其带来的便利与效率的同时,云服务的安全问题不容忽视。从数据泄露到服务中断,每一个安全事件都可能给企业和个人带来难以估量的损失。因此,本文聚焦于云计算环境下的网络安全挑战,分析其根源,并提出有效的防护策略,旨在为云服务的安全使用提供指导和参考。
71 8
|
2月前
|
机器学习/深度学习 人工智能 并行计算
硬件加速器中的神经网络
硬件加速器中的神经网络指的是通过专门设计的硬件设备来加速深度神经网络(DNN)和其他机器学习模型的训练和推理过程。
26 1
|
3月前
|
网络协议 Linux 网络安全
Hyper-v 如何配置 Centos7 虚拟机网络?
Hyper-v 如何配置 Centos7 虚拟机网络?
127 0
|
4月前
|
机器学习/深度学习 数据采集 前端开发
网络爬虫开发:JavaScript与Python特性的小差异
我们以前写JavaScript的代码时,在遇到了发送请求时,都是需要去await的。 但是为什么Python代码不需要这样做呢? 这就是因为JavaScript是异步的,Python是同步的。 JavaScript就需要使用关键词await将异步代码块变为同步代码。
|
5月前
|
数据采集 存储 中间件
Scrapy,作为一款强大的Python网络爬虫框架,凭借其高效、灵活、易扩展的特性,深受开发者的喜爱
【6月更文挑战第10天】Scrapy是Python的高效爬虫框架,以其异步处理、多线程及中间件机制提升爬取效率。它提供丰富组件和API,支持灵活的数据抓取、清洗、存储,可扩展到各种数据库。通过自定义组件,Scrapy能适应动态网页和应对反爬策略,同时与数据分析库集成进行复杂分析。但需注意遵守法律法规和道德规范,以合法合规的方式进行爬虫开发。随着技术发展,Scrapy在数据收集领域将持续发挥关键作用。
106 4