Back to CloudComputing,

See Also Amazon Machine Images, VirtualBox, VPS: 虚拟私有服务器

Virtualization

在计算机技术中,虚拟化指的是创建虚拟物的行为。一般所指的虚拟化资源以计算能力和数据存储为主,包括但不限于计算机硬件平台、操作系统(OS)、存储设备或计算机网络资源。

虚拟化是一种资源管理技术,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些资源。这些虚拟出来的资源是不受现有架设方式、地域或物理配置所限制的。

虚拟化始于1960年代大型机时代,指为不同的应用程序从逻辑上划分主机的资源。从那时起,这个词的意义也就扩大了。

1. Hardware Virtualization

所谓硬件虚拟化(又称作平台虚拟化),指的是创建出来的虚拟机(virtual machine),在其中运行的操作系统就像是在真正计算机上的操作系统一样。这是用软件把虚拟机与真实的底层硬件进行了分离。例如,一台运行微软Windows的主机上面的虚拟机,里面可以安装一个Ubuntu,电脑看起来就像是安装的Linux操作系统似的。

在硬件虚拟化中,Host Machine是虚拟化发生的地方,而Guest Machine就是虚拟机(Virtual Machine)。Host和Guest是用来区分软件是运行在物理机还是运行在虚拟机中。用来在主机硬件上创建虚拟机的软件或固件称为Hypervisor或Virtual Machine Manager。

1.1. 完全虚拟化(Full Virtualization)

在完全虚拟化(Full Virtualization)中,虚拟机模拟一个足够强大的硬件使客户机操作系统独立运行。敏感指令在操作系统和硬件之间被捕捉处理,客户操作系统无需修改,所有软件都能在虚拟机中运行。

这种方案最早在1966年被虚拟机家族的先锋IBM CP-40与CP-67使用。支持完全虚拟化的虚拟机软件包括Parallels Workstation, Parallels Desktop for Mac, VirtualBox, Virtual Iron, Oracle VM, Virtual PC, Virtual Server, Hyper-V,VMware Workstation, VMware Server (formerly GSX Server), QEMU, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro, 以及 Egenera vBlade technology。

1.2. 半虚拟化(Partial Virtualization)

在部分虚拟化(Partial Virtualization)中(包括地址空间虚拟化),虚拟机模拟数个(但不是全部)底层硬件环境,特别是地址空间。这样的环境支持资源共享和线程独立,但是不允许独立的客户机操作系统。虽然这并不被视为一般意义上的虚拟机,但这在历史上是非常重要的一页。这项技术曾被用于CTSS(试验性的IBM M44/44X),以及争议性的系统比如MVS及Commodore 64(两个都是“task switch”程序)。

在PVM中,虽然硬件环境不是模拟出来的,但Guest OS也还是运行在独立的领域内,就像是在一个单独的系统上运行。为了能再这个环境中运行,Guest系统和应用需要定制。

1.3. 在平行虚拟化(Paravirtualization)

在平行虚拟化(Paravirtualization)中,虚拟机不需要模拟硬件,而是提供一个特殊的API只能被特制的客户机操作系统使用。

平行虚拟化主要应用在早期的大型机上。

2. Desktop virtualization

Desktop virtualization

Desktop virtualization is the concept of separating the logical desktop from the physical machine.

3. Other Types

3.1. 硬件辅助(Hardware-assisted)虚拟化

硬件辅助(Hardware-assisted)虚拟化是一种提升整体销量的虚拟化方式。 它包括:CPU支持的硬件虚拟化,和其他硬件组件,以帮助改善虚机环境的性能。

http://en.wikipedia.org/wiki/X86_virtualization

3.2. 操作系统层虚拟化

在操作系统层虚拟化(OS-level virtualization)中,独立主机被虚拟化在操作系统层中,这使得多个独立且安全虚拟化的服务器运行在一台计算机上。客户操作系统环境与宿主服务器分享同一个操作系统,例如,相同的系统内核被用来创建客户机环境。程序运行在被视为独立系统的客户机环境中。这种方式由FreeBSD jails首创;类似的例子包括Solaris Containers, OpenVZ, Linux-VServer, AIX Workload Partitions, Parallels Virtuozzo Containers, 以及 iCore Virtual Accounts。

3.3. 软件虚拟化

3.4. Memory

3.5. Storage

3.6. Data

4. Nested virtualization

嵌入式虚拟化是指在虚拟机中虚拟化的能力。

5. 虚拟化技术

5.1. Hypervisor Classification

Hypervisor,或者virtual machine monitor(VMM)是指能用来建立与执行虚拟机器的软件,固件或是硬件。

拥有Hypervisor,能被用来执行一个或多个虚拟机器,这样的电脑被定义为是一台主体机器(host machine)。在上面执行的虚拟机器,则称为客体机器(guest machine)。hypervisor可以用一个客体操作系统(guest operating systems)的外貌出现,提供虚拟的作业平台,负责管理其他客体操作系统的运作。在它之上运作的多个操作系统,共同分享了虚拟化之后的硬件资源。

在他们1974年的文章“虚拟化第三代架构的正式要求”Gerald J. Popek和Robert P. Goldberg分类两种类型的虚拟机管理程序:

hypervisor.png

6. Reference


CategorySystem

MainWiki: Virtualization (last edited 2013-03-29 19:30:43 by twotwo)