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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

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

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

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

4、的虚拟机作为主机操作系统的一个进程来调度和管理, 裸金 属架构下 则不存在主机操作系统,它是以 Hypervisor 直接运行在物理硬件之 上,即使是有类似主机操作系统的父分区或 Domain 0,也是作为裸金属架构下 的虚拟机存在的。宿主架构通常用于个人 PC上的虚拟化,如 WindowsVirtual PC, VMware Workstation ,Virtual Box , Qemu等,而裸金属架构通常用于服务器的 虚拟化,如文中提及的 4 种虚拟化技术。( 一) ESX的虚拟化架构ESX是 VMware的企业级虚拟化产品, 2001年开始发布 ESX 1.0,到 2011年 2 月发布

5、 ESX 4.1 Update 1 。ESX服务器启动时,首先启动 Linux Kernel ,通过这个操作系统加载虚拟化 组件,最重要的是 ESX的 Hypervisor 组件,称之为 VMkernel, VMkernel 会从 LinuxKernel 完全接管对硬件的控制权,而该 Linux Kernel 作为 VMkernel 的首 个虚拟机,用于承载 ESX的 serviceConsole ,实现本地的一些管理功能。VMkernel 负责为所承载的虚拟机调度所有的硬件资源,但不同类型的硬件 会有些区别。虚拟机对于 CPU和内存资源是通过 VMkernel 直接访问,最大程度地减少了 开

6、销, CPU的直接访问得益于 CPU硬件辅助虚拟化 (Intel VT-x 和 AMD AMD-,V 第一代虚拟化技术 ) ,内存的直接访问得益于 MMU内( 存管理单元,属于 CPU中的 一项特征)硬件辅助虚拟化 (Intel EPT 和 AMD RVI/NPT,第二代虚拟化技术 )。虚拟机对于 I/O 设备的访问则有多种方式, 以网卡为例, 有两种方式可供选 择:一是利用 I/O MMU硬件辅助虚拟化 (Intel VT-d 和 AMD-Vi)的 VMDirectPath I/O ,使得虚拟机可以直接访问硬件设备,从而减少对 CPU的开销;二是利用半 虚拟化的设备 VMXNET,x 网卡的

7、物理驱动在 VMkernel 中,在虚拟 机中装载网卡 的虚拟驱动, 通过这二者的配对来访问网卡, 与仿真式网卡 (IntelE1000) 相比有 着较高的效率。半虚拟化设备的安装是由虚拟机中 VMware tool 来实现的,可 以在 Windows虚拟机的右下角找到它。 网卡的这两种方式, 前者有着显著的先进 性,但后者用得更为普遍,因为 VMDirectPath I/O 与 VMware虚拟化的一些核 心功能不兼容,如:热迁移、快照、容错、内存过量使用等。ESX的物理驱动是内置在 Hypervisor 中,所有设备驱动均是由 VMware预植 入的。因此, ESX对硬件有严格的兼容性列表

8、,不在列表中的硬件, ESX将拒绝 在其上面安装。( 二) Hyper-V 的虚拟化架构Hyper-V 是微软新一代的服务器虚拟化技术, 首个版本于 2008年 7月发布, 目前最新版本是 2011年4月发布 R2 SP1版,Hyper-V 有两种发布版本:一是独 立版,如 Hyper-V Server 2008 ,以命令行界面实现操作控制,是一个免费的版 本;二是内嵌版,如 Windows Server 2008, Hyper-V 作为一个可选开启的角色。对于一台没有开启 Hyper-V 角色的 Windows Server 2008 来说,这个操作系 统将直接操作硬件设备, 一旦在其中开启

9、了 Hyper-V 角色,系统会要求重新启动 服务器。虽然重启后的系统在表面看来没什么区 别,但从体系架构上看则与之 前的完全不同了。在这次重启动过程中, Hyper-V 的 Hypervisor 接管了硬件设 备的控制权,先前的 Windows Server 2008 则成为 Hyper-V 的首个虚拟机,称之 为父分区,负责其他虚拟机(称为子分区)以及I/O 设备的管理。Hyper-V要求CPU 必须具备硬件辅 助虚拟化,但对 MMU硬件辅助虚拟化则是一个增强选项。其实 Hypervisor 仅实现了 CPU的调度和内存的分配 , 而父分区控制着 I/O 设备,它通过物理驱动直接访问网卡、

10、存储 等。 子分区要访问 I/O 设 备需要通 过子分区操作系统内的 VSC(虚拟化服务客户端 ),对 VSC的请求由 VMBUS虚( 拟机 总线)传递到父分区操作系统内的 VSP(虚拟化服务提供 者),再由 VSP重定向到 父分区内的物理驱动, 每种 I/O 设备均有各自的 VSC和 VSP配对,如存储、网络、 视频和输入设备等,整个 I/O 设备访问过程对 于子分区的操作系统是透明的。 其实在子分区操作系统内, VSC和 VMBUS就是作为 I/O 设备的虚拟驱动,它是子 分区操作系统首次启动时由 Hyper-V 提供的集成 服务包安装, 这也算是一种半 虚拟化的设备, 使得虚拟机与物理

11、I/O 设备无关。如果子分区的操作系统没有安 装 Hyper-V 集成服务包或者不支持 Hyper-V 集成服务包 ( 对于这种操作系统, 微 软称之为 Unenlightened OS ,如未经认证支持的 Linux 版本和旧的 Windows版 本) ,则这个子分区只能运行在仿真状态。其实微软所宣称的启蒙式 (Enlightenment) 操作系统,就是支持半虚拟化驱动的操作系统。Hyper-V 的 Hypervisor 是一个非常精简的软件层,不包含任何物理驱动, 物理服务器的设备驱动均是驻留在父分区的 Windows Server 2008 中,驱动程序 的安装和加载方式与传统 Win

12、dows系统没有任何区别。因此,只要是 Windows 支持的硬件,也都能被 Hyper-V 所兼容。(三) XEN 的虚拟化架构XEN最初是剑桥大学 Xensource 的一个开源研究项目, 2003年 9月发布了首 个版本 XEN 1.0,2007年 Xensource 被 Citrix 公司收购,开源 XEN转由 www.xen.org 继续推进,该组织成员包括个人和公司 ( 如 Citrix 、Oracle 等) 。 目前该组织在 2011年 3月发布了最新版本 XEN 4.1。相对于 ESX和 Hyper-V 来说,XEN支持更广泛的 CPU架构,前两者只支持 CISC 的 X86/

13、X86_64 CPU架构, XEN除此之外还支持 RISC CPU架构,如 IA64、ARM等。XEN的 Hypervisor 是服务器经过 BIOS启动之后载入的首个程序, 然后启动 一个具有特定权限的虚拟机,称之为 Domain 0( 简称 Dom 0)。 Dom 0的操作系统 可以是 Linux 或 Unix ,Domain 0 实现对 Hypervisor 控制和管理功能。在所承载 的虚拟机中, Dom0 是唯一可以直接访问物理硬件 (如存储和网卡 )的虚拟机,它 通过本身加载的物理驱动,为其它虚拟机 (Domain U,简称 DomU提) 供访问存储 和网卡的桥梁。XEN支持两种类型

14、的虚拟机,一类是半虚拟化 (PV,Paravirtualization) ,另一类是全虚拟化 (XEN称其为 HVM, Hardware Virtual Machine) 。半虚拟化需 要特定内核的操作系统,如基于 Linux paravirt_ops(Linux 内核的一套编译选 项) 框架的 Linux 内核,而 Windows操作系统由于其封闭性则不能被 XEN的半虚 拟化所支 持 ,XEN的半虚拟化有个特别之处就是不要求 CPU具备硬件辅助虚拟 化,这非常适用于 2007 年之前的旧服务器虚拟化改造。全虚拟化支持原生的操 作系统, 特别是针对 Windows这类操作系统, XEN的全虚

15、拟化要求 CPU具备硬 件辅助虚拟化,它修改的 Qemu仿真所有硬件,包括: BIOS、IDE 控制器、 VGA显示卡、 USB控制器和网卡等。为了提升 I/O 性能,全虚拟化特别针对磁盘和网 卡采用半虚拟化设备来代替仿真设备,这些设备驱动称之为 PV on HVM,为了使PV on HVM有最佳性能。 CPU应具备 MMU硬件辅助虚拟化XEN的 Hypervisor 层非常薄 ,少于 15 万行的代码量, 不包含任何物理设备 驱动,这一点与 Hyper-V 是非常类似的,物理设备的驱动均是驻留在 Dom 0中, 可以重用现有的 Linux 设备驱动程序。 因此,XEN对硬件兼容性也是非常广泛

16、的, Linux 支持的,它就支持。(四) KVM 的虚拟化架构KVM的全称是 Kernel-based Virtual Machine,字面意思是基于内核虚拟机。 其最初是由 Qumranet公司开发的一个开源项目, 2007年 1月首次被整合到 Linux 2.6.20 核心中; 2008年,Qumranet被 RedHat所收购,但 KVM本身仍是一个开 源项目,由 RedHat、IBM 等厂商支持。 KVM作为 Linux 内核中的一个模块,与 Linux 内核一起发布,至 2011年1月的最新版本是 kvm-kmod 2.6.37 。与 XEN类似, KVM支持广泛的 CPU架构,除

17、了 X86/X86_64 CPU架构之外, 还将会支持大型机 (S/390) 、小型机 (PowerPC、IA64) 及 ARM等 。KVM充分利用了 CPU的硬件辅助虚拟化能力, 并重用了 Linux 内核的诸多功 能,使得 KVM本身是非常瘦小 的, KVM的创始者 Avi Kivity 声称 KVM模块仅有 约 10000 行代码,但我们不能认为 KVM的 Hypervisor 就是这个代码量,因为从 严格意义来说, KVM本身并不是 Hypervisor ,它仅是 Linux 内核中的一个可装 载模块,其功能是将 Linux 内核转换成一个裸金属的 Hypervisor 。这相对于其

18、它裸金属架构来说, 它是非常特别的, 有些类似于宿主架构, 业界甚至有人称其 是半裸金属架构。通过 KVM模块的加载将 Linux 内核转变成 Hypervisor ,KVM在 Linux 内核的 用户 (User) 模式和内核 (Kernel) 模式基础上 增加了客户 (Guest) 模式。Linux 本 身运行于内核模式, 主机进程运行于用户模式, 虚拟机则运行于客户模式, 使得 转变后的 Linux 内核可以将主机 进程和虚拟机进行统一的管理和调度,这也是 KVM名称的由来。KVM利用修改的 QEMU提供 BIOS、显卡、网络、磁盘控制器等的仿真,但对 于 I/O 设备( 主要指网卡和磁

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

20、重用,使得不同虚 拟化架构之间更容易实现互操作。2 总结目前,传统概念下的半虚拟化和全虚拟化的界线越来越模糊了, 而且半虚拟 化和全虚拟化得到了有机的整合, 如半虚拟化的设备驱动和全虚拟化的虚拟机在 上述四种虚拟化架构中得到了统一, 很多虚拟化厂商也不再明确自己的虚拟化产 品归类(如 VMware和微软) 。随着 CPU硬件辅助虚拟化技术发展到了二代, 而且新版的操作系统对虚拟化 技术的原生支持 ( 如 Windows7的 Natively Enlightened ,Linux 的 paravirt_ops 内核选项 ),以及 Hypervisor 对虚拟机的 CPU调度和内存管理越来越少的干

21、预 。 则软件做得越少而硬件做得越多, 如虚拟机之间内存管理所需用到的地址翻译由 软件的影式分页 (Shadow Paging) 转变为由 CPU 硬件加速的嵌套分页 (NestedPaging) ,各种虚拟化技术既有全虚拟化技术对操作系统的兼容性,又有半虚拟 化技术所带来的性能优势。从架构上来看, 各种虚拟化技术没有明显的性能差距, 稳定性也在逐渐逼近 中,各自有着自身的优势场景和市场群体。 因此,我们在进行虚拟化技术选型时, 不 应局限于某一种虚拟化技术,而应该有一套综合管理平台实现对各种虚拟化 技术的兼容并蓄, 实现不同技术架构的统一管理及跨技术架构的资源调度, 最终 达到云计算可运营的目。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2