首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >下一代IO虚拟化技术

下一代IO虚拟化技术

作者头像
虚拟化云计算
发布于 2023-03-28 00:58:01
发布于 2023-03-28 00:58:01
1.8K0
举报
文章被收录于专栏:虚拟化云计算虚拟化云计算

‍‍大家好,我是cloud3,今天再聊聊虚拟化的事。

在Intel最新至强Sapphire Rapids处理器中有个新的feature引起了我的注意,它叫SIOV。

于是翻了翻Intel的spec技术规范,呵呵,看来在IO虚拟化的路上,这是又要迈上一大步了。

SIOV它的全称是Scalable I/O Virtualization,被称为是下一代IO虚拟化的解决方案。并且在今年3月,英特尔和微软已经一起向开放计算项目(OCP)提交了技术规范。

聊聊这个SIOV是什么

在IO虚拟化的演进过程中,

以Intel的vt-d为代表的设备的透传技术解决了IO的性能问题,

以SR-IOV技术为代表的IO共享技术进一步解决了设备的共享问题。

近十几年来,SR-IOV一直是虚拟机访问IO设备的最优选择。

但是SRIOV有些天生的缺陷。

首先,支持的虚拟IO设备很少,理论上一个PCIe设备最多只能虚拟出256个VF设备给虚拟机用。

其次,由于是绑定VF给虚拟机,虚拟机无法热迁移。

最后,就是硬件设备出厂时就决定了它支持多少个VF,在使用过程中不支持动态的资源分配。虚拟化堆栈的I/O管理灵活性非常差。

这怎么能应对接下来超大规模IO虚拟化的需求呢,可能就是SIOV了。

SIOV是为超大规模时代设计的硬件辅助I/O虚拟化,有可能在每台服务器上支持成千上万的虚拟化工作负载。SIOV有很多特点,例如:

SIOV的具体细节

SIOV涉及到三个层次,PCIe设备层、平台层和软件层。

硬件层

在PCI硬件设备上提出了一种叫ADI(Assignable Device Interfaces)的概念。

ADI类似于SR-IOV中的VF,不同于VF的是所有的ADI共享同一个PF的BDF号、pci配置空间和BAR空间。

ADI就作为一种独立的单元进行分配、配置和组织的一组后端资源,一个ADI对应一组后端资源,并且可以任意划分资源给ADI。

以前是分配VF给虚拟机,现在是分配ADI。

硬件上的支持情况可以通过PCIe的配置空间查到,要查设备是否支持SIOV技术,intel定义了一个Designated Vendor Specific Extended Capability (DVSEC) 域用于发现和配置支持Scalable IOV技术的设备:

平台层

在设备层添加了ADI之后,在平台层主要就要解决ADI的中断、ADI的地址空间等问题。

因为同一设备上的AID具有相同的BDF号,为了对让IOMMU能够识别出是哪个AID,在原来BDF号的基础上采用BDF+PASID的方式开区分AID。

PASID(Process Address Space ID)是PCI协议的一个扩展,它不同于传统通过BDF(Bus,Device,Function)来唯一标识一个PCIe设备的方式,而是以BDF+PASID的方式在一个PCIe设备内细分更多的虚拟设备。

DMA重定向硬件将来自于I/O子系统的内存访问请求分为两类:不带PASID的请求和带有PASID的请求,两种请求的区别在此就不细说了。

软件层

硬件和平台都支持SIOV了,在软件层引入了叫做VDCM的模块来进行虚拟资源的分配和管理。他的全称叫Virtual Device Composition Module。

在IO设备的访问上,一般把配置管理的路径叫做慢路径,而把数据传输的路径叫做快路径。在SR-IOV中两种路径都是通过硬件直通的方式完成。

而SIOV将非性能关键的虚拟化和管理逻辑(慢路径)从PCIe设备上移走,进入虚拟化栈。通过VDCM来实现设备的管理和配置。

VDCM主要负责ADI设备的配置管理、将ADI映射给虚拟机、处理慢路径等。

对SIOV的支持,目前Linux内核的上游工作正在进行中,预计将在2022年晚些时候进行整合。

Intel至强Sapphire Rapids处理器已经支持SIOV的feature,Intel以太网800系列网络控制器和未来的PCIe和Compute Express Link(CXL)设备和加速器都将支持SIOV技术。

今天就聊到这。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 虚机 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于虚拟化,你得知道SR-IOV
SR-IOV是什么,它和virtio、Device assignment的IO虚拟化的技术有什么区别,本文章中将会解答。
虚拟化云计算
2018/04/08
5.5K0
关于虚拟化,你得知道SR-IOV
SRIOV 单根虚拟化 技术汇总
在虚拟化中,单根输入/输出虚拟化(SR-IOV) 是一种出于可管理性和性能原因允许隔离PCI Express资源的规范
晓兵
2024/01/05
6050
SRIOV 单根虚拟化 技术汇总
深入理解SR-IOV和IO虚拟化
Leo Hou,目前就职于IC行业某硬件数据加速独角兽企业,从事虚拟化方向,聚焦于基于QEMU/KVM的IO虚拟化和系统虚拟化,主要负责虚拟化相关方案和团队建设。
Linux阅码场
2022/02/11
12.1K1
深入理解SR-IOV和IO虚拟化
Intel 虚拟化技术(Intel® VT):CPU 虚拟化与内存虚拟化
目前主要的 CPU 虚拟化技术是 Intel 的 VT-x/VT-i 和 AMD 的 AMD-V 这两种技术。
Flowlet
2023/08/11
4.9K0
Intel 虚拟化技术(Intel® VT):CPU 虚拟化与内存虚拟化
【重识云原生】第四章云网络4.7.8节——SR-IOV方案
        SR-IOV是Single Root I/O Virtualization的缩写。SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV 标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能。SR-IOV 规范定义了新的标准,根据该标准,创建的新设备可允许将虚拟机直接连接到 I/O 设备。
江中散人_Jun
2022/06/30
2.2K0
【重识云原生】第四章云网络4.7.8节——SR-IOV方案
虚拟化与云计算硬核技术内幕 小结 (上)
Intel为了让自己主导的x86架构处理器,能够从桌面领域进入到利润更高的服务器领域,在1998年推出了“至强”Xeon处理器,并迅速提升了Xeon处理器的内核数到4核以上。虚拟化作为充分利用服务器计算能力的手段,也需要在x86架构上顺畅高效运行。
用户8289326
2022/09/08
9820
基于K8s的SR-IOV网络实践
在传统的虚拟化中,虚拟机的网卡通常是通过桥接(Bridge或OVS)的方式,因为这种方式最方便,也最简单,但是这样做最大的问题在于性能。本文讲的SR-IOV在2010年左右由Intel提出,但是随着容器技术的推广,intel官方也给出了SR-IOV技术在容器中使用的开源组件,例如:sriov-cni和sriov-device-plugin等,所以SR-IOV也开始在容器领域得到的大量使用。
zouyee
2022/05/25
4.2K1
基于K8s的SR-IOV网络实践
超硬核图解 Kubernetes 网络
底层网络 Underlay Network 顾名思义是指网络设备基础设施,如交换机,路由器, DWDM 使用网络介质将其链接成的物理网络拓扑,负责网络之间的数据包传输。
公众号: 云原生生态圈
2023/08/23
1.7K0
超硬核图解 Kubernetes 网络
《深入浅出DPDK》&《DPDK应用基础》读书笔记
本文主要介绍了我在阅读《深入浅出DPDK》,《DPDK应用基础》这两本书中所划下的知识点
没有故事的陈师傅
2020/11/19
4.7K0
《深入浅出DPDK》&《DPDK应用基础》读书笔记
KVM虚拟化网络优化技术总结
KVM的网络优化方案,总的来说,就是让虚拟机访问物理网卡的层数更少,直至对物理网卡的单独占领,和物理机一样的使用物理网卡,达到和物理机一样的网络性能。
力哥聊运维与云计算
2019/06/28
3.6K0
KVM虚拟化网络优化技术总结
NFV中:DPDK与SR-IOV应用场景及性能对比
DPDK与SR-IOV两者目前主要用于提高IDC(数据中心)中的网络数据包的加速。但是在NFV(网络功能虚拟化)场景下DPDK与SR-IOV各自的使用场景是怎样的?以及各自的优缺点?
Flowlet
2022/08/18
1.8K0
NFV中:DPDK与SR-IOV应用场景及性能对比
GPU虚拟化,算力隔离,和qGPU
宋吉科,腾讯云异构计算研发负责人,专注系统虚拟化、操作系统内核十多年,KVM平台上第一个GPU全虚拟化项目KVMGT作者,对GPU、PCIe有深入的研究。 〇、本文写作背景 大约 2 年前,在腾讯内网,笔者和很多同事讨论了 GPU 虚拟化的现状和问题。从那以后,出现了一些新的研究方向,并且,有些业界变化,可能会彻底颠覆掉原来的一些论断。 但这里并不是要重新介绍完整的 GPU 虚拟化的方案谱系。而是,我们将聚焦在英伟达 GPU + CUDA 计算领域,介绍下我们最新的技术突破 qGPU,以及它的意义究竟是什
腾讯云原生
2021/06/02
14.5K0
云计算与虚拟化硬核技术内幕 (13) —— 独立自主,自力更生 (下)
在前两期,我们学习了虚拟机上的设备虚拟化,包括中断虚拟化、DMA虚拟化和PCIE设备直通。那么,如果在宿主机上有20个虚拟机,每个虚拟机上有一个网卡,我们应当如何实现呢?
用户8289326
2022/09/08
8190
云计算与虚拟化硬核技术内幕 (13) —— 独立自主,自力更生 (下)
软硬件融合技术内幕 进阶篇 (5) ——云计算的六次危机(下)
在前几期,我们发现,正如生产关系与生产力之间的相互作用那样,低效的虚拟化数据平面工作机制,会严重约束云计算生产力的发展。
用户8289326
2022/12/13
1K0
软硬件融合技术内幕 进阶篇 (5) ——云计算的六次危机(下)
SMI:虚拟化环境下NVMe SSD性能优化
文档由Silicon Motion技术公司提供,关于如何在多虚拟环境中优化NVMe SSD I/O性能的技术。
数据存储前沿技术
2025/02/11
4030
SMI:虚拟化环境下NVMe SSD性能优化
docker实践(7) 容器网络和网络SR-IOV插件
我们去年为了上云,先逐步是使用docker部署,然后逐步k8s部署,为此搭建了docker容器平台,该平台分配ip需要绑定宿主机cvm的弹性网卡,为此专门引入了网络SR-IOV插件,趁此补充完善该文。
黄规速
2023/12/10
2.2K0
docker实践(7) 容器网络和网络SR-IOV插件
虚拟化及云计算硬核技术内幕 —— 小结 下
由于Intel为代表的处理器厂商发现,处理器主频的提升受到硅材料物理特性的限制,难以突破4.0GHz的瓶颈,从而转向在处理器集成电路上集成多个处理核心,以提升处理器的计算力。为了让多个处理核心可以运行多个不同的应用程序和服务,出现了把一台物理机资源分割为多个虚拟机的虚拟化技术。
用户8289326
2022/09/08
7320
【重识云原生】第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现
        Virtio作为一种半虚拟化的解决方案,其性能一直不如设备的pass-through,即将物理设备(通常是网卡的VF)直接分配给虚拟机,其优点在于数据平面是在虚拟机与硬件之间直通的,几乎不需要主机的干预。而virtio的发展,虽然带来了性能的提升,可终究无法达到pass-through的I/O性能,始终需要主机(主要是软件交换机)的干预。vDPA(vhost Data Path Acceleration)即是让virtio数据平面不需主机干预的解决方案。该框架由Redhat提出,实现了virtio数据平面的硬件卸载。控制平面仍然采用原来的控制平面协议,当控制信息被传递到硬件中,硬件完成数据平面的配置之后,数据通信过程由硬件设备(智能网卡)完成,虚拟机与网卡之间直通。中断信息也由网卡直接发送至虚拟机不需要主机的干预。这种方式,控制面比较复杂,硬件难以实现。
江中散人_Jun
2022/06/30
2.8K0
【重识云原生】第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现
【重识云原生】计算第2.4节——主流虚拟化技术之KVM
KVM:Kernel-based Virtual Machine,是基于Linux内核的开源虚拟化解决方案,从2.6.20版本开始被合入kernel主分支维护。最初只支持X86平台的上支持VMX或者SVM的CPU,不久后被确认为标准Linux内核的虚拟化方案并逐步支持S390、IA64和PowerPC等体系架构;KVM本身只提供部分的虚拟化功能(虚拟CPU和内存),而由经过特殊改造后的Qemu(Qemu-kvm)来帮助下提供完整的平台虚拟化功能。
江中散人_Jun
2022/04/08
3.3K0
【重识云原生】计算第2.4节——主流虚拟化技术之KVM
虚拟化分类与 I/O 虚拟化技术概述
虚拟化技术是实现云计算的基石,虚拟化技术主要由三项关键技术构成:CPU 虚拟化、内存虚拟化和 I/O 虚拟化。I/O 虚拟化作为计算、网络与存储的技术交织点,其重要性与复杂性不言而喻。
通信行业搬砖工
2023/09/06
9680
虚拟化分类与 I/O 虚拟化技术概述
推荐阅读
相关推荐
关于虚拟化,你得知道SR-IOV
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档