虚拟化技术概要之基础

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




1. 虚拟化

虚拟化 (Virtualization) 是资源的逻辑表示,理论上不受物理限制的约束。
虚拟化技术的实现形式是在系统中加入一个虚拟化层,将下层的资源抽象成另一形式的资源,提供给上层使用。
本质上,虚拟化就是由位于下层的软件模块,通过向上一层软件模块提供一个与它原先所期待的运行环境完全一致的接口的方法,抽象出一个虚拟的软件或硬件接口,使得上层软件可以直接运行在虚拟环境上。
通过空间上的分割、时间上的分时以及模拟,虚拟化可将一份资源抽象成多份,亦可将多份资源抽象成一份。

虚拟化中的两个重要的定语名词:宿主 (Host) 和客户 (Guest)
Host 用在物理资源前,Guest 则用于虚拟出来的资源前。如将一个物理机器虚拟成多个虚拟机器,则称物理机为宿主机 (Host Machine),运行其上的 OS 为 Host OS;称多个虚拟机为 Guest Machine,运行其上的 OS 为 Guest OS

2. 虚拟机

虚拟机 (Virtual Machine) 是由虚拟化层提供的高效、独立的虚拟计算机系统,其皆拥有自己的虚拟硬件(CPU,内存,I/O 设备)。通过虚拟化层的模拟,虚拟机在上层软件看来,其就是一个真实的机器。这个虚拟化层一般称为虚拟机监控器 (Virtual Machine Monitor, VMM)

1974 年,Popek 和 Goldberg 在论文 "Formal Requirements for Virtualizable Third Generation Architectures" 中将 VM 定义为物理机的一种高效、隔离的复制,且指出 VM 的三个特征:

I. 同质 (Equivalence)

即 VM 的运行环境和物理机的环境在本质上是相同的,表现上可以有一些差异。如 CPU 的 ISA 必须一致,CPU core 的个数可以不同。

II. 高效 (Efficiency)

即 VM 的性能必须接近物理机。因此,常见的模拟器 (boches, simics …) 就不能称为 VM。为达此目的,软件在 VM 上运行时,大多数指令要直接在硬件上执行,只有少量指令需要 VMM 的模拟或处理。

III. 资源受控 (Resource control)

即 VMM 对物理机的所有资源有绝对的控制力

3. Full virtualization and Paravirtualization

Full virtualization: 一般翻译成全虚拟化或完全虚拟化,即所抽象的 VM 具有完全的物理机特性,OS 在其上运行不需要任何修改。典型的有 VMWare, Virtualbox, Virtual PC, KVM-x86 …)

Paravirtualization: 需 OS 协助的虚拟化,在其上运行的 OS 需要修改。一般翻译成类虚拟化,也有称作半虚拟化的。起初采用主要是为了解决 x86 体系结构上完全虚拟化的困难(没有 Intel VT / AMD-V 硬件虚拟化支持,且不屑于动态扫描指令修补之方法的性能),后来则主要是为了提高虚拟化的效率。典型的有 Xen,VirtualLogix VLX for Mobile Handsets,WindRiver Hypervisor,Topaz (Freescale Embedded Hypervisor),SUN Logical Domain 等。下表是市面上流行的虚拟化技术的一个概况:

 

 

 

[参考文献]

[1]《系统虚拟化 — 原理与实现》
[2] Formal Requirements for Virtualizable Third Generation Architectures
[3] VIRTUALIZATION WITH LOGICAL DOMAINS AND SUN COOLTHREADS SERVERS
[4] Virtuallogix at a Glance
[5] KVM White Paper
[6] Freescale’s Embedded Hypervisor for QorIQ™P4 Series Communications Platform
[7] Xen and the Art of Virtualization

 

 

(1个打分, 平均:5.00 / 5)

雁过留声

“虚拟化技术概要之基础”有13个回复

  1. 邓侃 于 2010-04-08 7:13 上午

    虚拟化是目前十分重要的计算机技术,楼主是否能把此文作为一个序言,写个系列,详细介绍一下虚拟化技术?

  2. 陈怀临 于 2010-04-08 7:18 上午

    同意,现在虚拟化技术,云计算,铺天盖地的要上马。希望更多的这方面的技术文章和产业分析的文章。。。

  3. comcat 于 2010-04-08 7:52 上午

    正有此意。

    可惜排版弄了半天就弄出这种效果,编辑时看到的,和最终显示出来的差别也太大了

  4. woodoor 于 2010-04-08 8:18 上午

    感谢普及,希望就不同厂商实现区别和发前展方向做点宣讲。

  5. 陈怀临 于 2010-04-08 8:21 上午

    提交之前,要用“Preview”看一下,就知道效果了。我抽时间帮你调整一下版面。我反正已经沦落为首密了。

    对WP的微词很多,有没有什么更好的?但要能够平稳过渡的。另外,我们不会做成BBS。还是希望是一个科技媒体的概念和实体。。。

  6. John 于 2010-04-08 6:42 下午

    呵呵.不错.comcat也开始给 弯曲写文章了. 给我们讲讲x河研发的hypersivor吧.

  7. comcat 于 2010-04-08 6:56 下午

    感谢首席,总算调得让自己满意了些。可以考虑修改 WP :-D

    TO: John

    其实很早就想把一些技术文章整理过来,只是自己太懒,瞎忙活。

  8. ikewu83 于 2010-04-08 7:21 下午

    TO comcat:
    我看了此文,觉得不错!很巧的是,我正好也准备发个关于系统虚拟化的系列。希望我们能一起把系统虚拟化的概念更好地传播弯曲的广大群众!

  9. 邓侃 于 2010-04-08 7:28 下午

    ikewu83:好极了。

    等着读你和comcat的大作。

    同一个主题,通过两个作者的视野,互为参照,应该非常有意思。

  10. ikewu83 于 2010-04-08 7:30 下午

    TO 邓侃:
    邓哥,听老韩说,你是大牛级别的人物,希望有机会能多向你学习学习!

  11. 邓侃 于 2010-04-08 10:31 下午

    谈不上向谁学习,大家交流交流,共同提高。

  12. cracked 于 2010-04-08 10:32 下午

    发篇文章 让首席做秘书排版 这种感觉真好:)

  13. zhaoboq 于 2010-10-07 1:38 上午

    windriver和VLX是半虚拟化技术么?感觉风河上面的vxworks和WR Linux没有做特殊的改动;