1. 内存脏页
- ‘Dirty Quota-Based VM Live Migration Auto-Converge - Manish Mishra & Shivam Kumar, Nutanix India’
目前qemu的自动收敛实现方式是根据迭代过程中观察到的dirty-rate和网络吞吐量对所有的vcpus进行节流,这导致了–所有的vcpus受到同样的惩罚。
讲座提出了一种基于单个vcpu “脏污配额” 的新算法,它只惩罚写密集型的vcpus,在网络和脏污率变化的情况下动态适应,并通过允许更精细地控制脏污率来提高收敛性。
- ‘KVM Dirty Page Tracking - Peter Xu, Red Hat’
讨论了KVM中现有的用于虚拟机脏页追踪的解决方案、挑战以及对未来的大胆想象。
首先,介绍什么了是KVM脏页跟踪,为什么我们需要它,以及它是如何工作的。
讨论不同解决方案的优点和缺点,最后针对在巨大的虚拟机迁移中所面临的挑战,进行了讨论和说明。
2. 内存超配
- ‘Lessons Learned Building a Production Memory-Overcommit Solution - Florian Schmidt & Ivan Teterevkov, Nutanix’
介绍了基于QEMU/kvm和libvirt的自适应内存超额分配解决方案中所获得的经验教训。
讨论了不同内存后端(如hugetlbfs和memfd)的缺点,通过cgroups协调内存膨胀和管理程序交换的挑战。
以及如果没有详尽的页回收提示,开箱即用的实时迁移性能为何会是灾难性的。
3. vDPA技术
‘vdpa-blk Unified Hardware and Software Offload for virtio-blk - Stefano Garzarella, Red Hat’
vDPA(virtio Data Path Acceleration)是一个新颖的框架,旨在简化设备硬件加速的软件实现。
利用vDPA的潜力,作者介绍了一个在主机内核中运行的新的vdpa-blk软件设备,它统一了硬件和软件加速器的软件栈。‘Hyperscale vDPA - Jason Wang, Red Hat’
大规模可扩展vDPA技术。随着给每个虚拟机/容器分配一个vDPA实例的要求增加,讲座介绍各种了将vDPA扩展到每个主机超过10K实例的方法。‘VDUSE - vDPA Device in Userspace - Yongji Xie, ByteDance’
本讲座将介绍VDUSE(用户空间中的vDPA设备),它是一个建立在vDPA内核子系统上的Linux驱动,提供一个框架来实现用户空间中的软件模拟vDPA设备。讨论内核VDUSE模块的设计和实现,并给出一些例子来说明如何用VDUSE在用户空间中模拟VDPA设备。
4. QEMU多进程
‘libvfio-user Status Update - Thanos Makatos & John Levon, Nutanix’
vfio-user是一个设备卸载协议,允许设备在VMM之外进行虚拟化。这个库简化了在vfio-user协议下运行的虚拟设备的实现,隐藏了协议实现的细节。
讲座探讨了libvfio-user的实现、它的API、未来的工作。‘VFIO User - Using VFIO as the IPC Protocol in Multi-process QEMU - John Johnson & Jagannathan Raman, Oracle’
描述了我们如何在一个独立的QEMU进程中进行设备虚拟化。在6.0版本中,QEMU多进程它作为一项实验性功能被集成到了发布版本中。
演讲中,描述如何发展该项目,使用VFIO作为进程间通信的基础。利用libvfio-user项目进行服务器端的VFIO消息处理。
VFIO协议足够灵活,可以在未来扩展到非PCI设备。 作者介绍了项目的现状,以及未来的发展方向。
5. Windows优化
- ‘The Traps of Using Hyper-V Features in KVM Environment - Liang Li, Alibaba’
Windows guest在云游戏和云桌面的场景中它的作用是不可替代的。
Hyper-V的相关功能被逐步加入KVM中。在讲座中,介绍了生产环境中使用Hyper-V相关功能时遇到的陷阱,以及避免陷阱的相关方法。
6. QEMU/KVM 测试框架
- ‘Know your QEMU and KVM Test Frameworks - Thomas Huth, Red Hat’
QEMU和KVM是巨大的项目–因此当然也有多个测试框架用于项目的各个部分。KVM selftests, kvm-unit-tests, qemu qtests, iotests, avocado等等。
讲座中对现有的测试框架进行调查,以帮助决定应该为哪项任务选择哪种框架,并提供一些添加新测试的简单例子。
7. QEMU代码复杂性讨论
- ‘Is QEMU too Complex, and What Can we do About It - Paolo Bonzini, Red Hat, Inc.’
Paolo Bonzini作为KVM和QEMU中各种子系统的上游maintainer,在此演示中,展示了其对QEMU复杂到性来源,包括本质复杂性和偶然复杂性,并分析了怎么避免偶然复杂性。