各种虚拟化技术总结.docx

上传人:b****3 文档编号:5546654 上传时间:2023-05-08 格式:DOCX 页数:8 大小:19.96KB
下载 相关 举报
各种虚拟化技术总结.docx_第1页
第1页 / 共8页
各种虚拟化技术总结.docx_第2页
第2页 / 共8页
各种虚拟化技术总结.docx_第3页
第3页 / 共8页
各种虚拟化技术总结.docx_第4页
第4页 / 共8页
各种虚拟化技术总结.docx_第5页
第5页 / 共8页
各种虚拟化技术总结.docx_第6页
第6页 / 共8页
各种虚拟化技术总结.docx_第7页
第7页 / 共8页
各种虚拟化技术总结.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

各种虚拟化技术总结.docx

《各种虚拟化技术总结.docx》由会员分享,可在线阅读,更多相关《各种虚拟化技术总结.docx(8页珍藏版)》请在冰点文库上搜索。

各种虚拟化技术总结.docx

各种虚拟化技术总结

各种虚拟化技术总结

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

  云计算平台需要有资源池为其提供能力输出,这种能力包括计算能力、存储能力和网络能力,为了将这些能力调度到其所需要的地方,云计算平台还需要对能力进行调度管理,这些能力均是由虚拟化资源池提供的。

  云计算离不开底层的虚拟化技术支持。

维基百科列举的虚拟化技术有超过60种,基于X86(CISC)体系的超过50种,也有基于RISC体系的,其中有4种虚拟化技术是当前最为成熟而且应用最为广泛的,分别是:

VMWARE的ESX、微软的Hyper-V、开源的XEN和KVM。

云计算平台选用何种虚拟化技术将是云计算建设所要面临的问题,文章就4种主流虚拟化技术的架构层面进行了对比分析。

  形成资源池计算能力的物理设备,可能有两种,一种是基于RISC的大/小型机,另一种是基于CISC的X86服务器。

大/小型机通常意味着高性能、高可靠性和高价格,而X86服务器与之相比有些差距,但随着Inter和AMD等处理器厂商技术的不断发展,原本只在小型机上才有的技术已经出现在了X86处理器上,如64位技术、虚拟化技术、多核心技术等等,使得X86服务器在性能上突飞猛进。

通过TPC组织在20XX年3月份所公布的单机计算机性能排名中可以看出,4路32核的X86服务器性能已经位列前XXX名思想汇报专题,更重要的是X86服务器的性价比相对小型机有约5倍的优势。

因此,选择X86服务器作为云计算资源池,更能凸显出云计算的低成本优势。

  由于单机计算机的处理能力越来越大,以单机资源为调度单位的颗粒度就太大了,因此需要有一种技术让资源的调度颗粒更细小,使资源得到更有效和充分

  的利用,这就引入了虚拟化技术。

当前虚拟化技术中主流和成熟的有4种:

VMWARE的ESX、微软的Hyper-V、开源的XEN和KVM,下面将针对这4种虚拟化技术的架构进行分析

  1虚拟化架构分析

  从虚拟化的实现方式来看,虚拟化架构主要有两种形式:

宿主架构和裸金属架构。

在宿主架构中的虚拟机作为主机操作系统的一个进程来调度和管理,裸金属架构下则不存在主机操作系统,它是以Hypervisor直接运行在物理硬件之上,即使是有类似主机操作系统的父分区或Domain0,也是作为裸金属架构下的虚拟机存在的。

宿主架构通常用于个人PC上的虚拟化,如WindowsVirtualPC,VMwareWorkstation,VirtualBox,Qemu等,而裸金属架构通常用于服务器的虚拟化,如文中提及的4种虚拟化技术。

  

(一)ESX的虚拟化架构

  ESX是VMware的企业级虚拟化产品,20XX年开始发布ESX1.0,到20XX年2月发布ESX4.1Update1。

  ESX服务器启动时,首先启动LinuxKernel,通过这个操作系统加载虚拟化组件,最重要的是ESX的Hypervisor组件,称之为VMkernel,VMkernel会从LinuxKernel完全接管对硬件的控制权,而该LinuxKernel作为VMkernel的首个虚拟机,用于承载ESX的serviceConsole,实现本地的一些管理功能。

VMkernel负责为所承载的虚拟机调度所有的硬件资源,但不同类型的硬件会有些区别。

  虚拟机对于CPU和内存资源是通过VMkernel直接访问,最大程度地减少了开销,CPU的直接访问得益于CPU硬件辅助虚拟化(IntelVT-x和AMDAMD-V,第一代虚拟化技术),内存的直接访问得益于MMU(内存管理单元,属于CPU中的一项特征)硬件辅助虚拟化(IntelEPT和AMDRVI/NPT,第二代虚拟化技术)。

  虚拟机对于I/O设备的访问则有多种方式,以网卡为例,有两种方式可供选

  择:

一是利用I/OMMU硬件辅助虚拟化(IntelVT-d和AMD-Vi)的VMDirectPathI/O,使得虚拟机可以直接访问硬件设备,从而减少对CPU的开销;二是利用半虚拟化的设备VMXNETx,网卡的物理驱动在VMkernel中,在虚拟机中装载网卡的虚拟驱动,通过这二者的配对来访问网卡,与仿真式网卡(IntelE1000)相比有着较高的效率。

半虚拟化设备的安装是由虚拟机中VMwaretool来实现的,可以在Windows虚拟机的右下角找到它。

网卡的这两种方式,前者有着显著的先进性,但后者用得更为普遍,因为VMDirectPathI/O与VMware虚拟化的一些核心功能不兼容,如:

热迁移、快照、容错、内存过量使用等。

  ESX的物理驱动是内置在Hypervisor中,所有设备驱动均是由VMware预植入的。

因此,ESX对硬件有严格的兼容性列表,不在列表中的硬件,ESX将拒绝在其上面安装。

  

(二)Hyper-V的虚拟化架构

  Hyper-V是微软新一代的服务器虚拟化技术,首个版本于20XX年7月发布,

  对于一台没有开启Hyper-V角色的WindowsServer20XX来说,这个操作系统将直接操作硬件设备,一旦在其中开启了Hyper-V角色,系统会要求重新启动服务器。

虽然重启后的系统在表面看来没什么区别,但从体系架构上看则与之前的完全不同了。

在这次重启动过程中,Hyper-V的Hypervisor接管了硬件设备的控制权,先前的WindowsServer20XX则成为Hyper-V的首个虚拟机,称之为父分区,负责其他虚拟机(称为子分区)以及I/O设备的管理。

Hyper-V要求CPU必须具备硬件辅助虚拟化,但对MMU硬件辅助虚拟化则是一个增强选项。

  篇二:

3开启虚拟化教程总结

  开启虚拟化教程

  虚拟化设置的开启很简单,总结一句话就是:

进入bios界面找到要修改的项,修改,保存即可。

  1,进入bios,根据电脑主板不同,所按得键可能不一样,一般是按del键(即删除键),其他常用的有F2,F1,F10,F12,ESC等。

你可以选择一个一个尝试,也可先看一下电脑主板型号,然后XX搜“xx主板进入bios按什么键”。

可以下载群共享的cpu-z查看自己的电脑主板品牌。

  2,需要修改的项:

Intel(R)VirtualizationTech把默认Disabled状态修改为Enabled。

如果看到Execute-DisableBitCapability这项显示为disabled也要修改成Enabled。

  3,千万别玩了保存。

一般保存键是F10。

自己看一下屏幕上显示的提示。

  4,注意:

进入bios是在电脑开机前的黑屏状态下连续迅速点按某一键。

  下面是几个例子,仅供参考。

  例一、眏泰主板开启虚拟化

  按Del键进入bios界面。

如下图:

  按向右键进入Advanced页面,找到“CPUConfiguration”,如下图:

  按回车键(enter键)进入如下页面:

  此时看到Intel(R)VirtualizationTech这项,把光标移动到此,

  修改Disabled为Enabled。

  如果看到Execute-DisableBitCapability这项,也要修改为Enabled。

修改完后如下图:

  最后按F10进行保存

  然后按回车键(enter键)。

电脑重启,操作完成。

  例二、华硕主板开启虚拟化

  开机后立刻一直按DEL进入BIOS

  下面开始设置:

  选择高级模式

  选择高级

  选择处理器设置

  篇三:

虚拟化技术区别

  x86平台三种不同的虚拟化之路

  从1998年开始,VMware创造性的将虚拟化引入x86平台,通过二进制翻译(BT,BinaryTranslation)和直接执行的模式,让x86芯片可以同时运行不同的几种操作系统,并且确保性能、稳定性和安全性。

从那时起,数以万计的企业已经从虚拟化中获得了极大的收益。

但是,关于虚拟化的几种实现方式,引起了很多误解,为此,希望通过此文澄清几种虚拟化道路的优缺点,以及VMware公司对几种虚拟化之路的支持情况。

图1总结了x86虚拟化技术的进展情况,从VMware的BT最近的内核部分虚拟化和硬件辅助虚拟化。

  1.x86虚拟化概览

  所谓x86服务器的虚拟化,就是在硬件和操作系统之间引入了虚拟化层,如图2所示。

虚拟化层允许多个操作系统实例同时运行在一台物理服务器上,动态分区和共享所有可用的物理资源,包括:

CPU、内存、存储和I/O设备。

  图2.x86架构上的虚拟化层

  近年来,随着服务器和台式机的计算能力急剧增加,虚拟化技术应用广泛普及,很多用户已经在开发/测试、服务器整合、数据中心优化和业务连续性方面证实了虚拟化的效用。

虚拟架构已经可以将操作系统和应用从硬件上分离出来,打包成独立的、可移动的虚拟机,从来带来了极大的灵活性。

例如:

现在可以通过虚拟架构,让服务器7x24x365运行,避免因为备份或服务器维护而带来的停机。

已经有用户在VMware平台上运行3年而没有发生任何的停机事件。

  对于x86虚拟化,有两种常见的架构:

寄居架构和裸金属架构。

寄居架构将虚拟化层运行在操作系统之上,当作一个应用来运行,对硬件的支持很广泛。

相对的,裸金属架构直接将虚拟化层运行在x86的硬件系统上,可以直接访问硬件资源,无需通过操作系统来实现硬件访问,因此效率更高。

VMwarePlayer、ACE、Workstation和VMwareServer都是基于寄居架构而实现的,而VMwareESXServer是业界第一个裸金属架构的虚拟化产品,目前已经发布了第四代产品。

ESXServer需要运行在VMware认证的硬件平台上,可以提供出色的性能,完全可以满足大型数据中心对性能的要求。

  为了更好的理解x86平台虚拟化,在此简要介绍一下部件虚拟化的背景。

虚拟化层是运行在虚拟机监控器(VMM,VirtualMachineMonitor)上面、负责管理所有虚拟机的软件。

如图3所示,虚拟化层就是hypervisor(管理程序)直接运行在硬件上,因此,hypervisor的功能极大地取决于虚拟化架构和实现。

运行在hypervisor(管理程序)上的每个VMM进行了硬件抽取,负责运行传统的操作系统。

每个VMM必须进行分区和CPU、内存和I/O设备的共享,从而实现系统的虚拟化。

  图3.Hypervisor通过VMM管理虚拟机

  2.CPU虚拟化

  根据原来的设计,x86上的操作系统需要直接运行在裸机上,因此默认拥有和控制所有的硬件。

如图4所示,x86架构提供了四种特权级别Ring0、1、2和3,通过这四种级别来控制和管理对硬件的访问。

通常,用户级的应用一般运行在Ring3级别,操作系统需要直接访问内存和硬件,需要在Ring0执行它的特权指令。

为了虚拟x86架构,需要在操作系统下面运行虚拟化层,由虚拟化层来创建和管理虚拟机,进行共享资源分配。

而有些敏感指令不能很好的进行虚拟化,它们在Ring0以外级别执行时,会出现不同的结果。

如何在运行时捕获和翻译这些敏感指令成为x86虚拟化的一大挑战,使得x86架构虚拟化最初是不可能的。

  图4.x86架构虚拟化前的特权级别

  到今天为止,有三种典型的技术来解决x86虚拟化的难题:

  通过BT实现的全虚拟化

  操作系统帮助下的虚拟化,也叫半虚拟化

  硬件帮助的虚拟化

  a.技术1–通过BT实现的全虚拟化

  VMware可以通过BT和直接执行技术的结合来实现任何x86操作系统的虚拟化。

如图5所示,BT可以翻译核心指令来代替那些不能虚拟化的指令,通过翻译后的指令直接访问虚拟硬件。

同时,所有用户级指令还是可以直接在CPU上执行来确保虚拟化的性能。

每个VMM为每个虚拟机提供完整的硬件支持服务,包括虚拟BIOS、虚拟设备和虚拟内存管理。

  图5.BT实现x86架构虚拟化

  BT和直接执行技术的结合实现了全虚拟化,此时客户操作系统可以通过虚拟化层从物理硬件上完全抽取出来,客户操作系统感知不到是否发生了虚拟化,完全不需要进行修改。

全虚拟化是迄今为止唯一不需要硬件或操作系统协助来进行敏感和特权指令虚拟化的技术,Hypervisor(管理程序)可以翻译所有的操作系统特权指令,并保存在缓存里备用,而用户级的指令完全可以全速直接执行。

  全虚拟化提供了最好的虚拟机隔离和安全性,简化了客户操作系统迁移和移植能力。

VMwareESXServer就是通过全虚拟化技术来实现的最好案例。

  b.技术2–半虚拟化

  该文中我们将Para-Virtualization翻译为半虚拟化。

Para是来自希腊语的英语前缀,意指“和”、“在边上”、“一道”等。

因此,“半虚拟化”指得是客户操作系统和hypervisor之间的通讯如何提高性能和有效性。

如图6所示,半虚拟化需要修改操作系统内核,替换掉不

  能虚拟化的指令,通过超级调用(hypercall)直接和底层的虚拟化层hypervisor来通讯,hypervisor同时也提供了超级调用接口来满足其他关键内核操作,比如内存管理、中断和时间保持。

  图6.操作系统协助的x86架构虚拟化

  半虚拟化和全虚拟化不同,全虚拟化不需要修改上面的操作系统,敏感的操作系统指令直接通过BT进行处理。

半虚拟化的价值在于降低了虚拟化的损耗,但是半虚拟化的性能优势很大程度上依赖于运行的负载。

由于半虚拟化不支持未修改的操作系统(例如:

Windows20XX/XP),它的兼容性和可移植性差。

在实际的生产环境中,半虚拟化也会导致操作系统支持和维护的艰难,因为半虚拟化往往要深入修改操作系统内核。

开源的Xen项目是半虚拟化的代表,它可以通过修改Linux的内核来实现CPU和内存的虚拟化,通过定制的操作系统驱动来实现I/O的虚拟化。

  为了实现全虚拟化,需要构建复杂的BT技术,这往往比直接修改客户操作系统来启用半虚拟化更艰难。

VMware实际上已经在产品中使用了半虚拟化的一些技术,来构建VMwareTools和优化虚拟设备驱动。

VMwaretools服务为VMMHypervisor提供了一个后门服务,用来同步时间、记录日志和客户操作系统关机等。

Vmxnet是半虚拟化的I/O设备驱动程序,它可以和hypervisor共享数据结构。

这些半虚拟化技术的应用改善了设备的兼容能力,提高了数据吞吐速率,降低了CPU利用率。

需要重点澄清的是:

VMwaretools服务和vmxnet设备驱动并不是CPU半虚拟化解决方案,它们紧紧对客户操作系统进行了微小的、非关键

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

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

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