KVM Forum 2022应该关注的话题

news2024/11/29 9:54:09

在这里插入图片描述

1. QEMU 和 KVM 自动性能基准测试

QEMU & KVM Automated Performance Benchmarking @ SUSE - Dario Faggioli, SUSE

SUSE正在开发一个框架,用于对虚拟化工作负载进行自动性能基准测试。它是围绕着MMTests(已经在Linux内核社区使用了几年)建立的,它能够同时在一个或多个虚拟机内运行测试和基准。它还在进一步扩展,例如,在容器和由KubeVirt管理的VMI中运行基准测试。很快就能用它来评估下游软件包和产品的性能,而且也能评估上游的KVM和QEMU的性能。而且可以向相关的邮件列表发送报告。在演讲中,描绘了框架本身的一些技术细节,下一步将讨论并试图收集一些反馈,比如哪些有趣的工作负载组合、用例和配置(从性能的角度来看)是有用的;使用哪些指标以及如何有效地测量它们;什么才是真正的性能回归等问题。最终的目标是使这个工具不仅对SUSE有用,而且对KVM/QEMU项目和更广泛的Linux虚拟化社区有用。

2. 探索架构无关的KVM MMU技术

Exploring an Architecture-neutral KVM MMU - David Matlack, Google

TDP MMU是在2020年引入的,以简化和提高x86 KVM MMU的可扩展性。自TDP MMU推出以来,它的性能得到了进一步的调整,并获得了对新功能的支持,如急切分页、延迟分页和无锁写解保护的脏记录。随着公共云提供商开始提供基于KVM的ARM虚拟机,ARM虚拟机面临着与TDP MMU相同的可扩展性挑战。为了解决这个问题,本讲座将探讨如何使 TDP MMU 架构中立并将其移植到 ARM。

3. 将 eBPF 的力量带入 QEMU

Bringing the Power of eBPF to QEMU - Chen Zhang, Intel

eBPF是一项革命性的技术,可以在操作系统的内核中运行沙盒程序。它被用来安全有效地扩展内核的功能,即使在运行时也不需要改变内核的源代码或加载内核模块。KVM已经从中得到了好处,但QEMU却没有。因此,把eBPF的力量带到QEMU是一件很有意义的事情。iovisor/ubpf项目旨在创建一个Apache许可的执行eBPF程序的库,包括eBPF汇编器、反汇编器、解释器和JIT编译器(用于x86-64和Arm64目标),这个项目的基础上可以启用QEMU用户空间eBPF基础设施。在本讲座中,将讨论QEMU中用户空间eBPF的当前发展和未来方向。

  • eBPF的使用背景和现状。

  • 用户空间eBPF现状,包括Intel DPDK eBPF/windows eBPF等…

  • QEMU用户空间eBPF基础设施的设计和实现。

  • 第一个使用的模块:用户空间eBPF网络过滤器。

  • 用户空间eBPF的未来使用案例。

  • 介绍用法和演示,包括如何使用clang编译自己的eBPF C程序并加载到QEMU。

4. 基于 Vfio-User 协议的 SPDK 中的 Virtio 设备模拟

Virtio Devices Emulation in SPDK Based on Vfio-User Protocol - Changpeng Liu & Xiaodong Liu, Intel

在2021年的KVM论坛上,存储性能开发工具包(SPDK)展示了如何从一个独立的用户空间进程中模拟完整的NVMe PCIe设备给虚拟机。现在,SPDK正计划支持更多基于vfio-user的PCIe设备。在本次会议中,将介绍基于vfio-user的virtio PCIe抽象层,然后介绍基于通用virtio PCIe抽象层的virtio-blk和virtio-scsi设备模拟。演讲中提供了SPDK vhost-user解决方案和vfio-user virtio-blk/scsi解决方案之间的比较,包括性能、线程建模和实现差异。最后通过展示一些使用案例、性能数据和未来的发展计划来进行总结。

5. 新的 Hyper-V 模拟技术在KVM中的应用

Emulating Hyper-V in 2022 - Vitaly Kuznetsov, Red Hat

在很长一段时间内,KVM能够假装是微软的Hypervisor(Hyper-V),但它从未实现过全套的功能。未来更多的功能在KVM中得到实现,而微软开发的新的Hyper-V版本通常会带来新的PV机制。我们在2022年的情况如何?在Hyper-V模拟中,有什么新的东西,目前缺少什么?KVM和Hyper-V如何在嵌套的情况下进行协作?其中的一些功能能否为其他KVM部署带来便利?

6. NVMe 设备模拟性能优化

NVMe Emulation Performance Optimization - Jinhao Fan, Chinese Academy of Science & Klaus Jensen, Samsung Electronics

QEMU的NVMe模拟使用传统的trap-and-emulate方法来仿真I/O,因此性能会因为频繁的虚拟机退出而受到影响。NVMe和QEMU可以进行一些优化来解决这个问题。首先,NVMe 1.3引入了shadow doorbell buffer支持,以减少昂贵的MMIO写入的数量。第二,QEMU的ioeventfd机制可以进一步减少MMIO的处理开销。第三,可以利用QEMU的iothread来处理单独事件循环中的I/O。最后,轮询doorbell内存而不是等待MMIO事件将把处理延迟降到最低。通过这些优化,QEMU NVMe的仿真性能从30 KIOPS提高到330 KIOPS–提高了11倍 在这次演讲中,演讲者将分享他们将这些技术纳入QEMU NVMe的经验,以及所面临的挑战和教训。

7. QEMU 中的 IOMMUFD 集成

IOMMUFD Integration in QEMU - Yi Liu, Intel & Eric Auger, Red Hat

IOMMUFD 是一个新的用户API,用于控制IOMMU子系统,管理指向用户空间内存的IO页表。它旨在废除vfio中与IOMMU相关的用户API,并成为提供新的IOMMU功能的中心,跨用户空间驱动框架(VFIO,vDPA,等等)。因此,QEMU需要重新设计,以适应新的iommufd uAPI,同时保持与传统的VFIO uAPI的向后兼容性,例如,用适当的抽象来适应以设备为中心的模型(在iommufd)和以组为中心的模型(在传统的VFIO)。本演讲将首先回顾iommufd采用和向后支持QEMU方面的问题,然后展示在两种类型的iommu用户API之间进行的抽象以实现共存。将涵盖对管理层(如libvirt)的影响,并最终处理诸如IOMMU嵌套翻译等新功能。

8. pKVM在 ARM64 上的技术深究

Protected KVM on Arm64: A Technical Deep Dive - Quentin Perret, Google

pKVM(Protected-KVM) 是KVM/arm64的一个扩展,为Arm v8.0以上的CPU提供了一个保密计算解决方案。在这次演讲中,将对pKVM进行技术上的深入研究,描述其架构和实现,并讨论与其他机密计算解决方案(如英特尔TDX、AMD SEV或Arm CC-A)共享核心基础设施(如内存管理)的机会。相关参考 https://lore.kernel.org/kvmarm/20220519134204.5379-1-will@kernel.org/

9. 用pKVM在x86客户平台上支持TEE

Supporting TEE on x86 Client Platforms with pKVM - Jason Chen, Intel

pKVM 的概念是由Will Deacon在ARM平台上首次提出的(https://lwn.net/Articles/836693/),它使KVM能够运行多个隔离的TEE VM,并以强隔离的方式运行不同的TEE APPs。随着虚拟化软件TEE的推广,我们在x86平台上看到了类似的期望,特别是对于客户端平台。x86上的pKVM被设计为实现多个隔离的TEE VM环境,与主机操作系统及其用户VM强隔离,对性能影响小,TCB占用小,主机操作系统复杂度小。在这个演讲中,我们将讨论pKVM 在 x86 上的设计,以满足其要求,并展示如何在特殊定制的主机操作系统中与普通用户虚拟机一起运行TEE虚拟机,并讨论其未来的工作。

10. Hypervisor.Framework - macOS上的虚拟化

Hypervisor.Framework - Virtualization on macOS - Alexander Graf, Amazon Development Center Germany GmbH

MacOS拥有自己的用户空间抽象层来利用现代CPU的虚拟化能力已经超过7年了。本报告介绍了它的设计原则以及它如何在英特尔以及苹果硅CPU上工作。它还详细介绍了QEMU如何在macOS上利用Hypervisor.Framework来实现虚拟机。

11. 针对 KVM 虚拟机 vCPU 挂起的检测

All Bark and no Bite: vCPU Stall Detection for KVM Guests - Sebastian Ene, Google

你的虚拟机性能很差吗?它的vCPU线程是否一直可以运行?你是否想知道它是否在做任何有用的事情?如果是这样,那么这就是para-virtualised vCPU stall检测器的作用了,本讲座将介绍一个para-virtualised vCPU stall检测器设备,其设计类似看门狗,与steal time的配合,以及它在crosvm中的实现和相应的Linux内核驱动。这个设备计划在未来的Android版本中使用,用于检测和报告主机上的虚拟机挂起。

12. libblkio高性能块I/O API介绍

Introducing the libblkio High-performance Block I/O API - Stefan Hajnoczi & Alberto Faria, Red Hat

应用程序越来越多地集成高性能I/O接口,如Linux io_uring、用户空间设备驱动程序和vhost-user设备支持。libblkio为有效地访问块设备提供了一个单一的开源API,并消除了为每个设备编写自定义代码的需要。libblkio被设计成可以在裸机、容器内和虚拟机中运行,它使应用程序可以在这些环境中运行而无需重写代码。支持阻塞、事件驱动和轮询模式,让应用程序可以选择I/O模型,使libblkio很容易集成到现有的应用程序中。新的libblkio QEMU块驱动和fio ioengine允许虚拟机和基准测试工作负载。演讲中讨论了libblkio的API设计、可用的驱动和路线图,以便更多的应用能够从libblkio中受益。

总结

本次KVM论坛多次提到了pKVM(protected-KVM),pKVM最初是Arm64中的机密计算方案,多个演讲讨论了一些技术细节,其中Intel还提出了在X86上进行支持的想法。

另外Kubevirt也提到的比较多,但是都是作为Kvm的一种使用场景提到的,并没有提到具体的技术细节问题。

在演讲中libblkio被认为是下一代提高块设备磁盘的新技术,有几个演讲提到了,这个很值得关注。

KVM在对Windows支持的问题上,也进行了讨论,未来Kvm会借用微软Hyper-v的技术方案进行优化。

最后比较值得关注的是eBPF在Qemu中的作用,Rust对Kvm中的提升,Virtio还在不断发展,新的iommufd技术,以及Kvm发展越来越壮大在RISC-V甚至FPGA、Verilog模拟中的应用。

参考
https://kvmforum2022.sched.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022-Java 后端工程师面试指南 -(SSM)

前言 种一棵树最好的时间是十年前,其次是现在 Tips 面试指南系列,很多情况下不会去深挖细节,是小六六以被面试者的角色去回顾知识的一种方式,所以我默认大部分的东西,作为面试官的你,肯定是懂的。 上面的…

Mybatis之foreach

文章目录一、foreach属性二、使用foreach批量删除(法一)1.接口2.mapper文件3.测试类4.运行结果三、使用foreach批量删除(法二)1.mapper文件四、使用foreach批量插入1.接口2.mapper文件3.测试类4.运行结果一、foreach属性 collection:指定数组或者集合 item&#xf…

FPGA时序约束01——基本概念

前言1. 越来越多的时序问题 随着FPGA时钟频率加快与其实现的逻辑功能越来越复杂,开发者遇到的问题很多时候不再是代码逻辑的问题,而是时序问题。一些开发者可能有这样的经历,一个模块在100MHz时钟运行没问题,而将时钟频率改为150…

【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-事务管理

添加评论中会用到事务管理。 解决的程度不同,层级不同。我们一般选择中间的级别。 选择时既能满足业务的需要,又能保证业务的安全性,在这样的前提下我们追求一个更高的性能。 第一类丢失更新 图中是没有事务隔离的情况 第二类丢失更新 脏…

需求工程方法的学习

作业要求:总结尽可能多的需求工程的方法和技术,要求归纳总结各种方法的适用场景、优缺点等。说明:其中需求工程包括需求获取、需求分析、规格说明、验证、管理等。只要是用于需求工程相关的技术和方法都可以算。 软件需求工程划分为需求开发…

Linux 中 man手册中函数后面括号数字释义

文章目录简介参考资料简介 Linux手册页项目记录了用户空间程序使用的Linux内核和C库接口。 用man手册查看系统命令,系统调用,glibc函数时,会发现其后面会有个括号,括号里面是一个数字,比如: access(2), …

一文了解Spring框架

目录 SpringBoot VS Servlet Spring是什么? loC:控制反转 DI 创建一个Spring项目 创建一个Spring IOC容器 注册Bean对象 获取Bean对象 注意事项: 类注解 为什么有这么多类注解? 注册与注入 方法注解 Bean Spr…

《R语言数据分析》2022-2023第一学期课程分析报告

1 (30分)基本操作题 1.1 (10分) 请写出下面问题的R代码 1.(2分)安装并加载gtools扩展包。 install.packages(“gtools”) library(gtools) 2.(2分)查看当前已经加载的所有包。 as.data.frame(installed.packages())$Package 3.(2分)查看gtools包的帮助网页。 ?gtools…

《清单革命》内容梳理随笔

《清单革命》内容梳理&随笔 起 书即是将四散的知识按照逻辑和网状联系编排起来。你应该这样去读,高屋建瓴、层次有秩、显得貌似自己有经验(褒义)的读,读出一些感想和方法论,无论是读出书里的还是书外的&#xff…

【MySQL高级】SQL优化

5. SQL优化 5.1 大批量插入数据 环境准备 : CREATE TABLE tb_user_2 (id int(11) NOT NULL AUTO_INCREMENT,username varchar(45) NOT NULL,password varchar(96) NOT NULL,name varchar(45) NOT NULL,birthday datetime DEFAULT NULL,sex char(1) DEFAULT NULL,…

【数据库】实验五 数据库综合查询|多表查询、聚集函数、orderby、groupby

文章目录参考文章本文在实验四的基础上增加了orderby、聚集函数、groupby、多表查询的知识点,相较于上一次实验的难度变大了,嵌套表达更多了,逐渐开始套娃…… 其实可以看成一个偏正短语来拆分,再写成SQL语句,比如查询…

微信小程序|基于小程序实现人脸数量检测

一、文章前言二、具体流程及准备三、开发步骤四、完整代码一、文章前言 此文主要通过小程序实现检测图片中的人脸数量并标记出位置信息。 当近视的小伙伴看不清远处的人时,用小程序一键识别就可以在手机上看清楚啦,是不是很实用呢。 典型应用场景&#x…

2022年还在做手动测试?是该好好反思了

为什么会写这篇文章呢?主要是前段时间有个朋友在QQ上和我交流,说他干了10年的手工测试了,现在还能不能转行。 说实话,当时我听完非常惊讶!由此,我写了今天这篇文章。内容纯属个人观点,如果对你…

STM32CubeMX学习笔记(46)——USB接口使用(HID自定义设备)

一、USB简介 USB(Universal Serial BUS)通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。USB 是在 1994 年底由英特尔、康柏、IBM、…

浅刷牛客链表题,逐步深入链表,理解链表

作者:渴望力量的土狗 博客主页:渴望力量的土狗的博客主页 专栏:手把手带你刷牛客 工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器——牛客网 点击免费注册和我一起刷题吧 目录 1、反转链表 2、删除链表的倒数第n个…

RocketMQ 消息重新投递 解析——图解、源码级解析

🍊 Java学习:Java从入门到精通总结 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2022年11月4日 &#x…

35、Java——一个案例学会Dao+service层对数据表的增删改查

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:乐趣国学的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java案例分…

deployment html--->JDBC--->mysql

spec: 相关属性定义 spec.selector: 符合该条件的收到该deployment管理 #spec.selector.matchLables 和 spec.template.metadata.labels 标签要一致 mysql Service metadata.name: Service的服务名 spec.ports: 虚拟端口 spec.selector: 哪些pod(实列&…

《Java》深浅拷贝解析(还不会区分深浅拷贝吗?快进来)

目录 一、深浅拷贝的意义 浅拷贝 深拷贝 二、深浅拷贝举例 浅拷贝 深拷贝 一、深浅拷贝的意义 首先我们来了解一下深浅拷贝的意义 浅拷贝 浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用&#xff0c…

全网最全【数据结构与算法】408真题实战(含代码+详解)—— 线性表专题(持续更新...)

线性表专题 每道题目均有对应的代码&#xff0c;大家自行查看哦&#xff01; 顺序表 ADT&#xff1a;SeqList 文件名&#xff1a;SeqList.hpp #include <iostream> #include <cstdlib> using namespace std; // 以上是实际运行所需依赖&#xff0c;考试不用写t…