服务器虚拟化2种架构,服务器虚拟化常用架构详解

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

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

(1)寄生架构。

一般而言,在使用计算机之前,首先要安装操作系统,该操作系统称为宿主操作系统,即Host OS。如果采用虚拟机技术,则需要在操作系统之上再安装一个VMM,然后利用这个VMM创建并管理

(2)裸金属架构。

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

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

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

服务器虚拟化2种架构,服务器虚拟化常用架构详解_第1张图片

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

因此,裸金属架构其实并不说明VMM能够抛开Host OS在硬件之上运行。如果我们把图1中的Domain 0放到与Xen Hypervisor平级的位置,或者放到Xen Hypervisor下面,Domain 0就与寄生架构没有区别了,如图3-2所示。而事实上,即使是寄生架构的产品,例如VirtualBox,在Host OS里面也会有一个运行于核心的驱动程序,它可以直接与物理设备打交道。

服务器虚拟化2种架构,服务器虚拟化常用架构详解_第2张图片

如果仔细看图2,会发现Domain 1和Domain 2与Domain 0之间还有一些通信。这与传统的寄生架构一样,Guest OS有时也是需要访问Host OS的。所以,裸金属架构本身不会给Guest OS的性能带来任何提升。

从目前的趋势来看,虚拟化将成为操作系统本身功能的一部分。例如,

你可能感兴趣的:(服务器虚拟化2种架构)