浅谈虚拟化技术_第1页
浅谈虚拟化技术_第2页
浅谈虚拟化技术_第3页
浅谈虚拟化技术_第4页
浅谈虚拟化技术_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浅谈虚拟化技术虚拟化技术层次分类–硬分区Hypervisor层虚拟化RISC2.

X86–

操作系统层虚拟化1.

RISC2.

X86–

应用层虚拟化1.应用交付2.流式应用2硬分区–硬分区是个俗称,或者也可以叫物理分区,简而言之就是将拥有多块CPU板多块内存板多块IO板的一台大机器通过电气分割成多个小机器,每个小机器都可以安装自己的操作系统–硬分区的代表作有HP的nPar和SUN的DSD–优点:完整的电气隔绝,互不干扰–缺点:太多,资源细粒度太大、无法共享资源、无法在线调整资源等等–总结:硬分区个人甚至认为不应该算虚拟化,从技术角度讲过时了,实用价值太小,本文只是简单提下用来和Hypervisor那种逻辑分区做对比用3Hypervisor层虚拟化–定义–分类–图解4定义–IBM如何描述其POWERHypervsiorPOWERHypervisor™技术作为系统固件的一部分与所有IBM®Systemi®型号、IBMSystemp®服务器和某些IBMBladeCenter®刀片服务器集成在一起。系统管理程序对系统虚拟化进行协调及管理,包括创建逻辑分区和在多个操作环境间移动资源。–VMware如何描述其ESXHypervisorAbare-metalhypervisorsystemdoesnotrequireanoperatingsystem.Thehypervisoristheoperatingsystem.5白话Hypervisor–通过两大企业级应用最广泛的Hypervisor描述可看出,实际上Hypervisor是处在硬件之上操作系统之下的一个层级,Hypervisor本质上是软件,但通常被固化在硬件里面(其实也就是firmware)或打包(伪装)一个特殊操作系统来安装在主机上–在很多讲解虚拟化的概念里,也有一个VMM的东西,全称VirtualMachineMonitor,其实这个就是Hypervisor–所有底层的硬件资源被Hypervisor所管理,Hypervisor上层虚拟出来的多个虚拟机的计算和IO资源需要Hypervisor来分配协调,当然了在具体的实现上各家自有独门技术实现6分类–RISC平台的Hypervisor及虚拟化技术IBM

Power

Hypervisor及PowerVMSUN

Ldom

(Oracle

VM一部分)HP

vPar

+Integrity

VMX86平台的Hypervisor及虚拟化技术VMware

ESXi/ESX及vSphere4XEN(Citrix

XenServer/Oracle

VM

base

XEN)RedHat

KVMMicroSoft

Hyper-VParallels等等…7IBMPowerVM简介PowerVM的核心就是Power

HypervisorPowerVM

是在基于

IBM

POWER

处理器的硬件平台上提供的具有行业领先水平的虚拟化技术家族。它是

IBM

Power

System

虚拟化技术全新和统一的品牌(逻辑分区,微分区,Hypervisor,虚拟

I/O

服务器,APV,PowerVM

Lx86,LivePartition

Mobility)。8图解之IBMPOWERHypervisor9SUNLDOM简介10–LDoms是Sun新的服务器虚拟化技术,可以基于服务器物理资源,如CPU、内存、I/O、和存储等资源,创建服务器分区,该分区叫做virtualdomain虚拟域,或称logicaldomain逻辑域,每个LDom可以运行一个单独的操作系统。–由于SUN被Oracle收购,SUN所有虚拟化技术及Oracle自己的、收购其他的虚拟化技术现在通称OracleVMSUNLDOM图解11HPvPar+IntegrityVM简介–HP提供两种产品来完成软件分区:vPar—虚拟分区;IntegrityVM—IntegrityVirtualMachines。使用这两种中的任一种产品,可以在处理核心级别中对服务器分区。IntegrityVM甚至允许亚核心级别分区。–软件分区的重要特性包括:在处理核心级别(对于vPar)或通过时间片(对于IntegrityVM)实现;提供功能隔离而不是电气隔离;如果使用虚拟分区产品实现,分区称为vPar;如果使用IntegrityVirtualMachines产品实现,分区称为guest虚拟机操作系统;可以使用软件分区对npartition进行进一步的细分;vPar只支持HP-UX实例。12HPvPar+IntegrityVM图解13VMwareESXi/ESX简介及区别–VMwareESX和VMwareESXi是“裸机”管理程序,也就是说,它们直接安装在物理服务器之上,并将其划分成可同时运行的多个虚拟机,这些虚拟机共享底层服务器的物理资源。每个虚拟机都代表着一个完整的系统,具有处理器、内存、网络连接、存储和BIOS,并且可运行未经修改的操作系统和应用程序。–ESXi/ESX经常让人迷惑,二者实际区别是ESXi是vmkernel加一个类似BIOS的精简界面,ESX则是vmkernel加了一个完整的定制RHELOS,两者在虚拟化功能上差别几乎可忽略不计14ESXi/ESX和vSphere的关系–VMware自推出vSphere4后搞出了一堆概念,让人提前感受了“云/晕”–其实vSphere4是以ESX或ESXi为核心,打包了一系列高级虚拟化技术的产品,按这个概念也包括了VC,因为VC才能配置这些高级功能,包括:Vmotion、StorageVmotion、HA、DRS等等对比IBM,vSphere4和ESXi/ESX的关系如同

PowerVM和Power

Hypervisor之间的关系vSphere和Power

VM都是Solution名称15图解之VMwareESXi/ESXHypervisor16X86平台其他Hypervisor简介–在X86市场上除了VMware一枝独秀外,还存在众多觊觎者,包括Citrix的XenServer,MicroSoft的Hyper-V,以及同样基于XEN的OracleVM(注)和Novell的SLES(其实是Novell企业Linux操作系统内置了Xen),而企业Linux领袖厂商RedHat早先和Novell一样走RHEL上集成Xen路线,后来不想受制于人,通过收购现在主推RHEV/KVM–以上产品除了RedHat的RHEV/KVM没试用,其他全部简单测试过,事实证明他们离VMware差的还太远,远不足大中型企业数据中心虚拟化应用,所以不做详谈17思考:为什么OS厂商那么热心这块蛋糕?– 明面上,虚拟化这块蛋糕在VMware推动下越做越大,2010年估计VMware年销售额22-25亿$,作为一个纯软件及服务公司,这个数字是很强大的,而调查公司数据说明还只有不到20%的服务器被虚拟化,所以这个市场未来还会更大,那么微软、红帽觊觎这个市场也理所当然– 但个人认为还有一个更重要的原因就是:以VMware为代表的Hypervisor技术动了传统X86OS厂商的奶酪;在几十年的IT长河中,OS一直可以形容为航空母舰,而软件只能算上面的战斗机,Hypervisor普及到X86就意味着一切改变了,变得Hypervisor是航母,OS反而是战斗机了– 虚拟化是云计算基础…18续上…–这种情况下,传统X86OS厂商害怕了,事实上VMware自己也宣称传统OS不重要了,想想如果有一天很多应用软件直接跑在Hypervisor上,那OS就尴尬了,于是乎MS/RedHat/Novell都出手了,且做法类似,都把虚拟化功能变成了操作系统上的一个功能,推出了带有虚拟化功能的操作系统胖虚拟化产品,所以目前还没看到OS厂商推出一个类似ESXi的产品,并非做不到而是不愿做–但这个问题在UnixOS上反倒不明显,因为Unix/小机上的Hypervisor技术本来都被三大厂商自己把持19Weblogic的VLS-VE可直接运行在Hypervisor上上图和左图可看出VLS-VE是直接跑在Hypervisor之上的,也可对比看出和跑在物理机或虚拟机(guestOS)之上的VLS区别,所以应用直接跑在Hypervisor其实已经有实验性质产品了20X86Hypervisor再细分–全虚拟化VMware

ESXi/ESXRedHat

KVM–

半虚拟化(或称“准虚拟化”)Citrix

XENOracle

VM(Oracle

VM一部分,详见备注解释)主机操作系统之上的HypervisorVMware

Server/WorkstationOracle/SUN

VirtualBox

(Oracle

VM一部分)Parallels

Desktop

等等…21X86Hypervisor全虚拟化概念–在X86Hypervisor全虚拟化环境里,Hypervisor充当一切硬件资源的管理者,并将其虚拟成各种设备提供给VM,对于VM虚拟机来说,底层对它是透明的,VM本身也并不知道自己是VM,所有CPU/内存及I/O设备都是来自Hypervisor的虚拟。这种产品的典型代表就是VMware了–该技术核心理念在于虚拟机OS上的敏感和特权指令(这些指令不支持虚拟化)借助Hypervisor的翻译来访问硬件22全虚拟化图解X86OS的设计含有4个Ring保护机制,OS内核运行在Ring0,应用运行在Ring3,而服务之类运行在Ring1/2上,全虚拟化架构中,Ring0是Hypervisor,虚拟机OS内核在Ring1,全虚拟化中,虚拟机OS内核一些不支持虚拟化的指令可使用Ring0的Hypervisor翻译执行并访问硬件,早期的技术难题就是X86OS如果不放在Ring0就无法工作,所以VMware的Hypervisor通过翻译绕开了这一技术瓶颈,实现了全虚拟化23X86Hypervisor半(准/超)虚拟化概念–半虚拟化,Paravirtualization,又称准虚拟化或超虚拟化–通俗的说半虚拟化相对于全虚拟化那种透明模式来说,可以修改VM虚拟机内核然后通过一些特权命令利用Hypervisor父分区直接(无须翻译)访问物理硬件资源,仅从理论上看,似乎半虚拟化应该比全虚拟化更好,但实际产品优劣并非仅取决于这一点,半虚拟化的代表就是开源的Xen了,后来Citrix看到虚拟化火热后迅速收购了XenSource公司–半虚拟化由于需要修改VM操作系统的内核,所以没法支持windows这样闭源OS,于是后来Xen也利用CPU虚拟化技术开始支持全虚拟化了24半(准/超)虚拟化图解和前面的全虚拟化对比,半虚拟化中,对这些X86OS的内核做了修改,让它可以支持虚拟化,可以运行在Ring0等级,再利用Hypervisor去直接访问硬件,仅从这一方面来说,理论上比VMware的全虚拟化更有效率;但这种情况下有一个很大的局限性,虚拟机OS必须可修改内核,这对闭源OS比如Windows是无法想象的,所以基于Xen的产品很长一段时间只能支持Linux或*BSD,直到Intel的VT-x出现25MSHyper-V图解26CitrixXenServer和MSHyper-V的渊源–如果仔细对比过Xen和Hyper-V的架构就可以看出它们是何其相似,都是硬件之上一层Hypervisor,然后Xen的Domain0在Hyper-V上叫父分区,Xen的DomainU在Hyper-V上叫子分区,都支持半虚拟化和全虚拟化–其实真实的原因是Hyper-V是MS复制了Xen的设计并在Windows内核上的实现,看以下描述:–Hyper-VisnotbasedonXencode,butthedesignforHyper-VisnearlyidenticaltoandcertainlybasedonXen'sdesign.That'swhyMSfundedCambridgetocreateXen,sothattheycouldcopythedesign.27主机OS之上的Hypervisor– VMware似乎并不想把这种产品定义为Hypervisor,但wiki上将这种类型的称为主机上的Hypervisor,在这里没必要对这个较劲,姑且也算在内– 此类Hypervisor最大的特点就是必须安装在OS之上(注意:这和后面提到的操作系统虚拟化是两码事),一般安装在windows和linux之上,比如有名的vmwareserver/workstation产品,微软的virtualserver/pc,以及SUN曾经收购的VirtualBox(目前已是Oracle旗下)等– 此类更像一个应用软件,由于其依赖OS可靠性以及多了层虚拟转化,此类Hypervisor性能和可靠性均无法同企业级Hypervisor(如ESX)可比,大多用于测试,本文不做详解28主机OS之上的Hypervisor图解29插播:Intel/AMD的CPU虚拟化30–为何CPU也要虚拟化?由于X86指令架构限制,早期的纯软件的X86虚拟化技术比如vmware,其虚拟机没法执行一些特权指令,必须通过vmware的Hypervisor做翻译才能在x86的CPU上执行,这大大降低了效率,随着虚拟化的日渐流行,x86CPU厂商也开始为CPU加入这一特性,最终结果说白了就是虚拟机执行一些特权指令时直接执行,再也不需要Hypervisor翻译执行,这既加快了虚拟机速度,也缓解了Hypervisor负担Intel

虚拟cpu技术

VT-xAMD虚拟cpu技术AMD-VCPU虚拟化图解(硬件辅助虚拟化)前面提到了全虚拟化和半虚拟化的区别,本来全虚拟化就是因为X86CPU设计时就不支持虚拟化技术,随着虚拟化的流行,Intel推出了VT-x从硬件上开始支持虚拟化,它增加了一个更底层的root模式运行Hypervisor,那些X86OS原本不支持虚拟化的那些指令都在这一层执行。有了这一技术后,Xen也开始支持Windows了,前提是硬件要支持Intel的VT-x和AMD的AMD-V。31插播:I/O虚拟化–为什么I/O也要虚拟化?CPU虽然虚拟化了,但还没完,性能另一个更大的影响在I/O,虚拟机上每一个I/O设备,如磁盘、网卡等等所有设备其实全部都是Hypervisor模拟出的设备,这样的I/O性能自然较差了,只有让虚拟机可以直接访问I/O硬件时性能才能提高,于是,I/O虚拟化也出现了Intel的I/O虚拟化技术VT-dSR-IOVNPIV32操作系统层虚拟化–定义–分类1.RISC2.X86–图解33定义–操作系统虚拟化是通过安装于OS之上的虚拟化软件将宿主机OS的内核和文件系统抽象化为一个个容器,并负责计算存储资源分配及容器安全隔离–这个概念属于容易意会难以言叙,再举个不是很恰当的例子,一个DB服务器安装了一套OracleDB软件,但可以创建多个实例,而这多个实例共享使用这些程序文件–注意:这和P28的主机之上的Hypervisor容易让人混淆,区别在于主机上的Hypervisor是软件模拟一个裸机并在上面安装操作系统;而操作系统虚拟化只是利用虚拟化软件把主机OS抽象成一个个容器34分类–RISCSUN

SPARC

Solaris

ContainerIBM

POWER

WLPRHP

Resource

Partitions–

X86Parallels

VirtuozzoOpenVZ(Virtuozzo的开源实现)35SUNSPARCSolarisContainer图解36IBMPOWERWPAR图解37ParallelsVirtuozzo图解38操作系统层虚拟化应用场景–RISC测试开发–X86idc机房大量使用,你经常看到的互联网小广告什么VPS双线主机之类的,这些全是Virtuozzo出品39操作系统虚拟化优缺点40–优点:1.部署快速;2.同样的硬件能创造更多的操作系统虚拟化容器,成本低,方便应用测试开发环境和互联网主机–缺点:1.容器隔离安全性没有前面各种虚拟化好;2.容器基于宿主机OS,不能虚拟出其他OS,也就是Solaris只能虚拟出Solaris的Container而不能是其他OS,Linux/Windows使用Virtuozzo亦然应用层虚拟化–定义–分类–图解41定义–应用层为操作系统之上的层面,应用层的虚拟化主要表现为用户使用的程序不在本地,看得到摸不着–说的通俗点,用户只管使用应用程序,才不管这个应用程序运行在本地还是远端的服务器上,只要保证应用程序是和用户的终端(ThickClient/ThinClient)+KVM(键鼠显示器)互动完成工作即可42分类–应用交付虚拟化应用交付这个虚拟化名称来源于Citrix,同样的该类技术鼻祖就是Citrix,曾经的MetaFrame到PresentationServer再到XenApp,名称在变本质不变,简而言之就是将应用程序运行在服务器上通过专有协议远程交付到用户桌面上,代表产品就是CitrixXenApp/MicroSoftRemoteApp–应用程序虚拟化应用程序虚拟化也是近几年开始流行的一种应用虚拟化,其实指桌面以流(stream)方式下载并运行放置于专用服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论