半虚拟化相关资料

上一篇 / 下一篇  2010-12-08 22:52:06 / 个人分类:学习日志

虚拟化技术是虚拟机得以实现的根本,服务器虚拟化技术逐渐成为人们关注的热点技术。

1、不同途径的虚拟化技术

根据两种常见的软件仿真虚拟化途径,可将虚拟化技术分为以下两种:完全虚拟化FVFull-Vritralization)和半虚拟化PVPara-Vritralization),这两种虚拟化技术主要以guest OS的硬件仿真程度做区分。

1)、完全虚拟化

FV是一般较常看到的作法,所有的guest OS完全不会看到实际的硬件为何,只能使用由Supervisor所提供的所有虚拟硬件

FV的安装上,因为FV模式是以完全仿真的方式进行,所以CPU必须要特别将此功能加入到CPU的核心中,因此,CPU是有特殊需求的。在IntelAMD中针对Virtual Machine所加入的功能名称不同,分别为Intel VTAMD-V

2)、半虚拟化

通过局部仿真的方式,让操作系统可以直接使用到硬件中的CPU、内存等,而不需要通过其他任何虚拟技术软件做仿真的操作虚拟机操作的时候,直接使用到底层的硬件,而不是每个OS都要通过

Hypervisor的接口,通过这种,性能上就可大为提高。

PV的安装,对CPU来说,没有特殊的要求,基本上都可以使用。

=============================================================

全虚拟化和半虚拟化,哪一种更适合你?

找到符合企业需求的虚拟化技术取决于企业应用环境的需要和每种虚拟化体系架构的特性。很多情况下企业会发现单一的方法很难满足应用的需求,这时就需要多重虚拟化解决方案的帮助。
硬件和操作系统作为两种最基础的服务器虚拟化体系架构都是根据不同的工作负载和应用环境来设计的。一些应用环境更适用于操作系统虚拟化,特别是那些能满足高性能计算或者服务器整合需求的操作系统。而那些支持多重操作系统的应用环境可能在硬件系统虚拟化中表现的更好。
硬件虚拟化:
这种方式是对包括硬件系统到软件堆栈等整个服务器的全面虚拟化。这种体系架构能解决在单独的物理服务器上不同计算环境整合相关的很多问题
操作系统虚拟化:
操作系统虚拟化位于操作系统的顶部。这种方式能极大的提升许多计算环境的服务器整合率和资源利用率。当用户使用虚拟化产品和解决方案时,操作系统虚拟化都与层相关。层指的是虚拟化应用的级别。以应用程序为基础的硬件虚拟化解决方案包括对现有操作系统处理的层和直接在硬件顶部运行的层。这就是大家所熟悉的"裸机"。
将物理硬件系统与管理程序相关联使在单独的物理主机上支持多重操作系统成为可能。这种单独的虚拟机能彼此完全独立,无需依赖其他系统就能自行处理工作负载。
虚拟机的完全独立就是硬件虚拟化和复杂性管理最大的优势所在。由于虚拟机是相对独立的单元,他们就必须在物理机之外进行有效的管理。补丁程序,软件管理,资源分配和安全性也会随着虚拟机数量的增加相应的进行升级。而随着应用环境的升级会导致虚拟机的蔓延。由于每台虚拟机需要单独管理,所以与物理机相比虚拟机管理也需要付出同样的努力。
对于一些操作系统虚拟化产品,服务器模板是减少与操作系统虚拟化环境升级相关的整体管理成本的另一大优势。采用这项技术,服务器模板是支持原始应用软件或操作系统的各项联接的集合体。在主机与盒子之间的联接意味着主机上的任何文件的升级都具备直接影响盒子内部的程序的能力。对主机的补丁升级能立即对所有盒子进行关联补丁升级。对主机增加应用软件和创建相应的模块能让选择的盒子里的应用软件快速升级和配置更加简单。
多重解决方案是最佳之道
采用一种解决方案可能并非上上之选,因为不同的虚拟化解决方案处理不同类型的工作负载表现也不尽相同。选择适合计算环境的正确技术是获取最佳结果的关键。
某些应用环境可能需要不同类型的操作系统在支持网络服务方面共同协作。举例来说,采用Linux操作系统的数据库需要在Windows版本的网络服务器上运行。当服务器在单一虚拟机上运行时网络服务的性能表现的更好。在这种情况下采用诸如VMware Virtual Infrastructure或Parallels Server这种硬件虚拟机解决方案是最好的方式。
再举例来说,不同的应用环境可能只支持单一的操作系统。在这种环境下服务器的独立配置可能都比较相似。比如代码的发展过程需要多重测试环境或者主机桌面系统应用环境。这些环境需要高整合率而且易于管理。这种情况下采用诸如Parallels Virtuozzo Containers这样的操作系统虚拟化可能是最佳选择。这两种技术能相互补充。
尽管类似又不尽相同
对于硬件和操作系统来说,一些用于性能管理的系统设置都非常类似。操作系统虚拟化和硬件虚拟化解决方案两者都具备将物理资源分配给虚拟机的能力。虚拟机能够按照需求获取相应数量的内存,处理器,网络和存储资源。然而这两种虚拟化技术之间的资源分配又是非常不同的。
对于硬件虚拟化而言,与硬件虚拟化体系架构相关的局限性是指资源要被重新调配才分配给虚拟机。而对于操作系统虚拟化来说,就没有任何限制。任何主机上提供的硬件资源都能供虚拟机使用。这样就能实现可用资源的最优化和最大化的发掘资源利用的高效性。
另外,使用操作系统虚拟化的资源不会对虚拟机产生影响。而使用硬件虚拟化的方式要实现同样的性能经常会需要重启虚拟机,根据对应用环境的支持需求来加强动态调配资源的能力。
操作系统虚拟化高水平的资源最优化优势尤其适用于诸如电子邮件系统和数据库等需要处理繁复工作负载的系统使用。
硬件虚拟化有一个在数据中心范围内对所有物理主机上的所有虚拟机进行集中化管理的界面。这种单一的标准化界面允许虚拟机进行统一管理,不管他们在那个主机上运行或者运行的是何种操作系统。这种界面的实质就是对虚拟机进行计划和脚本管理的能力。
操作系统虚拟化也有与硬件虚拟化类似的功能,也可以直接对每台虚拟机的管理程序进行内部管理。最重要的是在应用操作系统虚拟化时,只需对一种操作系统进行升级和管理。
虚拟化不仅是一种趋势
虚拟化的趋势是对可用资源更有效的利用。计算环境的需求将决定何种虚拟化解决方案是最合适的方法。
硬件虚拟化可以与单一平台上的多重操作系统相结合。操作系统虚拟化与高水平的整合和管理相结合成为平台的组成部分。这两种方式都能成功的支持虚拟机和多种类型的操作系统,包括微软公司的Windows操作系统和不同版本的Linux操作系统。
最做出选择之前最重要的一点就是充分理解每种虚拟化概念的功能和特性,他们能为你的虚拟化部署和整合项目提供何种解决方案。面对多种选择,总有一款适合你。
=============================================================
我记得还是半虚拟化效率高。是这样的,虚拟化,我觉得楼主分的有问题,不考虑模拟器的话,虚拟化分为有硬件支持(主要是CPU)和没有硬件支持的虚拟化,最初标准的x86架构是不支持虚拟化的,VMWare等虚拟机的做法是在虚拟机执行的时候,预先取将要执行的指令,然后把其中的一些特权指令进行替换,所以效率底。而Xen等采用的半虚拟化则是在内核中进行修改,不去直接调用特权指令,所以效率高,我记得有90%的效率?

后来Intel和AMD在X86架构的CPU中各自加入了对虚拟化的支持,分别是VT和SVM。在CPU支持下,CPU就会有两种模式,Root和Non-root。Hypervisor运行在Root而虚拟机运行在Non-Root模式。在这种情况下,虚拟机可以调用特权指令,但是会转为Root模式处理,比以前来说不用软件去替换那么多的指令,所以效率就高一些。现在Xen、VMWare等都支持这种情况。

但是我们还是的注意,这里只是CPU支持了虚拟化,很多其他硬件设备还是不支持硬件虚拟化,所以还是有一部分的硬件需要通过软件进行模拟。所以效率还是不如半虚拟化高。
================================================================
 

TAG:

werm520的个人空间 引用 删除 werm520   /   2010-12-15 13:18:09
http://blog.csdn.net/namesliu/archive/2010/11/30/6044295.aspx
werm520的个人空间 引用 删除 werm520   /   2010-12-09 13:45:46
http://blog.csdn.net/zzxxbb112/archive/2010/12/08/6062864.aspx
QTP相关BLOG
werm520的个人空间 引用 删除 werm520   /   2010-12-09 11:50:27
http://bbs.chinaunix.net/thread-1825165-1-1.html
python学习指南
werm520的个人空间 引用 删除 werm520   /   2010-12-09 10:59:45
http://blog.csdn.net/quicknet/archive/2010/11/24/6032674.aspx
测试BLOG
 

评分:0

我来说两句

Open Toolbar