i社区用户: 密码:
搜索:
首页| 资讯| 信息化| 视频| 专题| 创业| 技术天地| 企业博客| 职场| 周报全文| 方案中心 |电子杂志
商城| 市场会展| Blog| i社区| 社区联盟| RSS| 直播 | 发行| wiki |i| 下载| 英才招聘|CIO文库
IT两会 | 互联网年会
产品中心| 笔记本|台式机| DIY|数码| 服务器|网络通信| 手机|软件|显示器|信息安全|存储|组网| 动漫
 服务器专区  业界资讯 | 厂商专区 | 产品导购 | 技术与市场 | 应用技巧 | 配件 | 方案案例 | 网络存储    
 
 
浅谈虚拟化工作原理
 
 
 
 
2008-04-23 12:40:58
 
  IXPUB博客  
  分页标题

虚拟化概念很早就已出现。简单来说,虚拟化就是使用某些程序,并使其看起来类似于其他程序的过程。

将这个概念应用到计算机系统中可以让不同用户看到
不同的单个系统(例如,一台计算机可以同时运行Linux 和 Microsoft? Windows?)。这通常称为全虚拟化(full virtualization)。

虚拟化也可以使用更加复杂的格式,其中单个计算机看上去具有多个架构(对于一个用户来说,它是一个标准的 x86 平台;对于另外一个用户来说,它是 IBM Power PC? 平台)。这种虚拟化形式通常被称为 硬件仿真。

最后,更加简单的一种虚拟化是操作系统虚拟化,其中一台计算机可以运行相同类型的多个操作系统。这种虚拟化可以将一个操作系统的多个服务器隔离开来(这意味着全都必须使用相同类型和版本的操作系统)。

虚拟化的工作原理

虚拟化解决方案的底部是要进行虚拟化的机器。这台机器可能直接支持虚拟化,也可能不会直接支持虚拟化;那么就需要系统管理程序 层的支持。系统管理程序,或称为 VMM,可以看作是平台硬件和操作系统的抽象化。在某些情况中,这个系统管理程序就是一个操作系统;此时,它就称为主机操作系统.

系统管理程序之上是客户机操作系统,也称为虚拟机(VM)。这些 VM 都是一些相互隔离的操作系统,将底层硬件平台视为自己所有。但是实际上,是系统管理程序为它们制造了这种假象。

目前使用虚拟化解决方案的问题是,并非所有硬件都可以很好地支持虚拟化。较老的 x86 处理器根据执行范围对特定指令会产生不同结果。这就产生了一个问题,因为系统管理程序应该只能在一个最受保护的范围中执行。由于这个原因,诸如 VMWare 之类的虚拟化解决方案会提前扫描要执行的代码,从而将这些指令替换为一些陷阱指令(trap instruction),这样系统管理程序就可以正确地处理它们。Xen 可以支持一种协作的虚拟化方法,它不需要任何修改,因为客户机知道自己正在进行虚拟化,并已经进行了修改。KVM 会简单地忽略这个问题,如果您希望进行虚拟化,就强制必须在更新的硬件上运行。

虚拟化的类型

实现虚拟化的方法不止一种。实际上,有几种方法都可以通过不同层次的抽象来实现相同的结果。本节将介绍 Linux 中常用的 3 种虚拟化方法,以及它们相应的优缺点。业界有时会使用不同的术语来描述相同的虚拟化方法。本文中使用的是最常用的术语,同时给出了其他术语以供参考。

硬件仿真

毫无疑问,最复杂的虚拟化实现技术就是硬件仿真。在这种方法中,可以在宿主系统上创建一个硬件 VM 来仿真所想要的硬件

正如您所能预见的一样,使用硬件仿真的主要问题是速度会非常慢。由于每条指令都必须在底层硬件上进行仿真,因此速度减慢 100 倍的情况也并不稀奇。若要实现高度保真的仿真,包括周期精度、所仿真的 CPU 管道以及缓存行为,实际速度差距甚至可能会达到 1000 倍之多。

硬件仿真也有自己的优点。例如,使用硬件仿真,您可以在一个 ARM 处理器主机上运行为 PowerPC? 设计的操作系统,而不需要任何修改。您甚至可以运行多个虚拟机,每个虚拟器仿真一个不同的处理器。

完全虚拟化

完全虚拟化(full virtualization),也称为原始虚拟化,是另外一种虚拟化方法。这种模型使用一个虚拟机,它在客户操作系统和原始硬件之间进行协调(参见图 3)。"协调"在这里是一个关键,因为 VMM 在客户操作系统和裸硬件之间提供协调。特定受保护的指令必须被捕获下来并在 hypervisor 中进行处理,因为这些底层硬件并不由操作系统所拥有,而是由操作系统通过 hypervisor 共享。

虽然完全虚拟化的速度比硬件仿真的速度要快,但是其性能要低于裸硬件,因为中间经过了 hypervisor 的协调过程。完全虚拟化的最大优点是操作系统无需任何修改就可以直接运行。惟一的限制是操作系统必须要支持底层硬件(例如 PowerPC)。

超虚拟化

超虚拟化(paravirtualization)是另外一种流行的虚拟化技术,它与完全虚拟化有一些类似。这种方法使用了一个 hypervisor 来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中(参见图 4)。这种方法不再需要重新编译或捕获特权指令,因为操作系统本身在虚拟化进程中会相互紧密协作。

正如前面介绍的一样,超虚拟化技术需要为 hypervisor 修改客户操作系统,这是它的一个缺点。但是超虚拟化提供了与未经虚拟化的系统相接近的性能。与完全虚拟化类似,超虚拟化技术可以同时支持多个不同的操作系统。

操作系统级的虚拟化

我们要介绍的最后一种技术是操作系统级的虚拟化,它使用的技术与前面所介绍的有所不同。这种技术在操作系统本身之上实现服务器的虚拟化。这种方法支持单个操作系统,并可以将独立的服务器相互简单地隔离开来。

操作系统级的虚拟化要求对操作系统的内核进行一些修改,但是其优点是可以获得原始性能。

 
   
  (网页编辑:吴威  
  搜索相关内容 虚拟化   工作原理    
   
   
     
      如果您对“浅谈虚拟化工作原理”有任何疑问要咨询,或者您对我们专家的解答有任何疑义,请您点击以下的链接提交意向单,我们的编辑和信息化专家将会很快为您做出回答,您提供的信息经过审核后将有机会出现在我们的网页上。
专家介绍
 搜索相关内容
 精彩文章
 
对话基辛格:多核应用走向成熟尚需时日
存储管理工具受中小企业青睐
面向中小企业的外部存储系统的挑战
应用多核CPU推进服务器虚拟化性能
SNW2007:“绿色存储”引起关注
可插式数据存储引擎:MySQL走向企业级的保障
购买博科UCS2900产品 IntelliPath踏上新征程
计世周报:微软Vista有多安全?
 服务器产品查询
选择品牌:
处理器类型:
最大处理器数量:
 
 
相关文章
  发表评论  您的姓名   您的Email   发布  
   
关于我们 | 客服热线 | 广告服务 | 招聘信息 | 法律声明 | 投稿指南 | 联系方式 
Copyright(C) ccw.com.cn,All rights reserved
中国计算机世界出版服务公司内容版权所有
京ICP证010182
Google Analytics 代码: