x86平台三种不同的虚拟化之路
三大主流虚拟化技术对比分析报告

三大主流虚拟化技术对比分析报告张开谋【摘要】一.VMware虚拟化技术rn在所有通过虚拟化技术对IT环境进行优化和管理的软件中,VMware虚拟化技术得到了最为广泛的应用,从桌面环境到数据中心均有涉及。
VMware于1999年首次将虚拟化技术引入x86计算平台。
到目前为止,已经为20000家客户节省了数十亿的资本成本和运营成本。
【期刊名称】《金融科技时代》【年(卷),期】2012(000)011【总页数】3页(P64-66)【关键词】虚拟化技术;VMware;桌面环境;数据中心;计算平台;运营成本;资本成本;x86【作者】张开谋【作者单位】中国人民财产保险股份有限公司贵州分公司【正文语种】中文【中图分类】TP391.9一、VMware虚拟化技术在所有通过虚拟化技术对IT环境进行优化和管理的软件中,VMware虚拟化技术得到了最为广泛的应用,从桌面环境到数据中心均有涉及。
VMware于1999年首次将虚拟化技术引入x86计算平台。
到目前为止,已经为20 000家客户节省了数十亿的资本成本和运营成本。
VMware虚拟化将操作系统从运行它的底层硬件中抽离出来,并为操作系统及其应用程序提供标准化的虚拟硬件,从而使得多台虚拟机能够在一台或者多台共享处理器上同时独立运行。
借助虚拟化技术,客户可以轻松将多台不同服务器的工作负载整合到更为可靠并且性能更高的硬件平台上,如表1所列。
表1 VM w are虚拟化技术序号目标V M w a r e虚拟化能否满足目标1解决“新业务信息系统的开发往往需要增加两到三台独立的硬件服务器,这种方案导致服务器的数量随着业务系统的建设而大量增加,服务器等硬件的购置增加了投入和管理成本。
并且数据中心机房在使用区域面积、网络接口、空调及电源配备等方面都难以满足这种持续发展的需求”的问题。
V M w a r e虚拟化通过缩减物理基础架构,整合更多的服务器到虚拟机,由于服务器及相关 I T 硬件更少,因此减少了占地空间,也减少了电力和散热需求。
怎么区分全虚拟化和半虚拟化?

怎么区分全虚拟化和半虚拟化?要点:1、虚拟化(Virtualization)技术最早出现在60年代的IBM 大型机系统,在70年代的System370系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(VirtualMachine Monitor,VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(VirtualMachine)实例。
2、虚拟化技术发展到2000年左右,开始惠及到了x86架构。
在此之前,虚拟化技术在x86架构上进展十分缓慢,其原因主要可以归结为两点:其一是早期的x86处理器的性能不足;其二是x86架构本身不适合进行虚拟化,不过这个障碍已经由英特尔、AMD修改x86处理器的指令集得到解决;3、2005年底英特尔发布了业内首个面向X86服务器的辅助虚拟化技术Intel-VT及相关的处理器产品,从而拉开了X86架构虚拟化技术应用的新时代大幕;硬件辅助虚拟化技术缩小了软件性能的差异,X86虚拟化的开始进入爆发期。
4、随着硬件辅助虚拟化、IO直通等技术的发展,虚拟化软件功能逐渐向硬件板卡卸载成为趋势,各厂商的虚拟化技术架构开始趋同,功能开始标准化。
5、当技术趋同,功能趋同后,业界比拼的是:谁最快的做出来、谁做的性能更好、谁的服务最佳;归根到底比拼的是投入和对硬件的理解,华为对硬件的理解是所有虚拟化厂商中最深的.参考资料:虚拟化技术主要分为以下几个大类:1、平台虚拟化(Platform Virtualization),针对计算机和操作系统的虚拟化。
2、资源虚拟化(Resource Virtualization),针对特定的系统资源的虚拟化,比如内存、存储、网络资源等。
3、应用程序虚拟化(Application Virtualization),包括仿真、模拟、解释技术等。
我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(ControlProgram,也被称为VirtualMachine Monitor或Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。
三种主要的虚拟化架构类型

目前市场上各种x86 管理程序(hypervisor)的架构差异,三个最主要的架构类别包括:? I型:虚拟机直接运行在系统硬件上,创建硬件全仿真实例,被称为“裸机”。
? II型:虚拟机运行在传统上,同样创建的是硬件全仿真实例,被称为“托管”hypervisor。
? 容器:虚拟机运行在传统操作系统上,创建一个独立的虚拟化实例,指向底层托管操作系统,被称为“操作系统虚拟化”。
图1 三种主要的虚拟化架构类型上图显示了每种架构使用的高层“堆栈”,应当指出,在每种模型中,虚拟层是在不同层实现的,因此成本和效益都会不一样。
除了上面的架构类别外,知道hypervisor的基本元素也同样重要,它包括:? 虚拟机监视器(Virtual Machine Monitor,VMM):它创建、管理和删除虚拟化硬件。
?半虚拟化(Paravirtualization):修改软件,让它知道它运行在虚拟环境中,对于一个给定的hypervisor,这可能包括下面的一种或两种:- 内核半虚拟化:修改操作系统内核,要求客户机操作系统/hypervisor兼容性。
- 半虚拟化:修改客户机操作系统I/O驱动(、等),如Vmware Tools,MS Integration Components。
操作系统虚拟化:容器在容器模型中,虚拟层是通过创建虚拟操作系统实例实现的,它再指向根操作系统的关键系统文件,如下图所示,这些指针驻留在操作系统容器受保护的中,提供低内存开销,因此虚拟化实例的密度很大,密度是容器架构相对于I型和II型架构的关键优势之一,每个虚拟机都要求一个完整的客户机操作系统实例。
图2 容器型虚拟化架构通过共享系统文件的优点,所有容器可能只基于根操作系统提供客户机,举一个简单的例子,一个基本的Windows Server 2003操作系统也可用于创建Windows Server 2003容器,同样,任何适用于根操作系统系统文件的补丁和更新,其子容器也会继承,提供了一个方便的维护方法。
基于x86架构实现cpu虚拟化的方法

基于x86架构实现cpu虚拟化的方法嘿,咱今儿就来唠唠基于 x86 架构实现 CPU 虚拟化的方法。
这事儿啊,就好比搭积木,得一块一块稳稳当当摆好了,才能搭出漂亮的城堡。
你想想看,x86 架构就像是一个大舞台,而 CPU 虚拟化呢,就是要在这个舞台上变出好多精彩的戏法。
那怎么变呢?首先得了解这个舞台的特点呀,它有哪些优势,又有哪些限制。
咱先说说这虚拟化的好处吧,就好像你有了分身术一样,可以同时干好多事儿,让资源得到更充分的利用。
那怎么做到的呢?这就得靠一些巧妙的技术啦。
比如说指令模拟,就像是变魔术一样,让 CPU 以为它在处理真实的任务,其实是在虚拟化的环境里呢。
还有内存虚拟化,这可重要了,就好比给每个任务都划分好自己的小天地,互不干扰,又能高效运行。
这可不是随便就能搞定的事儿,得精心设计和安排呢。
再说说硬件辅助虚拟化,这就像是给虚拟化加了一双翅膀,让它飞得更高更快。
有了这双翅膀,虚拟化的效率那是蹭蹭往上涨啊。
哎呀,你说这是不是很神奇?就靠着这些方法,让 x86 架构上的CPU 虚拟化变得如此强大和实用。
你再想想,如果没有这些方法,那我们的电脑得多么浪费资源啊,好多程序都得排队等着运行,那多耽误事儿啊。
那实现 CPU 虚拟化难不难呢?当然难啦,就跟爬山一样,得一步一步往上爬,还得小心别摔下来。
但只要掌握了正确的方法,就像找到了登山的小路,虽然也不容易,但至少有了方向。
总之啊,基于 x86 架构实现 CPU 虚拟化的方法可是非常重要的,它让我们的电脑变得更加强大,让我们能做更多的事情。
这可不是随便说说的,你去看看那些大型的数据中心,那些云计算平台,哪个不是靠着 CPU 虚拟化在高效运行呢?所以啊,可别小看了这些方法,它们可是推动科技进步的重要力量呢!这就是我对基于 x86 架构实现CPU 虚拟化的理解,你觉得呢?。
x86服务器简介演示

性能优化建议
优化处理器配置
根据应用需求合理配置处理器数量和核心数 ,使用多线程技术提高计算效率。
优化网络设置
合理配置网络连接,使用更快的网络设备, 优化网络拓扑结构,降低网络延迟。
升级内存和存储
增加内存容量,使用更快的内存类型,优化 存储配置,提高读写速度。
实施负载均衡和容错机制
使用负载均衡技术分配请求负载,避免单点 故障,提高系统可用性。
存储特点
高性能存储
x86服务器通常配备高性 能的硬盘和固态硬盘,以 提高数据存储和读取速度 。
RAID技术
x86服务器通常支持RAID 技术,可以提高数据存储 的可靠性和性能。
存储容量大
x86服务器的存储容量通 常比普通PC更大,可以存 储更多的数据和处理更大 的数据集。
显卡特点
高性能显卡
x86服务器通常配备高性能的显 卡,以满足复杂图形处理和可视
04
系统综合性能测 试工具
使用如PCMark、 SYSmark等综合性能测试 工具评估服务器整体性能 。
05
x86服务器市场趋势与前 景
市场现状与趋势
增长趋势
近年来,随着云计算、大数据和人工智能的快速发展,x86服务器 市场呈现持续增长趋势。
市场份额
x86服务器在全球服务器市场中占据主导地位,特别是在互联网、 金融、电信等领域。
02
x86服务器通常采用标准的x86指 令集,具有较高的灵活性和可扩 展性,是构建企业级数据中心和 云计算基础设施的主流选择之一 。
x86服务器的历史与发展
x86服务器的发展历程可追溯至上世 纪80年代,当时IBM公司推出第一 台x86服务器,随后x86架构逐渐成 为服务器市场的主流。
CPU虚拟化技术

CPU全虚拟化、半虚拟化和硬件虚拟化技术陶菘我们在前面的文章中提到了虚拟化技术的大致分类情况,即分为全虚拟化、半虚拟化和硬件辅助虚拟化技术3大类别。
而我们虚拟化技术最主要的虚拟主体就是我们的硬件CPU、内存和IO,那么我们的CPU在全虚拟化模式下如何工作?在半虚拟化下如何工作?在硬件辅助虚拟化模式下如何工作?或着说细分下来,我们又可以分为CPU的全虚拟化技术、半虚拟化技术和硬件辅助虚拟化技术,内存的全虚拟化技术、半虚拟化技术和硬件辅助虚拟化技术以及IO设备的全虚拟化技术、半虚拟化技术和硬件辅助虚拟化技术。
本次我们就来说说CPU的全虚拟化技术、半虚拟化技术和硬件辅助虚拟化技术。
第一章、CPU全虚拟化技术不支持硬件辅助虚拟化技术的X86架构下的CPU有4个特权级(ring0--ring3),操作系统是处于最高级别的ring0,应用程序处于最低级别的ring3。
在这种架构下实现CPU的全虚拟化是及其困难的,为什么困难?1、原先的OS运行在ring0层,拥有对所有硬件的全部特权级;2、虚拟化之后将OS运行在ring1层,OS就没有权限执行一些特权指令,怎么保证这些特权指令执行;3、在保证该OS虚拟机的特权指令执行的情况下,保证其他运行的OS虚拟机的安全;1、模拟仿真技术最先实现这种CPU全虚拟化技术的是Trap-and-emulation技术,即陷入模式和模拟仿真技术。
这种技术通过将OS需求的特权指令通过VMM自动捕获的方式运行后返回去OS。
当OS有特权指令产生时,VMM将其自动捕获,将OS所请求的特权指令进行截获,然后通过VMM运行之后将结果返回给OS层。
VMM会使用模拟仿真将特权指令模拟仿真的方式执行一边。
在虚拟化模式下,就存在着2中特殊的指令:特权指令和敏感指令。
那么什么是特权指令?什么是敏感指令?特权指令:系统中有一些操作和管理关键系统资源的指令,这些指令只有在最高特权级上能够正确运行。
如果在非最高特权级上运行,特权指令会引发一个异常,处理器会陷入到最高特权级,交由系统软件处理了。
X86体系结构虚拟化主要技术简要分析

X86体系结构虚拟化主要技术简要分析摘要:本文从x86体系结构及其发展入手,基于x86虚拟化技术难点讲解,结合专利申请技术梳理,对x86架构虚拟机技术中硬件虚拟机技术和操作系统虚拟机技术发展作了详尽分析。
可以了解:随着硬件微小化、资源节约化、物理机安全化等方面需求的增加,硬件虚拟机技术和操作系统虚拟机技术均在减少资源占用、提高安全性、提升虚拟机管理等方面探索不断改进的方式方法。
经过本文对x86体系结构虚拟化技术的梳理,期望可以对该领域研究提供一定帮助。
关键词:x86;虚拟化;专利技术;分析1.1 x86体系结构通常,比较流行的两大处理器体系结构是MIPS公司的MIPS32/64指令集为代表的精简指令集计算机RISC处理器体系结构,和以Intel公司的x86为代表的复杂指令集计算机CISC处理器体系结构。
RISC处理器可用指令较少,便于执行较简单的功能。
X86是使用x86指令集体系结构的所有微处理器家族系列的一类署名。
x86最初由 Intel 公司发明,由开始的 16 位结构发展到今天的 64 位结构。
X86由8086微处理器开始,8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。
1.2X86体系结构发展8086是16位处理器,直到1985年32位的80386的开发,这个架构都维持是16位。
接着一系列的处理器表示了32位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64。
后来Intel也推出了与之兼容的处理器,并命名为Intel 64。
两者一般被统称为x86-64或x64,开创了x86的64位时代。
2.1 X86虚拟化技术难点虽然X86架构在PC市场占据绝对的垄断地位,但是由于其在初始设计时,并没有考虑到虚拟化需求,所以它对虚拟化的支持不够, X86的ISA有17条敏感指令(比如LGDT等)不属于特权指令。
[互联网]05 云计算虚拟化技术_X86虚拟化
![[互联网]05 云计算虚拟化技术_X86虚拟化](https://img.taocdn.com/s3/m/4210965f974bcf84b9d528ea81c758f5f61f29f5.png)
计算数据库大小
vCenter Server 具 有内置的数 据库计算器。 。
安装 vCenter Server 之前的步骤
开始安装 vCenter Server 之前,请执行以 下步骤:
– 确保已满足 vCenter Server 的硬件及软件要 求。
– 确保 vCenter Server 系统属于某个域,而非 工作组。
Converter。 7. 安装并启用插件:Converter 插件。
本课摘要
– vCenter 体系结构包括 vCenter Server、 vCenter Server 数据库、vSphere Web Access、vSphere Client、Active Directory 和托管的 ESX/ESXi 主机。
软件要求
– 支持的客户操作系统:
• Windows XP Pro、Windows 2003 Server、Windows Server 2008
– 有关支持的客户操作系统的完整详细列表,请参见《vSphere 安装指 南》。
vCenter 数据库要求
每个 vCenter Server 实例必须连接到数据库以组织所有配置数据。 支持的数据库:
vSphere Web
Access
vSphere Client
其他 SDK 客户端
– vCenter Server 使用这些端口与 其客户端界面及 托管主机通信。
443
vCenter Server
902/903
ESXi 或 ESX
配置 vCenter Server 使用的端口
自定义这些端口 或使用默认端口。 除端口 80、443 和 902 外,所使 用的其他端口包 括:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x86平台三种不同的虚拟化之路从1998年开始,VMware创造性的将虚拟化引入x86平台,通过二进制翻译(BT,Binary Translation)和直接执行的模式,让x86芯片可以同时运行不同的几种操作系统,并且确保性能、稳定性和安全性。
从那时起,数以万计的企业已经从虚拟化中获得了极大的收益。
但是,关于虚拟化的几种实现方式,引起了很多误解,为此,希望通过此文澄清几种虚拟化道路的优缺点,以及VMware公司对几种虚拟化之路的支持情况。
图1总结了x86虚拟化技术的进展情况,从VMware的BT最近的内核部分虚拟化和硬件辅助虚拟化。
1. x86虚拟化概览所谓x86服务器的虚拟化,就是在硬件和操作系统之间引入了虚拟化层,如图2所示。
虚拟化层允许多个操作系统实例同时运行在一台物理服务器上,动态分区和共享所有可用的物理资源,包括:CPU、内存、存储和I/O设备。
图2. x86架构上的虚拟化层近年来,随着服务器和台式机的计算能力急剧增加,虚拟化技术应用广泛普及,很多用户已经在开发/测试、服务器整合、数据中心优化和业务连续性方面证实了虚拟化的效用。
虚拟架构已经可以将操作系统和应用从硬件上分离出来,打包成独立的、可移动的虚拟机,从来带来了极大的灵活性。
例如:现在可以通过虚拟架构,让服务器7x24x365运行,避免因为备份或服务器维护而带来的停机。
已经有用户在VMware平台上运行3年而没有发生任何的停机事件。
对于x86虚拟化,有两种常见的架构:寄居架构和裸金属架构。
寄居架构将虚拟化层运行在操作系统之上,当作一个应用来运行,对硬件的支持很广泛。
相对的,裸金属架构直接将虚拟化层运行在x86的硬件系统上,可以直接访问硬件资源,无需通过操作系统来实现硬件访问,因此效率更高。
VMware Player、ACE、Workstation和VMware Server都是基于寄居架构而实现的,而VMware ESX Server是业界第一个裸金属架构的虚拟化产品,目前已经发布了第四代产品。
ESX Server需要运行在VMware认证的硬件平台上,可以提供出色的性能,完全可以满足大型数据中心对性能的要求。
为了更好的理解x86平台虚拟化,在此简要介绍一下部件虚拟化的背景。
虚拟化层是运行在虚拟机监控器(VMM,Virtual Machine Monitor)上面、负责管理所有虚拟机的软件。
如图3所示,虚拟化层就是hypervisor(管理程序)直接运行在硬件上,因此,hypervisor 的功能极大地取决于虚拟化架构和实现。
运行在hypervisor(管理程序)上的每个VMM进行了硬件抽取,负责运行传统的操作系统。
每个VMM必须进行分区和CPU、内存和I/O设备的共享,从而实现系统的虚拟化。
图3. Hypervisor通过VMM管理虚拟机2. CPU虚拟化根据原来的设计,x86上的操作系统需要直接运行在裸机上,因此默认拥有和控制所有的硬件。
如图4所示,x86架构提供了四种特权级别Ring 0、1、2和3,通过这四种级别来控制和管理对硬件的访问。
通常,用户级的应用一般运行在Ring 3级别,操作系统需要直接访问内存和硬件,需要在Ring 0执行它的特权指令。
为了虚拟x86架构,需要在操作系统下面运行虚拟化层,由虚拟化层来创建和管理虚拟机,进行共享资源分配。
而有些敏感指令不能很好的进行虚拟化,它们在Ring 0以外级别执行时,会出现不同的结果。
如何在运行时捕获和翻译这些敏感指令成为x86虚拟化的一大挑战,使得x86架构虚拟化最初是不可能的。
图4. x86架构虚拟化前的特权级别VMware在1998年成功克服了这个难点,开发出了BT技术,从而将操作系统移到Ring 3的用户模式运行,而VMM运行在Ring 0级别实现隔离和性能提升。
尽管VMware通过BT技术实现的全虚拟化已经成为默认的业界标准,超过2万家的VMware用户都在这种技术的支持下可靠、高效运行,但整个业界还没有统一定义的行业标准,因此每家公司都在自由发挥,来试图解决这个技术难点,不同的方案都有自己的优势和劣势。
到今天为止,有三种典型的技术来解决x86虚拟化的难题:通过BT实现的全虚拟化操作系统帮助下的虚拟化,也叫半虚拟化硬件帮助的虚拟化a. 技术1 –通过BT实现的全虚拟化VMware可以通过BT和直接执行技术的结合来实现任何x86操作系统的虚拟化。
如图5所示,BT可以翻译核心指令来代替那些不能虚拟化的指令,通过翻译后的指令直接访问虚拟硬件。
同时,所有用户级指令还是可以直接在CPU上执行来确保虚拟化的性能。
每个VMM为每个虚拟机提供完整的硬件支持服务,包括虚拟BIOS、虚拟设备和虚拟内存管理。
图5. BT实现x86架构虚拟化BT和直接执行技术的结合实现了全虚拟化,此时客户操作系统可以通过虚拟化层从物理硬件上完全抽取出来,客户操作系统感知不到是否发生了虚拟化,完全不需要进行修改。
全虚拟化是迄今为止唯一不需要硬件或操作系统协助来进行敏感和特权指令虚拟化的技术,Hypervisor(管理程序)可以翻译所有的操作系统特权指令,并保存在缓存里备用,而用户级的指令完全可以全速直接执行。
全虚拟化提供了最好的虚拟机隔离和安全性,简化了客户操作系统迁移和移植能力。
VMware ESX Server就是通过全虚拟化技术来实现的最好案例。
b. 技术2 –半虚拟化该文中我们将Para-Virtualization翻译为半虚拟化。
Para是来自希腊语的英语前缀,意指“和”、“在边上”、“一道”等。
因此,“半虚拟化”指得是客户操作系统和hypervisor之间的通讯如何提高性能和有效性。
如图6所示,半虚拟化需要修改操作系统内核,替换掉不能虚拟化的指令,通过超级调用(hypercall)直接和底层的虚拟化层hypervisor来通讯,hypervisor同时也提供了超级调用接口来满足其他关键内核操作,比如内存管理、中断和时间保持。
图6. 操作系统协助的x86架构虚拟化半虚拟化和全虚拟化不同,全虚拟化不需要修改上面的操作系统,敏感的操作系统指令直接通过BT进行处理。
半虚拟化的价值在于降低了虚拟化的损耗,但是半虚拟化的性能优势很大程度上依赖于运行的负载。
由于半虚拟化不支持未修改的操作系统(例如:Windows 2000/XP),它的兼容性和可移植性差。
在实际的生产环境中,半虚拟化也会导致操作系统支持和维护的艰难,因为半虚拟化往往要深入修改操作系统内核。
开源的Xen项目是半虚拟化的代表,它可以通过修改Linux的内核来实现CPU和内存的虚拟化,通过定制的操作系统驱动来实现I/O的虚拟化。
为了实现全虚拟化,需要构建复杂的BT技术,这往往比直接修改客户操作系统来启用半虚拟化更艰难。
VMware实际上已经在产品中使用了半虚拟化的一些技术,来构建VMware Tools和优化虚拟设备驱动。
VMware tools服务为VMM Hypervisor提供了一个后门服务,用来同步时间、记录日志和客户操作系统关机等。
Vmxnet是半虚拟化的I/O设备驱动程序,它可以和hypervisor共享数据结构。
这些半虚拟化技术的应用改善了设备的兼容能力,提高了数据吞吐速率,降低了CPU利用率。
需要重点澄清的是:VMware tools 服务和vmxnet 设备驱动并不是CPU半虚拟化解决方案,它们紧紧对客户操作系统进行了微小的、非关键的修改,并不需要修改客户操作系统内核。
面向未来,VMware也在帮助开发虚拟化版的Linux来支持半虚拟化技术的进步,更进一步的细节,我们将在后面进行探讨。
c. 技术3 –硬件辅助虚拟化硬件厂商面对虚拟化都相当热情,他们都投入了大量的精力来开发新的特性来简化虚拟化技术的应用。
第一代的虚拟化增强包括Intel Virtualization Technology (VT-x)和AMD的AMD-V,这两种技术都为CPU增加了新的执行模式root模式,可以让VMM运行在root 模式下,而root模式位于Ring 0的下面。
如图7所示,特权和敏感指令自动在hypervisor 上执行,从而无需BT或半虚拟化技术。
客户操作系统的状态保存在VT-x(Virtual Machine Control Structure,虚拟机控制结构)中或AMD-v(Virtual Machine Control Block,虚拟机控制块)。
支持Intel VT和AMD-V的CPU从2006年开始推向市场,因此只有新的系统包含了这些硬件辅助的虚拟化功能。
图7.硬件辅助的x86架构虚拟化由于hypervisor到客户操作系统转换的损耗和严格的编程模式要求,第一代的硬件辅助虚拟化性能并不理想,VMware的BT技术很多时候性能更好。
第一代硬件辅助虚拟化为编程留了很小的空间,降低了软件的灵活性,增加了hypervisor到客户操作系统转换的损耗,正式基于此,VMware仅仅在很少的情况下利用了第一代的硬件辅助虚拟化,比如,在Intel平台上支持64位操作系统的时候,VMware使用了Intel的VT-x。
3. 内存虚拟化除了CPU虚拟化,下一个关键是内存虚拟化,通过内存虚拟化共享物理系统内存,动态分配给虚拟机。
虚拟机的内存虚拟化很象现在的操作系统支持的虚拟内存方式,应用程序看到邻近的内存地址空间,这个地址空间无需和下面的物理机器内存直接对应,操作系统保持着虚拟页到物理页的映射。
现在所有的x86 CPU都包括了一个称为内存管理的模块MMU (Memory Management Unit)和TLB(Translation Lookaside Buffer),通过MMU和TLB来优化虚拟内存的性能。
图8. 内存虚拟化为了在一台机器上运行多个虚拟机,需要增加一个新的内存虚拟化层,也就是说,必须虚拟MMU来支持客户操作系统。
客户操作系统继续控制虚拟地址到客户内存物理地址的映射,但是客户操作系统不能直接访问实际机器内存。
VMM负责映射客户物理内存到实际机器内存,它通过影子页表来加速映射。
如图8所示,VMM使用TLB硬件来映射虚拟内存直接到机器内存,从而避免了每次访问进行两次翻译。
当客户操作系统更改了虚拟内存到物理内存的映射表,VMM也会更新影子页表来启动直接查询。
MMU虚拟化引入了虚拟化损耗,第二代的硬件辅助虚拟化将支持内存的虚拟化辅助,从而大大降低因此而带来的虚拟化损耗,让内存虚拟化更高效。
4. 设备和I/O虚拟化最后一个模块是设备和I/O虚拟化,也就是如何管理和路由物理设备和虚拟设备之间的I/O请求。
图9. 设备和I/O虚拟化基于软件的I/O虚拟化和管理为设备管理带来了新的特性和功能,让设备的管理更容易。