Timespan: 1.30 – 1.31 Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. 2003. Xen and the art of virtualization. In Proceedings of the nineteenth ACM symposium on Operating systems principles (SOSP '03). ACM, New York, NY, USA, 164-177. (gs:4279) ,1996年从剑桥大学获得博士学位,目前是Microsoft Research Cambridge的Principal Researcher,是Systems and Networking组的负责人。他的研究兴趣包括performance analysis of distributed systems, operating systems and virtualization。
这篇论文介绍了Xen的详细设计,并通过实验与非虚拟机系统及其他虚拟机系统在各方面性能进行了对比。以下是论文的一些摘录:
1. Xen是一种x86VM monitor,允许多个商业操作系统在不牺牲性能和功能的前提下,以一种安全并且资源可控的方式来共享常规的硬件。本文中Xen设计的目标是在现代服务器上支持100台VM同时在线。 2. 要使一台物理机器支持多个OS的并发执行,面临着如下几个挑战(或目标):(S1)- VM之间相互隔离:一个VM的执行不应该影响到其他VM的性能
- 支持不同类型的OS:写这篇论文时,Xen支持XenoLinux,对Windows XP和NetBSD的支持正在研发中
- 虚拟化带来的性能开销要足够小
3. Xen没有采用full virtualization,而是采用了paravirtualization方式。这种方式要求对guest OS进行一些修改,但是不要求对application binary interface(ABI)进行修改,因此也不需要对guest applications进行改动。(S2)
4. 本文中对几个概念的解释 (S2) guest OS: one of the OSes that Xen can host. domain: a running VM within which a guest OS executes. guest OS与domain的关系类似于program与process的关系。 5. (S2.1)介绍了针对x86的VM interface,分成三个类别:memory management, CPU和device I/O. 其中virtualizing memory是准虚拟化一个体系结构中最困难的部分,涉及到TLB, segmentation等问题。 下图为概览:6. (S3)介绍了Xen的详细设计。这篇论文目前不准备逐字精读,仅了解个大概,下面是第三章的章节结构:
3.1 Control Transfer: Hypercalls and Events
3.2 Data Transfer: I/O Rings 3.3 Subsystem Virtualization 3.3.1 CPU sheduling 3.3.2 TIme and timers 3.3.3 Virtual address translation 3.3.4 Physical memory 3.3.5 Network 3.3.6 Disk 3.4 BUiding a New Domain
7. (S4)中介绍了针对Xen的性能评估,相比ESX Server, “Xen significantly outpuerforms ESX Server” 。
(S4.1)中进行了Relative Performance,XenoLinux作为Xen的实现,比较的对象是Linux, VMware workstation 3.2和User-Mode Linux (UML),比较的基准程序有:SPEC CPU suite、Linux kernel building、Open Source Database Benchmark suite(OSDB)、dbench、SPEC WEB99。实验的结果表明,Xen与原生Linux系统的性能最为接近。
(S4.2)中进行了一些列的实验对OS特定的子系统分别进行了度量;(S4.3)中比较了将多个应用运行于各自的guest OS与运行在同一个原生Linux时的性能;(S4.4)展示了Xen的performance isolation情况;(S4.5)则调研了Xen的scalability。
8. Xen与 Xen是在一台物理机器上创建出多台VMs,而XenoServer “looks beyond individual machines and is buiding the control systems necessary to support an Internet-scale computing infrastructure”。