一句话:提出 DVH,使宿主 hypervisor 直接为嵌套虚拟机提供虚拟硬件,消除多层 hypervisor 干预,性能提升一个数量级以上。
嵌套虚拟化在虚拟化云基础设施上部署软件栈时日益重要,但性能远差于原生执行,阻碍其采用。论文提出 DVH(Direct Virtual Hardware),使直接运行在硬件上的宿主 hypervisor 能够绕过多个 hypervisor 层级,直接为嵌套虚拟机提供虚拟硬件。DVH 包含 virtual-passthrough、virtual timers、virtual inter-processor interrupts 和 virtual idle 四种机制,其虚拟硬件模拟底层硬件,并可利用软件灵活性加入增强而不依赖匹配的物理硬件支持。作者在 Linux KVM 中实现 DVH。真实应用负载实验表明,DVH 可达到接近原生的执行速度,并将 KVM 性能提升一个数量级以上。
Nested virtualization, running virtual machines and hypervisors on top of other virtual machines and hypervisors, is increasingly important because of the need to deploy virtual machines running software stacks on top of virtualized cloud infrastructure. However, performance remains a key impediment to further adoption as application workloads can perform many times worse than native execution. To address this problem, we introduce DVH (Direct Virtual Hardware), a new approach that enables a host hypervisor, the hypervisor that runs directly on the hardware, to directly provide virtual hardware to nested virtual machines without the intervention of multiple levels of hypervisors. We introduce four DVH mechanisms, virtual-passthrough, virtual timers, virtual inter-processor interrupts, and virtual idle. DVH provides virtual hardware for these mechanisms that mimics the underlying hardware and in some cases adds new enhancements that leverage the flexibility of software without the need for matching physical hardware support. We have implemented DVH in the Linux KVM hypervisor. Our experimental results show that DVH can provide near native execution speeds and improve KVM performance by more than an order of magnitude on real application workloads.