落在实处虚拟化技术应用
2009-05-13 01:18:51来源:未知 阅读 ()
早在大型机时代,IBM的VM/370就采用虚拟化技术来划分其硬件资源,提供给多用户使用。现在,x86服务器已成为企业应用的主流,探索x86服务器的虚拟化技术成为各个企业和研究机构的重要课题。
技术篇不同层次的虚拟化技术近年来,服务器虚拟化技术逐渐成为人们关注的热点技术。伴随着多年来人们对虚拟化技术的研究,形成了不同层次的虚拟化技术,其中有ISA层次、硬件抽象层、操作系统层、LibraryAPI层,以及编程语言层的虚拟化技术。
1.ISA层的虚拟化技术ISA层的虚拟化技术,通常采用软件模拟指令集的方式实现。一个典型的计算机系统由处理器、内存、总线、硬盘控制器、时钟、各种I/O设备组成。ISA层的虚拟化软件的实现方式是截获客户操作系统发出的指令,并把它们“翻译”成Host平台上的可用指令进行执行(包括处理器内部指令和IO指令)。由于这种指令的模拟方式,ISA层的虚拟化技术可以完全模拟一台真实机器所能做的一切。这种实现方式的好处在于,分离了操作系统和硬件平台的紧绑定关系。
这方面具有代表性的系统有很多。Bochs是用C++语言编写的开源的x86平台的PC模拟器,可以方便地在多种平台上模拟IA32PC系统。它能够模拟多种版本的x86系统,如386、486、Pentium、PentiumPro、SSE、SSE2等指令。Bochs解释客户系统从开机到关机的全部指令,模拟了Intelx86CPU、BIOS以及PC设备。因此,在客户操作系统看来,就好像是运行在一台真实的机器上一样。虽然Bochs系统的性能问题,使其很难有广泛的应用,但它也在某些方面有着重要的应用,如在非x86平台上运行Windows系统,进行新开发的操作系统的debug工作,进行老式x86系统的兼容性测试等。
QEMU是一个采用动态翻译技术的快速的模拟器,它支持两种工作模式:用户空间模拟和全系统模拟。在用户空间模式下,QEMU可以在物理CPU上执行为其他CPU编译的程序。在全系统模拟的模式下,它支持模拟x86、arm、PowerPC、Sparc等结构。它可以快速地把客户操作系统的指令动态地翻译成本地指令进行执行。其动态翻译过程的基本思想是把每条指令分解成少量的简单指令。每条简单指令由一段C代码实现,通过动态代码生成器把这些简单指令的目标文件连接起来,构建指定的功能。它把基本块作为翻译的基本单位,并采用16M的指令翻译Cache.2.硬件抽象层的虚拟化技术硬件抽象层的虚拟化技术,利用客户系统环境和Host平台的相似性来减少理解客户系统指令的延迟。目前,大多数的商业服务器虚拟化产品,都是通过使用这种技术来实现高效、实用的虚拟化系统。虚拟化软件进行从虚拟资源到物理资源的映射,并利用本地物理平台进行实际的计算。当虚拟系统访问关键的系统资源时,虚拟化软件接管其请求,并进行相应的处理。为了使这种机制能够有效地工作,虚拟机必须能够trap每条特权指令,并使得VMM接管进行相关的处理。这是因为,在同一个物理平台上有多个客户系统存在,这些客户系统发出特权指令希望CPU进行处理。这时把这些指令trap到VMM进行处理,以免系统发生异常或冲突。此时,VMM模拟特权指令的执行,并返回处理结果给指定的客户虚拟系统,保证了各个客户虚拟系统的有效隔离。然而,x86平台并不是完全支持虚拟化的,因为某些x86特权指令在特权级不够的情况下执行,并不能方便地产生trap.对这一问题的解决方案有:一种是指令扫描结合动态指令修改的软件技术,有许多商业的虚拟化产品采用了这种方案;另一种方案是修改x86CPU,使它支持虚拟化,也就是Intel的Vanderpool技术和AMD的Pacifica技术的目标。此种虚拟化技术的代表产品是EMC公司的VMware.Microsoft的VirtualServer系列产品。Microsoft的VirtualServer2005来源于2003年收购Connectix的虚拟化技术。这是一种类似于VMwareWorkstation结构的虚拟化产品。除了虚拟化的功能外,还有两种特色的功能:undo磁盘功能可以使用户方便地undo客户虚拟系统之前对磁盘的操作,有利于某些情况下的数据恢复;另一种特色技术是二进制翻译,它可以在基于Macintosh的机器上提供x86的虚拟机。但VirtualServer产品其对操作系统种类的支持不是很广泛,主要支持Windows和Linux客户虚拟系统。Linux系统还不能做为VirtualServer的Host平台。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:虚拟技术的现状与红帽集成情况
下一篇:Xen和虚拟化技术学习指南
- Linux系统如何设置开机自动运行脚本? 2020-06-11
- RAID 1 软件实现(Linux 系统) 2020-06-10
- Linux系统介绍 2020-06-02
- 【原创】Linux中断子系统(一)-中断控制器及驱动分析 2020-05-31
- 微软:悬赏10万美金破解 Linux 系统 2020-05-30
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash