浅谈虚拟化工作原理

来源 :网络与信息 | 被引量 : 0次 | 上传用户:meng010
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  虚拟化概念很早就已出现。简单来说,虚拟化就是使用某些程序,并使其看起来类似于其他程序的过程。
  将这个概念应用到计算机系统中可以让不同用户看到不同的单个系统(例如:一台计算机可以同时运行Linux和Microsoft Win-dows)。这通常称为全虚拟化(full virtualization)。
  虚拟化也可以使用更加复杂的格式,其中单个计算机看上去具有多个架构(对于一个用户来说,它是一个标准的X86平台:对于另外一个用户来说,它是IBM Power PC平台)。这种虚拟化形式通常被称为硬件仿真。
  最后,更加简单的一种虚拟化是操作系统虚拟化,其中一台计算机可以运行相同类型的多个操作系统。这种虚拟化可以将一个操作系统的多个服务器隔离开来(这意味着全都必须使用相同类型和版本的操作系统)。
    一、虚拟化的工作原理
    虚拟化解决方案的底部是要进行虚拟化的机器。这台机器可能直接支持虚拟化,也可能不会直接支持虚拟化,那么就需要系统管理程序层的支持。系统管理程序,或称为VMM,可以看作是平台硬件和操作系统的抽象化。在某些情况中,这个系统管理程序就是一个操作系统。此时,它就称为主机操作系统。
  系统管理程序之上是客户机操作系统,也称为虚拟机(vM)。这些VM都是一些相互隔离的操作系统,将底层硬件平台视为自己所有。但是实际上,是系统管理程序为它们制造了这种假象。
  目前使用虚拟化解决方案的问题是:并非所有硬件都可以很好地支持虚拟化。较老的x86处理器根据执行范围对特定指令会产生不同结果。这就产生了一个问题,因为系统管理程序应该只能在一个最受保护的范围中执行。由于这个原因,诸如VMWare之类的虚拟化解决方案会提前扫描要执行的代码,从而将这些指令替换为一些陷阱指令(trap tnstruction),这样系统管理程序就可以正确地处理它们。Xen可以支持一种协作的虚拟化方法,它不需要任何修改,因为客户机知道自己正在进行虚拟化,并已经进行了修改。KVM会简单地忽略这个问题,如果您希望进行虚拟化,就强制必须在更新的硬件上运行。
    二、虚拟化的类型
    实现虚拟化的方法不止一种。实际上,有几种方法都可以通过不同层次的抽象来实现相同的结果。本文将介绍Linux中常用的几种虚拟化方法,以及它们相应的优缺点。业界有时会使用不同的术语来描述相同的虚拟化方法。本文中使用的是最常用的术语,同时给出了其他术语以供参考。  1 硬件仿真  毫无疑问,最复杂的虚拟化实现技术就是硬件仿真。在这种方法中,可以在宿主系统上创建一个硬件VM来仿真所想要的硬件
  正如您所能预见的一样,使用硬件仿真的主要问题是速度会非常慢。由于每条指令都必须在底层硬件上进行仿真,因此速度减慢100倍的情况也并不稀奇。若要实现高度保真的仿真,包括周期精度、所仿真的CPU管道以及缓存行为,实际速度差距甚至可能会达到1000倍之多。
  硬件仿真也有自己的优点。例如:使用硬件仿真,您可以在一个ARM处理器主机上运行为PowerPC设计的操作系统,而不需要任何修改。您甚至可以运行多个虚拟机,每个虚拟机仿真一个不同的处理器。  2 完全虚拟化  完全虚拟化(full virtualization),也称为原始虚拟化,是另外一种虚拟化方法。这种模型使用一个虚拟机,它在客户操作系统和原始硬件之间进行协调。“协调”在这里是一个关键,因为VMM在客户操作系统和裸硬件之间提供协调。特定受保护的指令必须被捕获下来并在hypervisor中进行处理,因为这些底层硬件并不由操作系统所拥有。而是由操作系统通过hypervisor共享。
  虽然完全虚拟化的速度比硬件仿真的速度要快,但是其性能要低于裸硬件,因为中间经过了hypervisor的协调过程。完全虚拟化的最大优点是操作系统无需任何修改就可以直接运行。唯一的限制是操作系统必须要支持底层硬件(例如PowerPC)。
  3 超虚拟化
  超虚拟化(paravirtualizatlon)是另外一种流行的虚拟化技术,它与完全虚拟化有一些类似。这种方法使用了一个hypervisor来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中。这种方法不再需要重新编译或捕获特权指令,因为操作系统本身在虚拟化进程中会相互紧密协作。
  正如前面介绍的一样,超虚拟化技术需要为hypervisor修改客户操作系统,这是它的一个缺点。但是超虚拟化提供了与未经虚拟化的系统相接近的性能。与完全虚拟化类似,超虚拟化技术可以同时支持多个不同的操作系统。  4 操作系统级的虚拟化  我们要介绍的最后一种技术是操作系统级的虚拟化,它使用的技术与前面所介绍的有所不同。这种技术在操作系统本身之上实现服务器的虚拟化。这种方法支持单个操作系统,并可以将独立的服务器相互简单地隔离开来。
  操作系统级的虚拟化要求对操作系统的内核进行一些修改,但是其优点是可以获得原始性能。
其他文献
当我们对于一件事情有多种方案的时候.一般都是进行投票来决定最终结果的。如果投票者都不在一个地方的话.那可以利用网络来进行投票,可是怎么样来制作网络投票呢?其实我们常用的Googledocs就可以来制作.而且還可以把制作出来的投票内容发送到邮箱、博客和你的网站中。    注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”
Google Earth以其强大而诱人的虚拟地球信息服务功能吸引着众多用户的同时,也不可避免地对传统信息安全观带来了巨大冲击,应当引起高度关注。本文对Google Earth的使用与信息安全防范问题进行了初步思考。
深度营销概念的提出    互联网已经将世界变成了一个真正意义上的地球村。世界上任何入网的企业和个人,正在通过网络进行资源共享、信息交流、电子邮件的互发等各种以前从来没有过的活动。网络已经深刻地改变了我们的生活方式和思维方式,并且能够继续改变下去。企业面临的外部环境,从来没有像今天这样发生着如此大的变化。网络时代已经来临。  在营销观念的发展史上,曾依次出现过生产观念、产品观念、推销观念、营销观念、
戴尔XPS M1210戴尔XPS M1210是XPS系列中最轻薄的机型,它采用了21英寸WXGA屏幕,分辨率为1280×800像素,M1210的外形尺寸为297.2×221×28.2mm,重为1.98kg,内置130万像
当前,网络管理者必须全方位地管理局域网,这其中就包括如何针对不同类型的用户制定不同组别的策略。本文模拟了在局域网中的总裁、网络使用率高、网络使用率低、客人四类角色,并
PCI咨询服务公司一直致力于监测全球软包装市场,PCI咨询服务公司新近发布的报告指出,印度镀铝产业涉及三个层次的软包装供应链:薄膜挤出商镀铝分厂;需要采购薄膜和纸张的独立专业
相信大家对于BT并不会陌生。它是Bit-Torrent,即比特流的简写。其本质是一个网络文件传输协议,能够实现点对点文件分享的技术。而且其特点是下载的人越多,速度越快。BT下戴打开