Linux 虚拟化和 PCI 透传技术

Linux大全评论2.8K views阅读模式

处理器已经演变为针对虚拟环境提高性能,但 I/O 方面发生了什么变化呢?了解一种名为设备(或 PCI)透传(passthrough)的 I/O 性能增强技术,这种创新技术通过使用来自 Intel? (VT-d) 或 AMD (IOMMU) 的硬件支持改进 PCI 设备的性能。

平台虚拟化是在两个或多个操作系统之间共享一个平台,以便更有效地利用资源。但平台 并不只是意味着一个以上的处理器,它还包含组成平台的其他重要元素,比如存储器、网络和其他硬件资源。某些硬件资源可以轻松虚拟化,比如处理器和存储器;而另一些硬件资源则不然,比如视频适配器和串口。当共享不可能或没用时,Peripheral Component Interconnect (PCI) 透传技术提供有效使用这些资源的方法。本文探索透传(passthrough)技术的概念及其在管理程序(hypervisor)中的实现,详细介绍支持这个最新创新技术的管理程序。

平台设备模拟

在探索透传技术之前,让我们先讨论一下如今设备模拟在两个管理程序架构中是如何工作的。第一个架构将设备模拟整合到管理程序中,而第二个架构将设备模拟推到管理程序之外的一个应用程序中。

管理程序中的设备模拟 是在 VMware 工作站产品(一个基于操作系统的管理程序)中实现的一个公共方法。在这个模型中,管理程序包含各种客户操作系统能够共享的公共设备,如虚拟磁盘、虚拟网络适配器和其他必需的平台元素。这个特定模型如图 1 所示。


图 1. 基于管理程序的设备模拟


Linux 虚拟化和 PCI 透传技术

第二个架构称为用户空间设备模拟(见图 2)。顾名思义,这种设备模拟是在用户空间中实现的,而不嵌入到管理程序中。QEMU(不仅提供设备模拟,还提供一个管理程序)提供设备模拟,用于大量独立管理程序,如 Kernel-based Virtual Machine (KVM) 和 VirtualBox 等。这个模型更具优势,因为设备模拟独立于管理程序,因而可以在多个管理程序之间共享。另外,这个模型还支持任意设备模拟,无须管理程序(以特权状态运行)负担这个功能。


图 2. 用户空间设备模拟


Linux 虚拟化和 PCI 透传技术

将设备模拟从管理程序推向用户空间有一些明显的优势,最大的优势涉及所谓的可信计算基础(trusted computing base,TCB)。一个系统的 TCB 是对该系统安全性很关键的所有安全组件的集合。有一点是显而易见的:如果系统被最小化,出现 bug 的可能性也就更小,因此系统也就越安全。这个原理也适用管理程序。管理程序的安全性很重要,因为它分隔多个独立的客户操作系统。管理程序中的代码越少(将设备模拟推到特权较低的用户空间中),将特权泄露给不可信用户的机率也就越少。

企鹅博客
  • 本文由 发表于 2020年8月9日 02:43:17
  • 转载请务必保留本文链接:https://www.qieseo.com/139317.html

发表评论