ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:241.93KB ,
资源ID:6272942      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6272942.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(主流的四大虚拟化架构对比分析.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

主流的四大虚拟化架构对比分析.docx

1、主流的四大虚拟化架构对比分析主流四大虚拟化架构对比分析云计算平台需要有资源池为其提供能力输出,这种能力包括计算能力、存储 能力和网络能力,为了将这些能力调度到其所需要的地方, 云计算平台还需要对 能力进行调度管理,这些能力均是由虚拟化资源池提供的。云计算离不开底层的虚拟化技术支持。维基百科列举的虚拟化技术有超过60种,基于X86(CISC)体系的超过50种,也有基于RISC体系的,其中有4种 虚拟化技术是当前最为成熟而且应用最为广泛的,分别是: VMWARE的ESX、微软的Hyper-V、开源的XEN和KVM。云计算平台选用何种虚拟化 技术将是 云计算建设所要面临的问题,文章就4种主流虚拟化技

2、术的架构层面进行了对比 分析。形成资源池计算能力的物理设备,可能有两种,一种是基于 RISC的大/小型机,另一种是基于CISC的X86服务器。大/小型机通常意味着高性能、高可 靠性和高价格,而X86服务器与之相比有些差距,但随着Inter和AMD等处理 器厂商技术的不断发展,原本只在小型机上才有的技术已经出现在了 X86处理 器上,如64位技术、虚拟化技术、多核心技术等等,使得 X86服务器在性能上 突飞猛进。通过TPC组织 在2011年3月份所公布的单机计算机性能排名中可 以看出,4路32核的X86服务器性能已经位列前10名,更重要的是X86服务 器的性价比相对小型机有 约5倍的优势。因此,

3、选择X86服务器作为云计算资 源池,更能凸显出云计算的低成本优势。由于单机计算机的处理能力越来越大,以单机资源为调度单位的颗粒度就太 大了,因此需要有一种技术让资源的调度颗粒更细小,使资源得到更有效和充分的利 用,这就引入了虚拟化技术。当前虚拟化技术中主流和成熟的有4种:VMWARE的ESX、微软的Hyper-V、开源的XEN和KVM,下面将针对这4种虚拟化技术的架构进行分析1虚拟化架构分析从虚拟化的实现方式来看,虚拟化架构主要有两种形式:宿主架构和裸金属 架构。在宿主架构中的虚拟机作为主机操作系统的一个进程来调度和管理, 裸金属架构下 则不存在主机操作系统,它是以Hypervisor直接运行

4、在物理硬件之上, 即使是有类似主机操作系统的父分区或 Domain 0,也是作为裸金属架构下的虚拟机存在的。宿主架构通常用于个人 PC上的虚拟化,如 WindowsVirtual PC ,VMware Workstation,Virtual Box,Qemu等,而裸金属架构通常用于服务器的 虚拟化,如文中提及的4种虚拟化技术。(一)ESX的虚拟化架构Ina Kemri團I :阳北虚拟化架构示意图ESX是VMware的企业级虚拟化产品,2001年开始发布ESX 1.0 ,到2011 年 2 月发布 ESX 4.1 Update 1 。ESX服务器启动时,首先启动Linux Kernel ,通过这

5、个操作系统加载虚拟化 组件,最重要的是 ESX的Hypervisor组件,称之为 VMkernel,VMkernel会从 LinuxKernel完全接管对硬件的控制权,而该 Linux Kernel作为VMkernel的首 个虚拟机,用于承载ESX的serviceConsole,实现本地的一些管理功能。VMkernel负责为所承载的虚拟机调度所有的硬件资源,但不同类型的硬件 会有些区别。虚拟机对于CPU和内存资源是通过VMkernel直接访问,最大程度地减少 了开销,CPU的直接访问得益于CPU硬件辅助虚拟化(Intel VT-x和AMD AMD-V,第一代虚拟化技术),内存的直接访问得益于

6、MMU(内存管理单元,属 于CPU中的一项特征)硬件辅助虚拟化(Intel EPT和AMD RVI/NPT,第二代虚 拟化技术)。虚拟机对于I/O设备的访问则有多种方式,以网卡为例,有两种方式可供选择:一是利用I/O MMU硬件辅助虚拟化(Intel VT-d和AMD-Vi)的VMDirectPathI/O,使得虚拟机可以直接访问硬件设备,从而减少对 CPU的开销;二是利用半虚拟化的设备VMXNETx,网卡的物理驱动在 VMkernel中,在虚拟 机中装载 网卡的虚拟驱动,通过这二者的配对来访问网卡,与仿真式网卡 (IntelE1OOO)相比有着较高的效率。半虚拟化设备的安装是由虚拟机中 VM

7、ware tool来实现的, 可以在Windows虚拟机的右下角找到它。网卡的这两种方式,前者有着显著的 先进性,但后者用得更为普遍,因为 VMDirectPath I/O与VMware虚拟化的一些核心功能不兼容,如:热迁移、快照、容错、内存过量使用等。ESX的物理驱动是内置在Hypervisor中,所有设备驱动均是由VMware预 植入的。因此,ESX对硬件有严格的兼容性列表,不在列表中的硬件, ESX将 拒绝在其上面安装。(二)Hyper-V的虚拟化架构MicrosoftOSjviciJ VJMBos d- g fHyper* V團2 : 拟化架枸示意图Hyper-V是微软新一代的服务器虚

8、拟化技术,首个版本于2008年7月发布, 目前最新版本是2011年4月发布R2 SP1版,Hyper-V有两种发布版本:一是 独立版,如Hyper-V Server 2008,以命令行界面实现操作控制,是一个免费的 版本;二是内嵌版,如 Windows Server 2008 ,Hyper-V作为一个可选开启的角 色。对于一台没有开启 Hyper-V角色的 Windows Server 2008 来说,这个操作 系统将直接操作硬件设备,一旦在其中开启了 Hyper-V角色,系统会要求重新启动服务器。虽然重启后的系统在表面看来没什么区 别,但从体系架构上看则与之前的完全不同了。在这次重启动过程中

9、, Hyper-V的Hypervisor接管了硬件设备的控制权,先前的Windows Server 2008则成为Hyper-V的首个虚拟机, 称之为父分区,负责其他虚拟机(称为子分区)以及I/O设备的管理。Hyper-V要 求CPU必须具备硬件辅 助虚拟化,但对MMU硬件辅助虚拟化则是一个增强选 项。其实Hypervisor仅实现了 CPU的调度和内存的分配,而父分区控制着I/O 设备,它通过物理驱动直接访问网卡、存储 等。子分区要访问I/O设 备需要通 过子分区操作系统内的VSC(虚拟化服务客户端),对VSC的请求由VMBUS(虚 拟机总线)传递到父分区操作系统内的 VSP(虚拟化服务提供

10、 者),再由VSP重 定向到父分区内的物理驱动,每种I/O设备均有各自的VSC和VSP配对,如存 储、网络、视频和输入设备等,整个I/O设备访问过程对于子分区的操作系统 是透明的。其实在子分区操作系统内,VSC和VMBUS就是作为I/O设备的虚 拟驱动,它是子分区操作系统首次启动时由 Hyper-V提供的集成 服务包安装,这也算是一种半虚拟化的设备,使得虚拟机与物理 I/O设备无关。如果子分区的操作系统没有安装Hyper-V集成服务包或者不支持 Hyper-V集成服务包(对于这种操作系统,微软称之为 Unenlightened OS,如未经认证支持的Linux版本和 旧的Windows版本),

11、则这个子分区只能运行在仿真状态。 其实微软所宣称的启 蒙式(Enlightenment)操作系统,就是支持半虚拟化驱动的操作系统。Hyper-V的Hypervisor是一个非常精简的软件层,不包含任何物理驱动,物理服务器的设备驱动均是驻留在父分区的 Win dows Server 2008中,驱动程序的安装和加载方式与传统Windows系统没有任何区别。因此,只要是Windows 支持的硬件,也都能被Hyper-V所兼容。(三)XEN的虚拟化架构團3: XEN的虛拟化架构示意團XEN最初是剑桥大学Xensource的一个开源研究项目,2003年9月发布了首个版本XEN 1.0,2007年Xen

12、source被Citrix公司收购,开源 XEN转由 www.xen.org继续推进,该组织成员包括个人和公司 (如Citrix、Oracle等)。目 前该组织在2011年3月发布了最新版本XEN 4.1 0相对于ESX和Hyper-V来说,XEN支持更广泛的CPU架构,前两者只支持CISC的X86/X86_64 CPU 架构,XEN除此之外还支持 RISC CPU架构,如IA64、ARM 等。XEN的Hypervisor是服务器经过BIOS启动之后载入的首个程序,然后启动一个具有特定权限的虚拟机,称之为 Domain 0(简称Dom 0)。 Dom 0的操作 系统可以是Linux或Unix,

13、Domain 0实现对Hypervisor控制和管理功能。在所 承载的虚拟机中,Dom 0是唯一可以直接访问物理硬件(如存储和网卡)的虚拟 机,它通过本身加载的物理驱动,为其它虚拟机 (Domain U,简称DomU)提供 访问存储和网卡的桥梁。XEN支持两种类型的虚拟机,一类是半虚拟化(PV,Paravirtualization),另 一类是全虚拟化(XEN称其为 HVM,Hardware Virtual Machine)。半虚拟化需 要特定内核的操作系统,如基于 Linux paravirt_ops(Linux内核的一套编译选项) 框架的Linux内核,而Windows操作系统由于其圭寸闭

14、性则不能被 XEN的半虚拟 化所支持,XEN的半虚拟化有个特别之处就是不要求 CPU具备硬件辅助虚拟 化,这非常适用于2007年之前的旧服务器虚拟化改造。全虚拟化支持原生的操 作系统,特别是针对 Windows这类操作系统,XEN的全虚拟化要求CPU具备 硬件辅助虚拟化,它修改的Qemu仿真所有硬件,包括:BIOS、DE控制器、VGA 显示卡、USB控制器和网卡等。为了提升I/O性能,全虚拟化特别针对磁盘和 网卡采用半虚拟化设备来代替仿真设备,这些设备驱动称之为 PV on HVM,为了使PV on HVM有最佳性能。CPU应具备MMU硬件辅助虚拟化。XEN的Hypervisor层非常薄,少于

15、15万行的代码量,不包含任何物理设 备驱动,这一点与Hyper-V是非常类似的,物理设备的驱动均是驻留在 Dom 0 中,可以重用现有的Linux设备驱动程序。因此,XEN对硬件兼容性也是非常 广泛的,Linux支持的,它就支持。(四)KVM的虚拟化架构團4: KE的虚播化架构示意團KVM的全称是Kernel-based Virtual Machine ,字面意思是基于内核虚拟机。其最初是由Qumranet公司开发的一个开源项目,2007年1月首次被整合到Linux 2.6.20核心中;2008年,Qumranet被RedHat所收购,但KVM本身仍是一个开源项目,由RedHat、IBM等厂商

16、支持。KVM作为Linux内核中的一 个模块,与Linux内核一起发布,至2011年1月的最新版本是kvm-kmod 2.6.37。与XEN类似,KVM支持广泛的CPU架构,除了 X86/X86_64 CPU 架构之 外,还将会支持大型机(S/390)、小型机(PowerPC、IA64)及ARM等。KVM充分利用了 CPU的硬件辅助虚拟化能力,并重用了 Linux内核的诸多 功能,使得KVM本身是非常瘦小的,KVM的创始者Avi Kivity声称KVM模块 仅有约10000行代码,但我们不能认为 KVM的Hypervisor就是这个代码量, 因为从严格意义来说,KVM本身并不是Hypervis

17、or,它仅是Linux内核中的一 个可装载模块,其功能是将Linux内核转换成一个裸金属的Hypervisor。这相对 于其它裸金属架构来说,它是非常特别的,有些类似于宿主架构,业界甚至有人 称其是半裸金属架构。通过KVM模块的加载将Linux内核转变成Hypervisor,KVM在Linux内核 的用户(User)模式和内核(Kernel)模式基础上 增加了客户(Guest)模式。Linux本 身运行于内核模式,主机进程运行于用户模式,虚拟机则运行于客户模式,使得 转变后的Linux内核可以将主机 进程和虚拟机进行统一的管理和调度,这也是 KVM名称的由来。KVM利用修改的QEMU提供BIO

18、S、显卡、网络、磁盘控制器等的仿真, 但对于I/O设备(主要指网卡和磁盘控制器)来说,则必然带来性能低下的问 题。因此,KVM也引入了半虚拟化的设备驱动,通过虚拟机操作系统中的虚拟驱动 与主机Linux内核中的物理驱动相配合,提供近似原生设备的性能 。从此可 以看出,KVM支持的物理设备也即是Linux所支持的物理设备。本文所讨论的4种虚拟化技术都用到了半虚拟化驱动,若要在不同虚拟化架 构之间迁移虚拟机,这些半虚拟化驱动将必然带来兼容性问题。 因此,RedHat和 IBM联合Linux社区推出VirtIO半虚拟化驱动开发标准,基于VirtIO的半虚拟化 驱动独立于Hypervisor,跨平台迁

19、移时半虚拟化驱 动仍可重用,使得不同虚拟 化架构之间更容易实现互操作。2总结目前,传统概念下的半虚拟化和全虚拟化的界线越来越模糊了, 而且半虚拟化和全虚拟化得到了有机的整合,如半虚拟化的设备驱动和全虚拟化的虚拟机在 上述四种虚拟化架构中得到了统一,很多虚拟化厂商也不再明确自己的虚拟化产 品归类(如VMware和微软)。随着CPU硬件辅助虚拟化技术发展到了二代,而且新版的操作系统对虚拟 化技术的原生支持(如 Windows7 的 Natively Enlightened 丄inux 的 paravirt_ops 内核选项),以及Hypervisor对虚拟机的CPU调度和内存管理越来越少的干预 则软件做得越少而硬件做得越多,如虚拟机之间内存管理所需用到的地址翻译由 软件的影式分页(Shadow Paging)转变为由 CPU硬件加速的嵌套分页(Nested Paging),各种虚拟化技术既有全虚拟化技术对操作系统的兼容性,又有半虚拟 化技术所带来的性能优势。从架构上来看,各种虚拟化技术没有明显的性能差距, 稳定性也在逐渐逼近中,各自有着自身的优势场景和市场群体。因此,我们在进行虚拟化技术选型时, 不应局限于某一种虚拟化技术,而应该有一套综合管理平台实现对各种虚拟化 技术的兼容并蓄,实现不同技术架构的统一管理及跨技术架构的资源调度, 最终达到云计算可运营的目。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1