论文标题

Duvisor:通过委派虚拟化的用户级管理程序

DuVisor: a User-level Hypervisor Through Delegated Virtualization

论文作者

Chen, Jiahao, Li, Dingji, Mi, Zeyu, Liu, Yuxuan, Zang, Binyu, Guan, Haibing, Chen, Haibo

论文摘要

当今的主流虚拟化系统包括两个合作组件:一个可访问虚拟化硬件的内核驱动程序和一个提供VM管理和I/O虚拟化的用户级别的助手过程。但是,这种虚拟化体系结构在安全性(大攻击表面)和性能中都存在内在问题。尽管有一段漫长的工作试图通过将功能卸载到用户模式来最大程度地减少居民驾驶员,但他们面临安全性和性能之间的基本权衡:更多的卸载可能会降低内核攻击面,但增加了辅助过程和驾驶员之间的运行时环交叉点,从而增加了性能成本。 本文探讨了一种称为委派虚拟化的新设计,该设计将控制平面(内核驱动程序)与数据平面(辅助过程)完全分开,从而消除了内核驱动程序从运行时干预中。一旦内核驱动程序完成了初始化,所得的用户级管理程序称为DUVISOR,可以处理所有VM操作,而无需捕获内核。 Duvisor Raterofits使用新的授权虚拟化扩展名支持现有的硬件虚拟化支持,以直接处理VM出口,配置虚拟化寄存器,在用户模式下管理阶段2页表和虚拟设备。我们已经在开源RISC-V CPU上实现了硬件扩展名,并在硬件上建立了基于Rust的虚拟机管理程序。在Firesim上的评估表明,在各种现实世界中,Duvisor的表现高达47.96 \%,并大大降低了攻击表面。

Today's mainstream virtualization systems comprise of two cooperative components: a kernel-resident driver that accesses virtualization hardware and a user-level helper process that provides VM management and I/O virtualization. However, this virtualization architecture has intrinsic issues in both security (a large attack surface) and performance. While there is a long thread of work trying to minimize the kernel-resident driver by offloading functions to user mode, they face a fundamental tradeoff between security and performance: more offloading may reduce the kernel attack surface, yet increase the runtime ring crossings between the helper process and the driver, and thus more performance cost. This paper explores a new design called delegated virtualization, which completely separates the control plane (the kernel driver) from the data plane (the helper process) and thus eliminates the kernel driver from runtime intervention. The resulting user-level hypervisor, called DuVisor, can handle all VM operations without trapping into the kernel once the kernel driver has done the initialization. DuVisor retrofits existing hardware virtualization support with a new delegated virtualization extension to directly handle VM exits, configure virtualization registers, manage the stage-2 page table and virtual devices in user mode. We have implemented the hardware extension on an open-source RISC-V CPU and built a Rust-based hypervisor atop the hardware. Evaluation on FireSim shows that DuVisor outperforms KVM by up to 47.96\% in a variety of real-world applications and significantly reduces the attack surface.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源