IaaS关键实现技术之服务器虚拟化

云计算 虚拟化 IaaS
服务器虚拟化技术是指能够在一台物理服务器上运行多台虚拟服务器的技术,并且上述虚拟服务器在用户、应用软件甚至操作系统看来,几乎与物理服务器没有区别,用户可以在虚拟服务器上灵活地安装任何软件。除此以外,服务器虚拟化技术还应该确保上述多个虚拟服务器之间的数据是隔离的,虚拟服务器对资源的占用是可控的。

服务器虚拟化概述

在服务器虚拟化技术中,被虚拟出来的服务器称为虚拟机(Virtual Machine,VM)。运行在虚拟机里的操作系统称为客户操作系统,即Guest OS。负责管理虚拟机的软件称为虚拟机管理器,缩写为VMM,也称为Hypervisor。

服务器虚拟化通常有两种架构,分别是寄生架构(Hosted)与裸金属架构(Bare-metal)。

(1)寄生架构。

一般而言,在使用计算机之前,首先要安装操作系统,该操作系统称为宿主操作系统,即Host OS。如果采用虚拟机技术,则需要在操作系统之上再安装一个VMM,然后利用这个VMM创建并管理虚拟机。这种后装模式称为寄生架构,因为VMM看起来像是“寄生”在操作系统上的。例如,Oracle公司的VirtualBox就是一种寄生架构。

(2)裸金属架构。

顾名思义,裸金属架构是指将VMM直接安装在物理服务器之上而无须先安装操作系统的预装模式。在安装了VMM之后,再在VMM上安装其他操作系统(如Windows、Linux等)。由于VMM“看起来”是直接安装在物理计算机上的,所以称为裸金属架构,例如KVM、Xen、VMware ESX。

目前,普遍认为裸金属架构的性能要比寄生架构高。很多资料都宣传说,裸金属架构是直接运行在物理硬件之上的,无须通过Host OS,所以性能更高。

图3-1为Xen的工作流程,其中有3个Domain。一开始,很多人会将Domain误认为是CPU的一种特殊状态,这是因为在很多文档里会用一些比较模糊的措辞,例如“此时,系统会进入Domain 0状态”,从而让人产生误解。其实,Domain在虚拟化技术里表示的不是CPU的状态,而是“域”,更通俗地说,就是一台虚拟机。

虽然从图3-1上看,Xen是运行在硬件之上的,但实际上,Xen严重依赖于一个特殊的Domain,那就是Domain 0。其实,Xen在发布其裸金属版本的时候,里面就包含了一个裁剪过的Linux内核,它为Xen提供了除CPU调度和内存管理之外的所有功能,包括硬件驱动、I/O、网络协议、文件系统、进程通信等所有其他操作系统所做的事情。这个Linux内核就运行在Domain 0 里面。这就是为什么当启动裸金属架构版的Xen时会自动启动Domain 0。因为没有这个Linux内核,Xen将无法工作。事实上,基于裸金属架构的VMM中往往包含了一个经过修改的Host OS。



图3-1 Xen的工作流程

因此,裸金属架构其实并不说明VMM能够抛开Host OS在硬件之上运行。如果我们把图3-1中的Domain 0放到与Xen Hypervisor平级的位置,或者放到Xen Hypervisor下面,Domain 0就与寄生架构没有区别了,如图3-2所示。而事实上,即使是寄生架构的产品,例如VirtualBox,在Host OS里面也会有一个运行于核心的驱动程序,它可以直接与物理设备打交道。
如果仔细看图3-2,会发现Domain 1和Domain 2与Domain 0之间还有一些通信。这与传统的寄生架构一样,Guest OS有时也是需要访问Host OS的。所以,裸金属架构本身不会给Guest OS的性能带来任何提升。

从目前的趋势来看,虚拟化将成为操作系统本身功能的一部分。例如,KVM就是Linux标准内核的一个模块,微软的Windows 2008也自带Hyper-V。

 

图3-2 寄生架构

 

责任编辑:王勇 来源: 51cto
相关推荐

2011-04-21 09:20:28

IaaS网络虚拟化

2013-04-28 14:34:02

服务器虚拟化

2009-02-17 17:42:57

服务器虚拟化虚拟化VMware

2012-05-16 11:52:23

虚拟化

2019-03-06 11:16:16

服务器虚拟化内存

2013-05-02 10:03:12

服务器虚拟化

2013-08-23 10:32:41

Linux服务器虚拟化

2013-04-23 11:37:07

技术解析服务器虚拟化

2011-07-05 11:06:44

服务器虚拟化

2011-07-05 10:37:01

服务器虚拟化

2009-09-07 11:31:36

虚拟化hyperv服务器整合

2013-03-27 10:06:02

服务器虚拟化

2013-04-17 10:54:32

服务器虚拟化技术价值

2013-04-18 09:45:43

服务器虚拟化云计算

2010-12-06 14:37:27

服务器虚拟化

2021-12-21 15:37:46

NFV虚拟化IO虚拟化

2012-07-06 09:39:37

虚拟化

2012-09-29 09:44:19

虚拟化

2017-10-18 09:54:38

2009-02-25 16:57:23

点赞
收藏

51CTO技术栈公众号