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虚拟化
计算数据库大小
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 外,所使 用的其他端口包 括:
虚拟化技术区别
虚拟化技术区别————————————————————————————————作者:————————————————————————————————日期: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的硬件系统上,可以直接访问硬件资源,无需通过操作系统来实现硬件访问,因此效率更高。
服务器虚拟化平台比较VMwareHyperV还是KVM
服务器虚拟化平台比较VMwareHyperV还是KVM在当今信息技术日新月异的时代,服务器虚拟化平台已经成为企业中不可或缺的一部分。
它可以帮助企业降低成本、提高资源利用率以及简化管理。
然而,市场上存在着不同的虚拟化平台选择,其中最具代表的三种是VMware、Hyper-V和KVM。
本文将对这三种平台进行比较分析,以帮助读者更好地了解它们的优缺点,以及在实际应用中如何进行选择。
1. VMware作为最早进入虚拟化市场的公司,VMware在虚拟化技术方面处于领先地位。
其虚拟化平台提供了广泛的功能和工具,可支持大规模部署和复杂的管理需求。
下面是VMware的几个优势点:(1)功能丰富:VMware提供了丰富的功能和服务,例如vMotion、vSphere等。
它们可以提高服务器的可用性、弹性和容错能力,使业务连续不断地运行。
(2)生态系统成熟:VMware已经建立起了庞大的生态系统,有众多的合作伙伴和第三方工具支持。
这使得用户能够更好地集成和扩展他们的虚拟化环境。
(3)广泛应用:VMware是业界最为广泛应用的虚拟化平台之一,许多大型企业和服务提供商都选择了VMware作为他们的虚拟化解决方案。
然而,VMware也存在一些不足之处:(1)高昂的成本:VMware的许可证费用较高,对于中小型企业来说可能是一个负担。
此外,一些高级功能需要额外购买,增加了总体成本。
(2)稍显复杂:由于VMware平台的功能丰富,学习和管理的门槛较高。
这对于新手来说可能是一个挑战,需要一定的培训和专业知识。
2. Hyper-VHyper-V是由微软开发的虚拟化平台,是Windows Server操作系统的一部分。
它也是市场上被广泛采用的虚拟化解决方案之一。
下面是Hyper-V的几个特点:(1)良好的集成性:Hyper-V与Windows Server操作系统紧密集成,对Windows环境的支持非常好。
这使得Windows用户可以方便地实施虚拟化,并与其他Windows服务和工具进行无缝集成。
04云计算虚拟化技术_X86服务器虚拟化介绍
vApp — 自我描述的应用系统
可用性 安全性 可扩展性
应用程序 应用程序 应用程序
操作系统 操作系统 操作系统
虚拟应用程序
管理 云计算操作系统
内部 云计算
联盟和选择 标准
管理 云计算操作系统
外部 云计算
vNetwork 分布式交换机
临界点
2019
2019
2019 2019 2009 Physical Hosts
2019 2019 2019 Virtual Machines
2019
Source: IDC
4
主流虚拟化厂商
• VMware威睿
– VMware vSphere 5
• Microsoft微软
– Windows2019 R2 Hyper-V
p2v-legacy
内容
• X86虚拟化情况简介 • X86虚拟化基本功能
Vmware 虚拟化软件相关功能
Infrastructure Optimization
Business ContinuityDesktop Management
▪ VMware vCenter
▪ VMware vCenter
vStorage用 程序 操作 系统
应用 程序 操作 系统
ESX
虚拟磁盘 物理存储
10GB
20GB
2100GGBB
40GB
4100GGBB
100GB
3700GGBB
虚拟机磁盘仅占用正在使用的物理磁 盘空间
▪ 虚拟机始终可以看到完整的逻辑
磁盘大小
▪ 对资源分配和消耗的完整报告和
X86虚拟化技术
X86虚拟化技术虚拟化的三大特征在1974年Popek和Goldberg发表的虚拟化名篇《Formal Requirements for Virtualizable Third Generation Architectures》中定义了虚拟机(VM)可以被认为是物理机的一种高效隔离的复制,并指出虚拟机应具有的三大特征:1.一致性,一个运行于虚拟机上的程序,其行为应与直接运行于物理机上的同程序的行为基本一致,只允许有细微的差异,比如在系统时间方面。
2.可控性,VMM(虚拟化管理器)对系统资源有完全的控制能力和管理权限,包括资源的分配,监控和回收。
3.高效性,绝大多数的客户机指令应该由硬件直接执行而无需VMM的参与。
但是要满足这三点,并非易事,因为系统的指令集架构(ISA)需要相应地满足四个的条件:1.CPU能支持多个特权级,并且VM上面运行的指令能在底特权级(比如Ring 3)下正确执行。
2.非特权指令(允许用户直接使用的指令)的执行效果不依赖于CPU的特权级。
3.敏感指令(对系统资源配置有影响的指令)都是特权指令(不允许用户直接使用的指令)。
4.必须支持一种内存保护机制来保证多个虚拟机之间在内存方面的隔离,例如段保护或页保护。
为什么X86架构很难被虚拟化?虽然X86架构在PC市场占据绝对的垄断地位,但是由于其在初始设计时,并没有考虑到虚拟化需求,所以它对虚拟化的支持不够,特别是它没有满足上面四个条件里面的第三个,其因为是X86的ISA有17条敏感指令(比如LGDT等)不属于特权指令。
也就是说,当虚拟机执行到这些敏感指令的时候,很有可能出现错误,将会影响到整个机器的稳定。
更困难的是,上面所提出的问题只是X86虚拟化所需要面对的问题的一小部分而已,还有许许多多的问题还未涉及。
下面将分CPU虚拟化,内存虚拟化和I/O虚拟化这三部分来介绍全虚拟化,半虚拟化和硬件辅助虚拟化所采用的相关技术。
CPU虚拟化CPU虚拟化的目标是使虚拟机上的指令能被正常地执行,而且效率接近物理机。
云计算虚拟化技术-X86服务器虚拟化介绍
become unavailable
online in Protected Site
offline
站点 A
站点B
Recovery Site
Protected Site
SRM Supports bi-directional Site protection
转换工具:XenConvert和p2v-legacy
p2v-legacy选项支持Linux平台从物理机到虚拟机的转换XenConvert支持Windows平台从物理机到虚拟机的转换转换格式和类型:直接转换到XenServer并启动 VHD(微软虚拟机格式) XVA(可导入XenServer)
vSphere Storage Appliance — 共享存储
vStorage 精简部署
物理存储
虚拟磁盘
10GB
20GB
40GB
100GB
20GB
40GB
ESX
30GB
70GB
vStorage 链接克隆
多个虚拟机共享基本磁盘每个虚拟机都有各自的磁盘,并可以将数据写入磁盘所有的链接克隆都可以看到应用到基本磁盘的修补程序
为虚拟桌面基础架构节约 90% 的存储成本提高存储利用率简化修补过程
操作系统
应用程序
基本
磁盘
vApp — 自我描述的应用系统
vNetwork 分布式交换机
简化巨型计算机的网络配置
分布式电源管理
资源池
业务需求
下电
当整个群集需要资源减少时,整合所有负载到少数几台服务器上将不需要的服务器置于备用模式当负载增加时,DPM自动将处于备用状态的服务器唤醒
在确保服务级别的同时,最大限度降低了数据中心服务器的耗电量虚拟机没有中断或停机
浅谈三种服务器虚拟化技术的实现
浅谈三种服务器虚拟化技术的实现服务器虚拟化技术是指将一台物理服务器分割成多个虚拟服务器的过程。
这样可以最大程度地利用服务器资源,提高服务器的利用率和效率。
目前市场上主要有三种广泛应用的服务器虚拟化技术,分别为全虚拟化、半虚拟化和容器化。
下面将对这三种技术进行详细介绍。
1.全虚拟化技术:全虚拟化技术是一种将物理服务器完全抽象化的方式,虚拟机监控程序(Hypervisor)在硬件上运行,负责管理和分配硬件资源给虚拟机,并提供虚拟机的隔离和互相配合。
全虚拟化技术要求客户机操作系统能够直接运行在虚拟硬件上,不需要对操作系统进行任何修改。
常见的全虚拟化技术有VMware ESXi、Microsoft Hyper-V和KVM等。
全虚拟化技术的实现利用了Hypervisor将硬件资源(如CPU、内存、硬盘、网络等)进行抽象化,并在其上创建多个虚拟机。
每个虚拟机都具有自己独立的操作系统和应用软件,可以独立运行,互不干扰。
Hypervisor负责虚拟机的资源调度和隔离,确保虚拟机之间的互相独立性。
全虚拟化技术的优点是能够在不同的虚拟机之间提供高度隔离,适用于多种操作系统和应用程序的部署。
2.半虚拟化技术:半虚拟化技术是一种介于全虚拟化和容器化之间的技术。
与全虚拟化技术不同,半虚拟化技术需要对客户机操作系统进行修改以适应虚拟化环境。
在半虚拟化中,客户机操作系统和Hypervisor之间通信,共同管理和分配硬件资源。
常见的半虚拟化技术有Xen和Parallels Virtuozzo等。
半虚拟化技术的实现通过修改客户机操作系统的内核,使其能够理解和响应Hypervisor的指令。
这种修改让客户机操作系统能够与Hypervisor协同工作,提高系统性能和资源利用率。
与全虚拟化技术相比,半虚拟化技术的主要优点是更高的性能和更低的开销,但是它对操作系统的支持有一定的限制。
3.容器化技术:容器化技术是一种基于操作系统层面的虚拟化技术,它通过隔离操作系统资源来运行多个容器。
x86平台DSM群晖、ESXi虚拟化网络性能对比
x86平台DSM群晖、ESXi虚拟化⽹络性能对⽐本帖最后由 glk17 于 2017-3-9 16:43 编辑x86平台家庭⽹络中⼼折腾系列:【第⼀篇】抛砖引⽟--x86 mini主机虚拟NAS,下载机,软路由带宽叠加7层流控家庭⽹络中⼼需求分析,虚拟化⼀机多⽤实现⽅案,硬件选型,软路由系统选型【第⼆篇】x86平台DSM群晖、ESXi虚拟化⽹络性能对⽐本⽂,未完,测试补齐中物理机跑软路由,ESXi虚拟机跑软路由(含⽹卡直通),DSM群晖下phpVirtualBox虚拟机跑软路由,性能、效率对⽐测试【第三篇】2017路由器、⽹络该怎么玩——ESXi多条宽带接⼊多线策略路由ESXi虚拟机⽹卡直通跑软路由,⽹络功能实现及设置参考x86平台软路由的⽤法有很多譬如最简单的直接物理机做软路由或者跑DSM⿊群晖,再跑虚拟机运⾏软路由或者跑ESXi再跑虚拟机运⾏软路由或者跑Hyper-V Server再跑虚拟机运⾏软路由等等软路由家⽤,只要性能够⽤的前提下当然最好是功耗能多⼩就多⼩,体积能多⼩就多⼩功耗低了发热量⼩就可以⽤被动散热,适合放在弱电箱等狭⼩空间⾥能10W解决的话就不要⽤20W的机器,能5W解决的就不要⽤10W的机器所以,本帖想探究这⼏个问题:1,物理机跑软路由,什么样的硬件配置能跑满千兆NAT2,虚拟化后虚拟机跑软路由,什么样的硬件配置能跑满千兆NAT3,虚拟化后虚拟机跑⿊群晖,什么样的硬件配置能跑满千兆samba共享平台1:DELL OptiPlex 380CPU:Intel® Pentium® Processor E54002M Cache, 2.70 GHz, 800 MHz FSB 双核 45nm TDP 65W 内存⽀持双通道 DDR3 不⽀持VT-d/zh-cn/products/40478/Intel-Pentium-Processor-E5400-2M-Cache-2_70-GHz-800-MHz-FSB内存:DDR3 4G *1(内存插槽两个)存储:SATA 120G SSD*1⽹卡:BCM5721*1,Intel平台2:CPU:Intel® Celeron® Processor J19002M Cache, 2 GHz up to 2.42 GHz 4核4线程 22nm TDP 10W 内存⽀持双通道最⼤8G DDR3⽀持VT-x(不⽀持VT-d)/zh-cn/products/78867/Intel-Celeron-Processor-J1900-2M-Cache-up-to-2_42-GHz内存:DDR3L 4G *1(内存插槽⼀个)存储:mini SATA SSD 32G *1,eMMc4.5 32G *1(仅⽀持EFI启动,暂未使⽤),SATA 2.5⼨硬盘接⼝*1⽹卡:Intel® Ethernet Controller I211-AT *4平台3:Intel® Celeron® Processor 3215U2M Cache, 1.70 GHz 2核2线程 14nm TDP 15W(⽀持TDP-down 10W)内存⽀持双通道最⼤16G DDR3L ⽀持VT-x和VT-d/products/84810/Intel-Celeron-Processor-3215U-2M-Cache-1_70-GHz内存:DDR3L 8G *1(内存插槽⼀个)存储:mSATA SSD 24G *1,SATA 硬盘接⼝*1(含数据、供电⼆合⼀线)⽹卡:Intel® Ethernet Controller I211-AT *4测试环境:PC1: CLEVO W150ERWindows 10 Pro x64I5 3320M/8G DDR3 1600MHz/GT650M 1G DDR5/128G PM830/Realtek PCIe GBE Family Controller/BCM94360HMBPC2: FUJITSU FMVA15MJWindows 7 Ultimate x64I3 3110M/4G DDR3 1600MHz/20G SSD/Realtek PCIe GBE Family Controller/Atheros AR946XIxChariot Console 6.70IxChariot Endpoint 7.10Ultra_High_Performance_Throughput.scrLAN<->LAN:PC1->PC2 1 pairPC1->PC2 10 pairPC1<-PC2 1 pairPC1<-PC2 10 pair平台2 物理机 WAN<->LAN:LAN->WAN,PC1->PC2 1 pairLAN->WAN,PC1->PC2 10 pairLAN<-WAN,PC1<-PC2 1 pairLAN<-WAN,PC1<-PC2 10 pair平台2 ESXi6.5a WAN虚拟⽹卡<->LAN虚拟⽹卡:LAN->WAN,PC1->PC2 1 pairLAN->WAN,PC1->PC2 10 pairLAN<-WAN,PC1<-PC2 1 pairLAN<-WAN,PC1<-PC2 10 pair平台3 物理机 WAN<->LAN:LAN->WAN,PC1->PC2 1 pairLAN->WAN,PC1->PC2 10 pairLAN<-WAN,PC1<-PC2 1 pairLAN<-WAN,PC1<-PC2 10 pair平台3 ESXi6.5a WAN虚拟⽹卡<->LAN虚拟⽹卡:LAN->WAN,PC1->PC2 1 pairLAN->WAN,PC1->PC2 10 pairLAN<-WAN,PC1<-PC2 1 pairLAN<-WAN,PC1<-PC2 10 pair平台3 ESXi6.5a WAN直通物理⽹卡<->LAN直通物理⽹卡:LAN->WAN,PC1->PC2 1 pairLAN->WAN,PC1->PC2 10 pairLAN<-WAN,PC1<-PC2 1 pairLAN<-WAN,PC1<-PC2 10 pair数据汇总:注:前台CPU占⽤率为iKuai WEB界⾯系统状态显⽰的数值曲线因为显⽰的不是瞬时CPU占⽤率,⽽是某段时间内的平均CPU占⽤率,以及显⽰刷新率等等原因显⽰的值本⾝只能作为⼀个参考,这⾥取值的话也只能⼤概的选取某⼀点作为结果,可能会有⼀定误差从上图可以看出:1,虽然是跑TCP⼤包的情况,显然CPU还有⾜够的余量(这也是让它跑ESXi兼任其他功能的理论依据)但跑满千兆3215U这台只⽤了⼤概15%以内的CPU,J1900⽤了30%左右的CPU(这个可能是iKuai对J1900 ⽀持和和优化不⾜的问题,后续可能会跑其他软路由譬如碧海威、LEDE、ROS等来验证)2,ESXi下,虚拟⽹卡和⽹卡直通对于CPU的占⽤,差别⾮常明显如果要跑ESXi⼀机多⽤,显然应该尽量节省CPU留给其他应⽤,所以CPU是否⽀持VT-d硬件直通的意义在这⾥。
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等)不属于特权指令。
X86服务器虚拟化实施方案
X86服务器虚拟化实施方案XX银行PC服务器虚拟化实施方案XX银行信息技术部2020年5月目录1VMware实施打算 (4)1.1实施打算 (4)1.2实施系统拓扑图 (5)2实施规划 (6)2.1集群规划 (6)2.2硬件规划 (7)2.3网络规划 (7)2.4相关软件说明 (8)3安装ESXi server (8)3.1相关设置规划表 (8)3.2安装前预备工作 (8)3.3ESXi安装 (10)4安装VC (19)4.1前提条件 (19)4.2安装DB2 (20)4.3配置ODBC (29)4.4安装VC (32)4.5安装VClient (40)5创建数据中心 (43)5.1创建数据中心 (43)5.2配置主机 (43)5.2.1添加主机 (43)5.2.2配置时刻和NTP服务 (46)5.3配置license (48)5.3.1配置ESX License (48)5.3.2检查Vmware License (49)5.3.3配置vCenter Server License (50)5.4网络设置 (52)5.4.1VMware 网络介绍 (52)5.4.2治理网络设置 (52)5.4.3虚拟机网络设置 (55)5.4.4VMotion Kernel网络设置 (56)5.5储备设置 (59)5.5.1储备和交换机设置 (59)5.5.2添加储备配置 (59)5.5.3储备扩容配置 (63)5.6创建主机群集 (64)5.6.1配置主机通信 (64)5.6.2配置网络环境 (64)5.6.3配置集群 (65)5.6.4测试 (68)5.7创建只读用户appmon (69)6虚拟机部署 (71)6.1新建虚拟机 (71)6.1.1创建虚拟机 (71)6.1.2安装操作系统 (78)6.1.3设置虚拟机自动启动 (81)6.2模板部署虚拟机 (83)6.2.1创建模板 (83)6.2.2模板部署虚拟机 (86)6.2.3自定义规则 (88)6.3克隆部署虚拟机 (95)7converter 4.3软件使用 (95)7.1VMware converter standalone软件安装 (96)7.2P2V 物理服务器至虚拟化架构 (101)7.2.1热P2V Windows 2003物理服务器 (102)7.2.2热P2V LINUX物理服务器 (112)7.2.3冷P2V Windows 2003物理服务器 (122)7.2.4冷P2V Linux物理服务器 (134)1VMware实施打算1.1实施打算VMware 的实施与传统系统的搭建不同,包括基础环境的搭建和虚拟机的实施;同时,VMware内置了虚拟机交换机和储备多路径软件,能够灵活实现虚拟化系统中网络环境和储备环境的共享和隔离。
x86服务器虚拟化的三种技术
x86服务器虚拟化的三种技术
毛文波
【期刊名称】《金融科技时代》
【年(卷),期】2009(017)007
【摘要】云计算、SaaS等基于服务的计算模式最近异常灼热。
服务器虚拟化技术尤其是对低端廉价x86服务器的虚拟化已被公认为是实现这些计算模式的关键技术,对于能否廉价地提供云计算、SaaS等服务至关重要。
在x86服务器虚拟化方法上有三个知名的技术流派:Para-Virtualization、Full—Virtualization和Hardware—Assisted—Virtualization,本文谨对这三种技术作简要介绍。
【总页数】2页(P81,84)
【作者】毛文波
【作者单位】EMC中国实验室
【正文语种】中文
【中图分类】TP3
【相关文献】
1.学校应用x86服务器虚拟化技术 [J], 欧阳平凡
2.业界十大热门x86服务器虚拟化方案四维度分析评估 [J], 赵辉;程青松;董晓军;周顺利
3.x86服务器虚拟化平台性能测试 [J], 张寓琛;张小芳
4.VMware被评为x86服务器虚拟化基础架构2016魔力象限的领导者 [J],
5.再谈X86服务器虚拟化的三种技术 [J], 毛文波
因版权原因,仅展示原文概要,查看原文内容请购买。
x86硬件辅助虚拟化之迷
x86硬件辅助虚拟化之迷x86硬件辅助虚拟化之迷hjcbug《微型计算机》2010年5月上2010-06-04x86硬件辅助CPU虚拟化的过程注:首先需要明确一点,英特尔的CPU虚拟化采用的技术别称为VT-x,但VT-x中并不仅仅只包含CPU虚拟化,还包括中断虚拟化和内存虚拟化等内容,而AMD在AMD-V在官方资料中也是把CPU、内存和中断等虚拟化技术全部放在了SVM技术规范中进行统一讲解的。
传统的IA32处理器架构并不是十分可靠的虚拟化架构,为了解决这个问题,英特尔通过VT-x技术对原有架构进行了扩展补充,其核心操作模式示意图如图11。
图11 支持VT-x技术的虚拟化架构VT-x技术引入了两种专为虚拟化打造的操作模式,称为根操作模式(VMX Root Operation)和非根操作模式(VMX Non-Root Operation),其中VMM运行在根操作模式下,而客户操作系统则运行在非根操作模式下,每个模式都存在Ring0-3四个特权级别,所以在VT-x中,对特权级别进行描述时必须说明是在根模式还是在非根模式下。
对照前面我们讲解的软件完全虚拟化时的示意图我们不难发现,客户操作系统(Guest OS)所运行的特权级别发生了变化,由Ring1变成了Ring0,而原本工作在Ring0的VMM则被注明是工作在根操作模式下的Ring0上(有一些文档中称之为Ring-1)。
相信仔细阅读上期虚拟化文章的读者朋友,不难理解英特尔为什么要制造出两个新的操作模式来,因为客户操作系统重新回到了Ring0上(当然这里是非根模式下的),而且经过英特尔对相关指令的重新设计,使得原本不能通过先陷入后模拟的方式执行的指令都可以顺利执行,而在根模式下,所有指令的执行和传统IA-32相比不会有任何变化,从而保证了原有软件和虚拟环境的正常运转。
图12 英特尔VCPU创建,运行和退出示意图在硬件辅助CPU虚拟化中,陷入的概念已经被VM-Exit操作取代,它意味着从非根操作模式切换到根操作模式,对应的从根操作模式切换回非根操作模式被称为VMEntry。
- 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虚拟化和管理为设备管理带来了新的特性和功能,让设备的管理更容易。