术语虚拟被严重地过度使用,从在云中运行的虚拟机到在虚拟世界中运行的虚拟化身,各种事物都用它来形容。即使在计算机 I/O 的狭窄语境中,虚拟化也具有悠久而多样的历史,逻辑设备与它们的物理实例化刻意分离就是例证。
例如,在计算机存储中,LUN(逻辑单元号)代表一个逻辑磁盘,它可以由本地物理驱动器上的分区,到网络存储阵列导出的多磁盘 RAID 卷来支持。在计算机网络中,VPN(虚拟专用网络)代表一个逻辑上隔离的私有网络,这种隔离是通过使用密码学方法来保护可能实际上会遍历公共互联网的数据来实现的。在计算机体系结构中,IOMMU(I/O 内存管理单元)将 I/O 虚拟内存地址转换为相应的物理内存地址,使设备可以直接内存访问,既安全又高效。虚拟化的其他示例包括 VLAN(虚拟局域网)、NPIV(N_端口 ID 虚拟化)、VT-d(英特尔定向 I/O 虚拟化技术)和 MR-IOV(多根 I/O 虚拟化)。
共同的主题是将逻辑与物理解耦,在抽象和具体之间引入一层间接层。这种间接层已被证明非常强大且通用。现代虚拟化平台以多种方式利用间接层和抽象。VM(虚拟机)是一种软件抽象,其行为类似于完整的硬件计算机,包括虚拟化的 CPU、RAM 和 I/O 设备。一个称为虚拟机监控器的虚拟化软件层提供了将操作系统及其应用程序与物理硬件解耦的间接层。术语客户机通常用于区分在 VM 中运行的软件层;客户机操作系统管理应用程序和虚拟硬件,而虚拟机监控器管理 VM 和物理主机硬件。
尽管 IBM 在几十年前就发明了大型机 VM 并将其商业化,但虚拟机直到 20 世纪 90 年代后期才跃升到商品化硬件,当时 VMware 开创了在 x86 平台上高效虚拟化的先河。从那时起,虚拟化在工业界和学术界都经历了重新流行的兴趣。今天,VM 在许多计算环境中很常见,并且在企业数据中心和云计算基础设施中几乎无处不在。
由于虚拟化是一个广泛的主题,并且 I/O 设备的范围很大且多样,因此本文重点关注基于 VM 的系统中一些具有代表性的 I/O 系统问题,主要是在单个物理主机的上下文中。在强调关键优势和挑战之后,我们将探讨各种实现方法和技术,这些方法和技术已被用来实现灵活、高性能的 I/O 虚拟化。
虚拟化系统的许多优势取决于 VM 的逻辑 I/O 设备与其物理实现的解耦。示例范围从在同一硬件上多路复用多个 VM 的能力,到高级虚拟化功能,如实时迁移和增强的安全性。
在最基本的层面上,解耦实现了 I/O 设备的时空复用,允许使用较少数量的物理设备来实现多个逻辑设备。虚拟化的应用,如服务器整合或在同一机器上运行异构操作系统环境,都依赖于此功能。随着不可阻挡的趋势创造出越来越强大的硬件,大部分硬件仍然严重未被充分利用也就不足为奇了。将逻辑 I/O 设备多路复用到物理设备上的能力,使管理员和自动化系统都能够以更高的利用率驱动 I/O 设备,并实现更好的硬件效率。过去十年虚拟化的快速普及,很大程度上可以归因于这种基本分区和服务器整合带来的显著成本节约。
解耦为逻辑设备和物理设备之间的灵活映射提供了可能,从而促进了无缝可移植性。通过支持将逻辑 I/O 设备映射到具有不同但语义兼容接口的物理设备,虚拟化使 VM 具有可移植性,即使在异构系统之间也是如此。相同的 VM 镜像可以在具有不同 I/O 设备和配置的计算机上运行,而 I/O 虚拟化层提供必要的转换。
解耦还支持流行的 VM 功能,如挂起和恢复虚拟机,以及在物理机器之间移动正在运行的虚拟机,即实时迁移。在这两种应用中,活动的逻辑设备必须与物理设备解耦,并在 VM 在保存或移动后恢复时重新耦合。
即使 VM 本身不移动,此虚拟化层也可能更改到物理设备的映射。例如,通过在复制存储内容时更改映射,VM 的虚拟磁盘可以在网络存储单元之间透明地迁移,即使在 VM 仍在积极使用的情况下也是如此。同样的功能也可以用于提高可用性或平衡跨不同 I/O 通道的负载。例如,在具有机器和存储之间多条路径的存储系统中,虚拟化层可以重新绑定映射以掩盖故障或避免因路径上的争用而可能发生的延迟。
I/O 虚拟化为许多创新和有益的逻辑 I/O 设备增强功能提供了基础。介入 VM 的 I/O 流入和流出已被广泛应用于研究论文和商业虚拟化系统中。
I/O 虚拟化启用的一项有用功能是设备聚合,其中可以将多个物理设备组合成一个功能更强大的逻辑设备,并将其导出到 VM。示例包括将多个磁盘存储设备组合成一个更大的磁盘导出,以及网络通道绑定,其中可以将多个网络接口组合起来,以显示为单个更快的网络接口。
通过介入和转换虚拟 I/O 请求,可以将新功能添加到现有系统中,从而透明地使用新功能增强未修改的软件。例如,磁盘写入可以转换为复制写入到多个磁盘,以便系统可以容忍磁盘设备故障。类似地,通过记录和跟踪对虚拟磁盘所做的更改,虚拟化层可以提供时间旅行功能,从而可以将 VM 的文件系统向后移动到更早的时间点。此功能是许多桌面虚拟化系统中快照和撤销功能的重要组成部分。
许多 I/O 虚拟化增强功能旨在提高系统安全性。一个简单的例子是在磁盘的 I/O 上运行加密功能,以实现透明磁盘加密。介入网络流量允许虚拟化层实现高级网络安全,例如防火墙和采用深度包检测的入侵检测系统。
虽然虚拟化提供了许多优势,但也引入了重大挑战。其中之一是实现良好的 I/O 性能,尽管可能存在与灵活的间接性和介入相关的开销。复杂的资源管理问题,如调度和优先级排序,是由跨多个 VM 多路复用物理设备引入的,这进一步影响了性能。另一个挑战是为虚拟设备和接口定义适当的语义,尤其是在面对复杂的物理 I/O 设备或系统级优化时。
在许多系统中,不小的性能损失与间接层相关联。虚拟化 I/O 也是如此,因为从概念上讲,I/O 操作必须遍历两个独立的 I/O 堆栈:一个在客户机中管理虚拟硬件,另一个在虚拟机监控器中管理物理硬件。更长的 I/O 路径会影响延迟和吞吐量,并增加额外的 CPU 负载。实际上,在一些早期的虚拟化系统上,I/O 密集型工作负载遭受的虚拟化损失大于两倍。从那时起,进一步的研究、优化和硬件加速已将这种损失降低到令人印象深刻的需求苛刻的生产工作负载的噪声水平。与直觉相反的是,虚拟化系统甚至在相同的物理硬件上优于本地系统,通过在横向扩展配置中运行几个较小的 VM 实例来克服本地扩展限制。
图 1 描述了虚拟化系统中 I/O 请求的流程。当在 VM 中运行的应用程序发出 I/O 请求时(通常是通过进行系统调用),它最初由也在 VM 中运行的客户机操作系统中的 I/O 堆栈处理。客户机中的设备驱动程序向虚拟 I/O 设备发出请求,然后虚拟机监控器拦截该请求。虚拟机监控器将来自多个 VM 的请求调度到基础物理 I/O 设备上,通常是通过虚拟机监控器管理的另一个设备驱动程序或具有直接访问物理硬件权限的虚拟机来实现。
当物理设备完成 I/O 请求处理时,必须再次遍历两个 I/O 堆栈,但顺序相反。实际设备发布物理完成中断,该中断由虚拟机监控器处理。虚拟机监控器确定哪个 VM 与完成相关联,并通过为客户机操作系统管理的虚拟设备发布虚拟中断来通知它。为了减少开销,一些虚拟机监控器在软件中执行虚拟中断合并,类似于物理卡中发现的硬件批处理优化,后者延迟中断传递,目标是仅为多个传入事件发布单个中断。
介入可能会产生额外的开销,例如通过检查网络数据包来执行安全检查,或透明地加密磁盘写入。在某些情况下,介入成本可以忽略不计,尤其是与高延迟操作(如传统旋转介质的 I/O)相比时。在其他情况下,即使额外复制一份 I/O 数据也可能成本过高,例如,对于具有极高数据包速率的快速网络。为了提高性能,一些虚拟机监控器并行化此处理的部分,将工作卸载到额外的处理器核心。当然,当 CPU 资源争用时,这会减少可用于运行虚拟机的核心数量。
在虚拟化系统中管理资源提出了额外的挑战。尽管每个 VM 都被呈现出拥有自己专用虚拟硬件的错觉,但实际上,虚拟机监控器必须在不同重要性的多个 VM 之间复用有限的物理硬件,将其虚拟资源映射到可用的物理资源上。在最基本的层面上,物理设备争用将导致某些 VM 的调度延迟。至少,虚拟机监控器必须阻止 VM 垄断资源并拒绝为他人提供服务。
更一般而言,虚拟机监控器应提供某种程度的性能隔离或服务质量控制,以反映不同 VM 工作负载的相对重要性或绝对要求。当物理资源在多个用户或组织之间共享时,表达资源管理策略的能力尤其重要,这在多租户云计算环境中很常见。一些虚拟机监控器支持相对权重控制,其中 VM 的分配与其权重成正比。有些还提供绝对预留和限制设置,这些设置限制了 VM 的最小和最大分配,而与系统负载无关。
对于可以由不同主机上的 VM 并发访问的 I/O 设备(如网络存储阵列),资源管理需要分布式算法来公平有效地调度请求。虚拟化平台最近才开始提供能够为 VM I/O 带宽和延迟提供端到端服务质量的复杂解决方案。
调度也可能以更微妙的方式影响 VM 性能。例如,CPU 资源争用可能会导致 TCP 网络性能问题。TCP 连接依赖于准确的 RTT(往返时间)估计,以便执行流量控制并适当调整窗口大小。然而,VM 可能会在数据包正在等待处理时被取消调度数十甚至数百毫秒。因此,CPU 时间复用可能会扭曲 VM 的 RTT 值,导致其拥塞窗口增长过慢,从而显著降低吞吐量。为了解决这个问题,一些研究人员建议将更多 TCP 功能卸载到虚拟机监控器。另一种选择是为 VM 提供虚拟 NIC(网络接口控制器)硬件,该硬件支持可选的 TOE(TCP 卸载引擎)功能,这在某些物理 NIC 中可以找到。
向虚拟 NIC 添加 TCP 卸载功能的想法突显了为虚拟硬件选择适当语义的难度。对于具有更复杂接口的设备(如现代图形卡)来说,尤其如此。在一种极端情况下,虚拟硬件可以具有与物理设备相同的接口。这种方法具有与所有已经支持(或将要支持)物理设备的软件兼容的引人注目的优势。不幸的是,这种透明度通常以模拟相当复杂的虚拟设备接口为代价,而这种接口并非旨在有效地支持虚拟化。在另一种极端情况下,虚拟硬件可以具有全新的虚拟机监控器专用接口,该接口明确地设计为简单高效。
一个相关的挑战是确保虚拟化忠实地保留软件期望物理设备的语义。例如,一些虚拟化系统通过利用虚拟机监控器级缓冲区缓存来提高 I/O 性能,该缓存位于 VM 和物理存储之间。虽然缓存读取不会引入任何问题,但缓存写入会违反客户机文件系统、数据库和其他软件所依赖的持久性语义。在本地、非虚拟化系统中,I/O 完成表示写入已提交。虚拟机监控器必须使用写直通缓存来保留此属性,尽管有些虚拟机监控器提供了一个显式选项,可以通过放宽此约束来权衡安全性以换取性能。
DMA(直接内存访问)说明了额外的安全性和性能问题。它使 I/O 设备能够直接读取和写入主机 RAM,而无需 CPU 的参与,这对于实现高性能 I/O 速率至关重要。不幸的是,赋予设备使用 DMA 访问任意物理内存位置的能力是危险的,尤其是在大多数操作系统错误是由行为不端的设备驱动程序引起的情况下。正如下一节所讨论的,虚拟化系统可以通过采用各种方法来确保 VM 之间的严格隔离,例如在客户机和虚拟机监控器级别利用硬件 IOMMU 功能。
实现 I/O 虚拟化的经典方法是将软件结构化为两个部分:导出到 VM 的模拟虚拟设备,以及由虚拟设备模拟代码使用的后端实现,以提供设备的语义。如图 2 所示,现代虚拟机监控器支持具有分离实现的 I/O 虚拟化架构,其中虚拟机可以在不同的虚拟设备接口模拟前端以及设备的多个不同后端实现之间进行选择。例如,虚拟机可以配置 IDE、SCSI 或半虚拟化磁盘设备,这些设备可以实现为文件、本地磁盘或 SAN(存储区域网络)。本节介绍这些在现代虚拟化系统中实现的方式,并讨论一些可用的优化选项。
为了实现经典虚拟化能力,即在 VM 中运行与物理机器上运行的相同的软件环境,导出到 VM 的抽象必须与物理机器足够相似,以便软件能够运行。这可能出奇地复杂。例如,考虑 VMware 为遗留 VM 继承的商品化 PC 架构。确保兼容性意味着导出几个 PC 设备抽象,包括架构定义的抽象,如 x86 IN 和 OUT 指令、对 I/O 设备地址的非缓存加载和存储访问、DMA 和中断。虚拟化层和虚拟设备模拟代码必须足够忠实地支持架构和设备语义,才能使 VM 中的代码正确执行。
作为一个具体的例子,考虑一个遗留 PC I/O 设备,如 IDE 磁盘。VM 中的操作系统将调用设备驱动程序来启动磁盘读取或写入请求。设备驱动程序将包括 OUT 指令,这些指令编程操作类型、设备号、磁盘扇区号、长度和操作的缓冲区内存位置。驱动程序假定设备将使用 DMA 在内存和磁盘设备之间传输内容,然后在完成时引发中断。为了使模拟设备正常工作,模拟软件必须捕获并解释 OUT 指令,以确定正确的操作及其参数;通过存储或获取请求的存储块来执行操作的模拟,使用架构 DMA 能力的模拟来读取或写入内存;最后在 VM 上引发正确的中断信号,以通知驱动程序请求已完成。
虽然设备模拟代码特定于正在模拟的特定设备(例如,IDE 磁盘),但正在执行的操作的语义是通用的,并且经常构建为相同的设备模拟可以访问多个不同的后端实现。例如,对于虚拟磁盘,后端实现可以像将未转换的请求转发到本地物理 IDE 控制器一样简单,也可以像在主机操作系统文件系统中的文件中实现虚拟磁盘的存储一样复杂,这在许多桌面虚拟化产品中都是如此。在后一种情况下,后端必须为主机操作系统生成文件系统读取和写入操作,用于包含虚拟磁盘内容的文件,以便执行模拟的虚拟磁盘扇区读取和写入操作。
后端实现的可插拔结构使得为虚拟设备生成新功能变得容易。磁盘存储后端可以通过简单地访问包含其 ISO(国际标准化组织)镜像的文件,为 VM 实现模拟 CDROM 设备。类似地,现代虚拟化系统中的快照和撤销功能可以通过记录而不是覆盖虚拟磁盘文件来实现,从而使虚拟化层可以控制哪个版本的磁盘对 VM 可见。
随着灵活性和创新功能的到来,可能会出现潜在的性能损失,这种损失可能会有很大差异。针对服务器机器优化的后端,可以有效地将模拟的读取和写入操作传输到本地磁盘的一部分,可能具有非常低的虚拟化开销。相比之下,对于桌面虚拟化后端,数据存储在主机操作系统使用的网络文件系统上的加密文件中,损失可能相对较大。不仅每个读取和写入请求都会遍历主机操作系统和网络文件系统的文件系统和网络代码,而且每个扇区还会产生额外的加密和解密开销。
当前 I/O 虚拟化的许多研究都集中在新介入功能上,这些功能解决了某些问题,或者集中在优化上,以减少与虚拟化相关的开销。优化在服务器虚拟化和整合中尤其重要,在这些方面,开销直接影响诸如每台服务器支持的 VM 数量等指标。除了后端优化之外,减少 I/O 虚拟化开销还需要降低虚拟设备模拟成本。最近的几项优化尝试正是这样做的,要么使用软件,要么修改 I/O 设备硬件。
降低模拟成本的软件技术之一是减少虚拟机监控器执行 I/O 操作所需的陷阱和模拟操作的数量。例如,遗留 PC IDE 接口使用八位 OUT 指令与磁盘控制器通信。传达扇区号、缓冲区地址和长度需要多个此类指令,从而导致重复陷入虚拟机监控器以运行设备模拟代码。使用替代磁盘设备(如 SCSI 磁盘)的驱动程序可以实现相同的功能,但陷阱要少得多,从而大大减少了模拟开销。
通过优化 VM 软件和设备模拟之间的通信,可以实现进一步的减少。在现代操作系统环境(如 Windows 和 Linux)中,可以安装设备驱动程序,以最小的开销直接将请求的参数传达给虚拟机监控器的设备模拟代码。这种使用针对虚拟化层优化的虚拟硬件,而不是匹配任何特定真实设备的方法,被称为半虚拟化。在实践中,大多数现代虚拟化平台都支持用于兼容性的模拟遗留设备,以及用于更高性能的可选半虚拟设备。
例如,半虚拟化磁盘接口可以使设备模拟代码通过驱动程序和模拟之间共享的内存段接受命令,从而允许以几乎为零的开销进行命令通信。模拟代码只需将命令传递给优化的后端实现。示例包括 Xen 的虚拟块设备前端驱动程序和 VMware 的 PVSCSI 客户机磁盘驱动程序。
对于仅由单个 VM 使用的 I/O 设备,其中后端实现主要是将驱动程序命令从 VM 传递到设备,因此很想直接传递设备,将其独占地分配给 VM。考虑高性能 NIC 的示例,该 NIC 仅由计算机上运行的 VM 之一使用。配置 CPU 虚拟化相对容易,因此与设备通信的 x86 指令可以直接连接到设备,并且不会产生 I/O 虚拟化开销。这种直通模式可以消除设备模拟和后端实现的开销。
尽管直通模式可以消除 I/O 虚拟化开销,但它引入了一些限制和实现挑战,这些挑战减缓了其部署。除了每个直通设备只能由单个 VM 使用的明显限制外,直通还在硬件和 VM 之间形成了耦合。因此,虚拟化的许多可移植性优势都丧失了,以及诸如实时迁移和依赖于介入 I/O 能力的功能等关键优势。
直通模式的最大挑战之一影响了使用 DMA 的设备。根本问题是,VM 中的驱动程序将使用客户机对内存地址的概念来编程设备 DMA,这与 VM 内存所在的真实内存地址不同。这不仅是不正确的,而且也是一个巨大的安全和安全问题,因为设备可能会读取和写入可能属于虚拟机监控器或其他虚拟机的内存。为了使此工作正常进行,VM 的驱动程序必须转换内存地址以使用正确的真实内存,然后再将其编程到设备中。这使驱动程序暴露于虚拟机监控器内存虚拟化的细节,并且仍然存在安全问题,因为驱动程序中的错误可能导致不正确的转换。
为了消除直通的限制和挑战,设备制造商已修改其硬件以使其了解虚拟化层。为了处理独占直通设备的限制,这种虚拟化感知硬件导出了多个接口,每个接口都可以附加到不同的 VM。因此,每个 VM 都获得了其自己的直接可访问的设备直通副本。例如,虚拟化感知 NIC 可能具有许多个性,这些个性看起来和表现得好像许多单独的 NIC 已直接映射到不同虚拟机中。
需要额外的硬件支持来解决直接涉及虚拟机内存的 DMA 操作的挑战。内存管理单元用于将 DMA 操作的内存地址映射到虚拟机内存中的正确位置。这种映射硬件(IOMMU)是为连接到设备的每个虚拟机编程的,其中包含 VM 在内存中驻留位置的映射。每个 DMA 请求都通过 IOMMU 运行,IOMMU 将请求路由到或从真实机器内存中的正确位置,或者如果请求无效,则生成错误。IOMMU 允许 VM 中的驱动程序使用其虚拟化的内存地址概念来编程设备 DMA,同时仍然允许虚拟机监控器决定 VM 内存实际位于物理机器内存中的位置。IOMMU 还提供了一定程度的安全性,确保即使客户机中存在错误的驱动程序软件,也无法生成对虚拟机外部位置的 DMA 访问。
尽管 IOMMU 可以安全有效地允许虚拟化感知 I/O 设备直接访问虚拟机的内存,但对于现代虚拟机监控器中一些更复杂的内存虚拟化操作,它们仍具有影响,这些操作依赖于动态页面重映射。考虑诸如内存超额分配等功能,其中虚拟机监控器可以通过诸如按需分页虚拟机内存到辅助存储等技术来回收 RAM;内存压缩;或透明内存共享,其中相同的页面可以通过在多个虚拟机之间以只读方式共享来去重。这些功能要求在允许它们继续之前,某些对 VM 内存的访问会产生故障并调用虚拟机监控器操作。DMA 设备需要尊重这一点,因此设备需要支持类似于 DMA 操作页面错误的功能,其中在允许 DMA 完成之前调用虚拟机监控器。容忍 DMA 操作的任意延迟可能会对使 I/O 设备虚拟化感知所需的更改产生更深远的影响。
虽然生产虚拟机监控器采用硬件 IOMMU 和其他硬件强制内存映射技术来保证 VM 之间的隔离,但它们尚未在呈现给 VM 的虚拟硬件中包含 IOMMU。vIOMMU(虚拟 IOMMU)将允许客户机操作系统防御其自身错误的设备驱动程序,就像在本地系统中一样。
最近,研究人员开发了新的 IOMMU 模拟技术,用于有效地为客户机提供 vIOMMU。更重要的是,相同的方法促进了更灵活的设备直通形式,其中允许 VM 与直接分配的 I/O 设备交互,而无需虚拟机监控器干预。由于客户机向 vIOMMU 公开其内存的哪些区域当前参与 DMA 操作,因此虚拟机监控器能够安全地修改其他内存区域的映射。通过仅介入 vIOMMU 操作,可以在保留虚拟机监控器管理、重映射和超额分配内存能力的同时,实现接近本地的 I/O 性能。
将逻辑设备与其物理实现解耦提供了许多引人注目的优势。单个物理设备可以被多路复用,使其充当许多虚拟设备,从而提高硬件利用率。抽象掉有关特定硬件和物理位置的细节,使得无缝迁移成为可能。虚拟和物理之间的间接层还提供了一个便捷的钩子,用于透明地介入 I/O 操作,从而启用诸如复制、负载均衡、加密和安全检查等新功能。
I/O 虚拟化的一个关键挑战是以最小的开销实现这些优势。已经设计了许多巧妙的软件和硬件方法来实现高性能的间接性和介入,包括半虚拟化和虚拟化感知设备。当设备复用用于将不同的工作负载整合到同一物理硬件上时,资源管理问题(例如调度和优先级排序)变得重要。为虚拟设备定义清晰的接口和适当的语义也具有挑战性。
I/O 虚拟化仍然是学术界和工业界都活跃的研究和开发领域。尽管我们在这里重点关注从单个物理机器的角度来看的系统问题,但更广泛的 I/O 虚拟化背景包括分布式系统以及连接其虚拟和物理组件的结构上的大量工作。基于虚拟机的系统日益普及和商业成功,肯定会激发对新的虚拟化优化和 I/O 功能的需求。
艾哈迈德,I.,古拉蒂,A.,马什蒂扎德,A. 2011. vIC:虚拟机存储设备 IO 的中断合并。载于2011 年 Usenix 年度技术会议论文集(六月)。
Amit, N., Ben-Yehuda, M., Tsafrir, D., Schuster, A. 2011. vIOMMU:高效的IOMMU模拟。《Usenix 2011年度技术会议论文集》(六月)。
Gamage, S., Kangarlou, A., Kompella, R. R., Xu, D. 2011. 机会性洪泛以提高虚拟化云中的TCP传输性能。《第二届云计算研讨会论文集》(十月)。
Gulati, A., Ahmad, I., Waldspurger, C. 2009. PARDA:存储访问的比例资源分配。《第七届文件和存储技术会议论文集》(二月)。
Sugerman, J., Venkitachalam, G., Lim, B-H. 2001. 在VMware workstation的宿主机虚拟机监控器上虚拟化I/O设备。《Usenix 2001年度技术会议论文集》(六月)。
喜欢还是讨厌?请告诉我们
[email protected]
Carl Waldspurger 是多家初创公司的顾问。在过去的十年中的大部分时间里,他曾在VMware担任首席工程师,负责核心资源管理和虚拟化技术,包括调度、内存管理和分布式系统。在加入VMware之前,他曾在DEC系统研究中心担任研究员。他拥有麻省理工学院计算机科学博士学位,并且是杰出工程师。
Mendel Rosenblum 是斯坦福大学计算机科学和电气工程系的副教授。他的研究兴趣包括系统软件、分布式系统和计算机体系结构。他是VMware Inc.的联合创始人,并积极参与VMware虚拟化平台的研究和开发。他拥有加州大学伯克利分校计算机科学博士学位,并且是会士。
© 2011 1542-7730/11/1100 $10.00
最初发表于Queue vol. 9, no. 11—
在数字图书馆中评论这篇文章
Scot Rixner - 网络虚拟化:打破性能壁垒
虚拟化最近的人气复苏导致其在越来越多的环境中得到应用,其中许多环境需要高性能网络。例如,考虑服务器整合。网络虚拟化的效率直接影响可以有效地整合到单个物理机器上的网络服务器数量。不幸的是,现代网络虚拟化技术会产生显著的开销,这限制了可实现的网络性能。我们需要新的网络虚拟化技术,以在网络密集型领域充分实现虚拟化的优势。
Ulrich Drepper - 虚拟化的成本
虚拟化可以通过许多不同的方式来实现。它可以有硬件支持,也可以没有硬件支持。可以期望虚拟化操作系统为了虚拟化而进行更改,也可以期望它在不更改的情况下工作。无论如何,软件开发人员必须努力实现Gerald Popek和Robert Goldberg提出的虚拟化的三个目标:保真度、性能和安全性。
Werner Vogels - 超越服务器整合
虚拟化技术在1960年代后期被开发出来,以更有效地利用硬件。硬件很昂贵,而且可用性不高。处理主要外包给少数拥有计算机的地方。在单个IBM System/360上,可以并行运行多个环境,这些环境保持完全隔离,并让每个客户都产生拥有硬件的错觉。虚拟化是以粗粒度级别实现的时间共享,而隔离是该项技术的关键成就。
Tom Killalea - 会见虚拟人
当你深入挖掘那些所谓的“一夜成名”故事的细节时,你会经常发现它们实际上已经酝酿多年。虚拟化已经存在了30多年,从你们中的一些人还在向非常物理的机器中投入成堆穿孔卡片的时代开始,但在2007年,它突破了。VMware是当年IPO的轰动事件;在2007年11月,不少于四家主要的操作系统供应商(Microsoft、Oracle、Red Hat和Sun)宣布了重要的新虚拟化功能;在时尚技术专家中,虚拟似乎已成为新的潮流。