虚拟化技术系列--虚拟机管理平台及软件结构

前一篇基础概念篇,主要介绍虚拟化技术的发展历程、基础概念、关键指标等几个方面,

本篇开始着重于虚拟化平台Hypervisor本身相关的技术介绍。

>虚拟化软件结构层次

下图是传统非虚拟化软件结构层次与虚拟化软件结构层次的对比,撇开虚拟化环境下同一物理节点上可运行多个OS的差别,最大的差别就是虚拟化环境下,在OS和硬件之间多了一层Hypervisor。Hypervisor即是所谓的虚拟机管理平台,有些文档也称为VMM(virtual machine monitor),但本质上是一个东西。还有一些平台,习惯于将Hypervisor称为Host OS,相应的虚拟机OS则成为Guest OS。这些是最基础的名词概念。

        虚拟化技术系列--虚拟机管理平台及软件结构_第1张图片

     >虚拟化平台分类

    在虚拟化的环境下,对操作系统来说,最大的差别在于无法直接访问硬件(当然有例外,后文会逐个展开并提及),所有硬件资源都是由Hypervisor管理并分配给各个OS的。对OS来说,这一点变化是比较关键的。在OS内核里,涉及到大量跟具体CPU架构、外设器件相关的代码(汇编指令、驱动代码等),当把一个OS从原始的硬件环境移植到Hypervisor提供的虚拟硬件环境后,这个OS还能运行吗?答案当然是肯定的,但解决方案有多种。而根据解决方案的不同,Hypervisor平台又被分为两类:半虚拟化平台和全虚拟化平台。

顾名思义,全虚拟化平台指的是,当OS从特殊硬件移植到Hypervisor上之后,不需要修改内核代码即可运行;而半虚拟化平台,OS被到Hypervisor之后,需要对OS内核代码进行一定程度的适配修改方可运行。从可移植性来看,全虚拟化平台显然更佳,但凡事都是有代价的。在介绍全虚拟化平台如何做到不需修改OS代码的相关技术之前,需要指出的一点是,原始的全虚拟化平台是建立在牺牲性能的前提下的。而半虚拟化平台虽然增大了工作量,在性能上却能做得更好。那么有没有办法将这两者的优点结合起来呢?既做到不修改OS代码且仍然保证系统性能。硬件辅助虚拟化技术比较好地完成了该任务。

硬件辅助虚拟化技术后文会有专门的章节详细介绍。x86处理器从05年的VT-X技术开始支持硬件辅助虚拟化,目前已经全面扩张到指令集、内存、中断、DMA、网卡、cache、总线带宽等各个角落,VT-X/D/C系列技术,已经可以提供一个比较好的硬件辅助虚拟化解决方案,使得全虚拟化平台也可获得较好的性能体验;ARM处理器虽然聚焦在暂时不需要虚拟化技术的终端应用上,但在ARM发布针对低功耗服务器的V8版本前的cortex A15平台上,也提供了一定的硬件辅助虚拟化技术,包括Hyper模式、SMMU、GICv2等。时至今日,严格区分半虚拟化与全虚拟化的平台已经基本上不存在,大多数Hypervisor都同时支持全虚拟化和半虚拟化,而软件上存在的缺陷和障碍则交由硬件辅助虚拟化技术来逐步解决。

>虚拟化主流平台

      当前业界占最大市场份额的虚拟化平台是VMware,一度占据80%的市场;最近几年微软发力中小企业解决方案,

以更低的价格也抢占了不少市场份额,目前在Gartner的魔力象限中已经赶超Citrix的XEN,仅次于VMware。XEN的商业发行者Citrix市场份额油一定的下滑,但依然位于leader阵营内。剩下的追赶着主要有red hat(KVM)、oracle等。

(未找到2013最新的图片,之前曾看到过,跟11年的差不多,因此以11年是魔力象限图来说明市场份额。)

接下来对一下几个较有代表性的虚拟化平台进行简单的介绍:

VMware:是x86服务器虚拟化市场的绝对王者。

VMware起步于20世纪末,由一个类POSIX的内核发展而来。2004年EMC收购了VMware。

VMware的核心产品为VMware ESX,并围绕ESX提供了一系列增强工具及服务,提出了数据中

心虚拟化的全套解决方案VMware vSphere,包括VMware infrastructure,vCenter server, 

Capacity planer,data recovery等,其中insrastructure包含ESX、ESXi、VMFS、Virtual SMP、

DRS、VMotion、HA等。此外VMware还提供了虚拟桌面产品和辅助工具产品。随着SDN的持续

升温,2012年VMware收购了nicira,不惜跟曾经的盟友思科闹翻开发发展网络虚拟化技术。需

要指出的是,VMware是闭源的商业解决方案。

XEN:XEN是一款开源的Hypervisor,最早是在剑桥大学开发的,XEN起源于2003年SOSP

的论文XEN and the art of virtualization。最早发展XEN的商业公司是XENSource,得到了XEN开

源社区的帮助。2007年citrix收购了XENSource公司,并进入服务器虚拟化市场。Citrix收购后,将

开源社区与商业发型进行了分割,发布了xenserver的服务器虚拟化产品。目前虽然后期之秀KVM

携开源社区的威势快速追赶,但至少当前市场上还是XEN领先。当然,留给XEN的时间应该不多了。

KVM:全称是kernel based virtual machine,起源于Linux内核,目前red hat和社区是KVM的主要

推动力。KVM出现的时间是最晚的,其出身跟Linus的务实哲学也是相当吻合的:先有产品,逐步优化。

刚刚发布时的KVM在技术上相当稚嫩,在XEN等老大哥面前一直一提。但在开源社区的帮助下,KVM

逐渐赶了上来,目前在技术层面上,两者已经基本没有什么差别了。当然在商业成功上,KVM还有一

段路要走,SDN及NFV掀起的网络虚拟化浪潮,或许是KVM走向成功的一个契机。


上述三个虚拟化平台,包含了目前的王者,曾经的辉煌者,以及有可能是将来的王者;开放程度上,

也同时覆盖了闭源、开源两种形态;技术方案上,三者的差别也各有千秋;因此个人认为研究虚拟

化技术,基本上无需脱离这三者的范畴。


本系列后续的文章,基本以KVM为主,参考部分XEN的技术,VMware由于其封闭性,无法获得更

多的资料,将较少提及。


你可能感兴趣的:(虚拟化)