虚拟化技术层次分类
–硬分区
–Hypervisor层虚拟化
1. RISC
2. X86
–操作系统层虚拟化
1. RISC
2. X86
–应用层虚拟化
1. 应用交付
2. 流式应用
硬分区
–硬分区是个俗称,或者也可以叫物理分区,简而言之就是将拥有多块CPU板多块内存板多块IO板的一台大机器通过电气分割成多个小机器,每个小机器都可以安装自己的操作系统
–硬分区的代表作有HP的nPar和SUN的DSD
–优点:完整的电气隔绝,互不干扰
–缺点:太多,资源细粒度太大、无法共享资源、无法在线调整资源等等
–总结:硬分区个人甚至认为不应该算虚拟化,从技术角度讲过时了,实用价值太小,本文只是简单提下用来和Hypervisor那种逻辑分区做对比用
Hypervisor层虚拟化
定义
–IBM如何描述其POWER Hypervsior
POWER Hypervisor™ 技术作为系统固件的一部分与所有 IBM® System i® 型号、IBM System p® 服务器和某些 IBM BladeCenter® 刀片服务器集成在一起。
系统管理程序对系统虚拟化进行协调及管理,包括创建逻辑分区和在多个操作环境间移动资源。
–VMware如何描述其ESX Hypervisor
A bare-metal hypervisor system does not require an operating system. The hypervisor is the operating system.
通过两大企业级应用最广泛的Hypervisor描述可看出,实际上Hypervisor是处在硬件之上操作系统之下的一个层级,Hypervisor本质上是软件,
但通常被固化在硬件里面(其实也就是firmware)或打包(伪装)一个特殊操作系统来安装在主机上
在很多讲解虚拟化的概念里,也有一个VMM的东西,全称Virtual Machine Monitor,其实这个就是Hypervisor
所有底层的硬件资源被Hypervisor所管理,Hypervisor上层虚拟出来的多个虚拟机的计算和IO资源需要Hypervisor来分配协调,当然了在具体的实现上各家自有独门技术实现
分类
–RISC平台的Hypervisor及虚拟化技术
1. IBM Power Hypervisor及PowerVM
2. SUN Ldom (Oracle VM一部分)
3. HP vPar + Integrity VM
–X86平台的Hypervisor及虚拟化技术
1. VMware ESXi/ESX及vSphere4
2. XEN(Citrix XenServer/Oracle VM base XEN)
3. RedHat KVM
4. MicroSoft Hyper-V
5. Parallels等等…
IBM PowerVM简介
–PowerVM的核心就是Power Hypervisor
–PowerVM 是在基于 IBM POWER 处理器的硬件平台上提供的具有行业领先水平的虚拟化技术家族。
它是 IBM Power System 虚拟化技术全新和统一的品牌(逻辑分区,微分区,Hypervisor,虚拟 I/O 服务器,APV,PowerVM Lx86,Live Partition Mobility)。
SUN LDOM简介
–LDoms是Sun新的服务器虚拟化技术,可以基于服务器物理资源,如CPU、内存、I/O、和存储等资源,创建服务器分区,
该分区叫做virtual domain虚拟域,或称logical domain逻辑域,每个LDom可以运行一个单独的操作系统。
–由于SUN被Oracle收购,SUN所有虚拟化技术及Oracle自己的、收购其他的虚拟化技术现在通称Oracle VM
HP vPar + Integrity VM简介
–HP 提供两种产品来完成软件分区:vPar — 虚拟分区;Integrity VM — Integrity Virtual Machines。使用这两种中的任一种产品,可以在处理核心级别中对服务器分区。
Integrity VM 甚至允许亚核心级别分区。
–软件分区的重要特性包括:在处理核心级别(对于 vPar)或通过时间片(对于 Integrity VM)实现;提供功能隔离而不是电气隔离;如果使用虚拟分区产品实现,
分区称为vPar;如果使用 Integrity Virtual Machines 产品实现,
分区称为guest 虚拟机操作系统;可以使用软件分区对 npartition 进行进一步的细分;vPar 只支持 HP-UX 实例。
VMware ESXi/ESX简介及区别
–VMware ESX 和 VMware ESXi 是“裸机”管理程序,也就是说,它们直接安装在物理服务器之上,并将其划分成可同时运行的多个虚拟机,
这些虚拟机共享底层服务器的物理资源。每个虚拟机都代表着一个完整的系统,具有处理器、内存、网络连接、存储和 BIOS,
并且可运行未经修改的操作系统和应用程序。
–ESXi/ESX经常让人迷惑,二者实际区别是ESXi是vmkernel加一个类似BIOS的精简界面,
ESX则是vmkernel加了一个完整的定制RHEL OS,两者在虚拟化功能上差别几乎可忽略不计
ESXi/ESX和vSphere的关系
–VMware自推出vSphere4后搞出了一堆概念,让人提前感受了“云/晕”
–其实vSphere4是以ESX或ESXi为核心,打包了一系列高级虚拟化技术的产品,按这个概念也包括了VC,
因为VC才能配置这些高级功能,包括:Vmotion、StorageVmotion、HA、DRS等等
–对比IBM,vSphere4和ESXi/ESX的关系如同PowerVM和Power Hypervisor之间的关系
–vSphere和Power VM都是Solution名称
X86平台其他Hypervisor简介
–在X86市场上除了VMware一枝独秀外,还存在众多觊觎者,包括Citrix的XenServer,MicroSoft的Hyper-V,
以及同样基于XEN的Oracle VM(注)和Novell的SLES(其实是Novell企业Linux操作系统内置了Xen),
而企业Linux领袖厂商RedHat早先和Novell一样走RHEL上集成Xen路线,后来不想受制于人,通过收购现在主推RHEV/KVM
–以上产品除了RedHat的RHEV/KVM没试用,其他全部简单测试过,事实证明他们离VMware差的还太远,
远不足大中型企业数据中心虚拟化应用,所以不做详谈
为什么OS厂商那么热心这块蛋糕?
明面上,虚拟化这块蛋糕在VMware推动下越做越大,2010年估计VMware年销售额22-25亿$,作为一个纯软件及服务公司,
这个数字是很强大的,而调查公司数据说明还只有不到20%的服务器被虚拟化,所以这个市场未来还会更大,那么微软、红帽觊觎这个市场也理所当然
–但个人认为还有一个更重要的原因就是:以VMware为代表的Hypervisor技术动了传统X86 OS厂商的奶酪;
在几十年的IT长河中,OS一直可以形容为航空母舰,而软件只能算上面的战斗机,Hypervisor普及到X86就意味着一切改变了,
变得Hypervisor是航母,OS反而是战斗机了
–虚拟化是云计算基础…
这种情况下,传统X86 OS厂商害怕了,事实上VMware自己也宣称传统OS不重要了,想想如果有一天很多应用软件直接跑在Hypervisor上,
那OS就尴尬了,于是乎MS/RedHat/Novell都出手了,且做法类似,都把虚拟化功能变成了操作系统上的一个功能,
推出了带有虚拟化功能的操作系统胖虚拟化产品,所以目前还没看到OS厂商推出一个类似ESXi的产品,并非做不到而是不愿做
–但这个问题在Unix OS上反倒不明显,因为Unix/小机上的Hypervisor技术本来都被三大厂商自己把持
X86 Hypervisor再细分
–全虚拟化
1. VMware ESXi/ESX
2. RedHat KVM
–半虚拟化(或称“准虚拟化”)
1. Citrix XEN
2. Oracle VM(Oracle VM一部分,详见备注解释)
–主机操作系统之上的Hypervisor
1. VMware Server/Workstation
2. Oracle/SUN VirtualBox (Oracle VM一部分)
3. Parallels Desktop 等等…
X86 Hypervisor全虚拟化概念
–在X86 Hypervisor全虚拟化环境里,Hypervisor充当一切硬件资源的管理者,并将其虚拟成各种设备提供给VM,
对于VM虚拟机来说,底层对它是透明的,VM本身也并不知道自己是VM,所有CPU/内存及I/O设备都是来自Hypervisor的虚拟。
这种产品的典型代表就是VMware了
–该技术核心理念在于虚拟机OS上的敏感和特权指令(这些指令不支持虚拟化)借助Hypervisor的翻译来访问硬件
全虚拟化图解
X86 OS的设计含有4个Ring保护机制,OS内核运行在Ring0,应用运行在Ring3,而服务之类运行在Ring1/2上,全虚拟化架构中,Ring0是Hypervisor,
虚拟机OS内核在Ring1,全虚拟化中,虚拟机OS内核一些不支持虚拟化的指令可使用Ring0的Hypervisor翻译执行并访问硬件,
早期的技术难题就是X86 OS如果不放在Ring0就无法工作,所以VMware的Hypervisor通过翻译绕开了这一技术瓶颈,实现了全虚拟化
X86 Hypervisor半(准/超)虚拟化概念
–半虚拟化,Paravirtualization,又称准虚拟化或超虚拟化
–通俗的说半虚拟化相对于全虚拟化那种透明模式来说,可以修改VM虚拟机内核然后通过一些特权命令利用Hypervisor父分区直接(无须翻译)访问物理硬件资源,
仅从理论上看,似乎半虚拟化应该比全虚拟化更好,但实际产品优劣并非仅取决于这一点,半虚拟化的代表就是开源的Xen了,后来Citrix看到虚拟化火热后迅速收购了XenSource公司
–半虚拟化由于需要修改VM操作系统的内核,所以没法支持windows这样闭源OS,于是后来Xen也利用CPU虚拟化技术开始支持全虚拟化了
和前面的全虚拟化对比,半虚拟化中,对这些X86 OS的内核做了修改,让它可以支持虚拟化,可以运行在Ring0等级,再利用Hypervisor去直接访问硬件,
仅从这一方面来说,理论上比VMware 的全虚拟化更有效率;但这种情况下有一个很大的局限性,
虚拟机OS必须可修改内核,这对闭源OS比如Windows是无法想象的,所以基于Xen的产品很长一段时间只能支持Linux或*BSD,直到Intel的VT-x出现
主机OS之上的Hypervisor
–VMware似乎并不想把这种产品定义为Hypervisor,但wiki上将这种类型的称为主机上的Hypervisor,在这里没必要对这个较劲,姑且也算在内
–此类Hypervisor最大的特点就是必须安装在OS之上(注意:这和后面提到的操作系统虚拟化是两码事),一般安装在windows和linux之上,
比如有名的vmware server/workstation产品,微软的virtual server/pc,以及SUN曾经收购的VirtualBox(目前已是Oracle旗下)等
–此类更像一个应用软件,由于其依赖OS可靠性以及多了层虚拟转化,此类Hypervisor性能和可靠性均无法同企业级Hypervisor(如ESX)可比,
大多用于测试,本文不做详解
主机OS之上的Hypervisor图解