操作系统虚拟化

时间:2022-09-18 04:23:32

操作系统虚拟化

操作系统虚拟化目前还是处于非主流状态。2006年11月8日,权威研究机构Gartner了一份服务器技术发展的研究报告,其中有一个不同寻常的预测:到2010年,共享的操作系统虚拟化将成为主流虚拟化技术。文中提到的服务器操作系统虚拟化厂商包括:sunSolaris Containers、SWsoftVirtuozzo,以及IBM z/OS和HP。

操作系统虚拟化强调的是在单一操作系统内核实例的基础上实现虚拟化,这一点是它与虚拟机技术最本质的不同。虚拟机技术,无论是VMware、Hypervisor,还是ParaVirtualization并行虚拟化,都是在多个虚拟的硬件层上安装多个Guest操作系统,然后再运行应用程序。

比较两台分别采用操作系统虚拟化和虚拟机技术的服务器,用户看到的最明显的差异就是操作系统实例数量的不同。有趣的是,这一点核心差异同时构成了操作系统虚拟化的最大优势和最大劣势。

操作系统虚拟化的优劣

由于只有一个操作系统内核,少了虚拟机和Guest操作系统两个资源消耗层次,操作系统虚拟化的运行效率、理论最大密度和运行在虚拟环境中的应用性能,都天生超过虚拟机技术,减少了操作系统实例的数量,也意味着在安装部署、补丁升级、备份迁移的数据量和效率等管理特性上的优势。

相比于其他虚拟化技术,操作系统的虚拟化优势包括,低管理成本:管理员无须为每一一项应用安装和维护一个单独的操作系统实例。

快速响应/更佳的性能:运行在虚拟操作系统的实例可以快速启动和停止,因为启动一项任务无须起动整个操作系统。

较高的利用率:每个虚拟操作系统实例相对较低的资源占用允许在单个服务器上运行更多应用程序。

有限的系统软件许可证成本:当包含许可证费用的操作系统被虚拟化时,用户无需为额外应用实例支付更多的许可证费用。

精细的资源控制:因为操作系统虚拟化就本质而言是资源管理的变种,通过额外的方式隔离每种应用程序,它拥有和传统的资源管理软件一样的精细控制粒度。

但是,虚拟操作系统也有自己的劣势。因为操作系统虚拟化只能是同一种操作系统的划分和衍生,无法支持异种操作系统并存于同一个物理服务器之上,同时由于虚拟环境不完全等同于一份完整的操作系统,某些需要直接访问硬件层(无论是虚拟的还是物理的)的应用无法在操作系统虚拟化环境中运行。

操作系统虚拟化技术并不是完美的,也无法全面替代虚拟机技术。在用户需要一个相对完整的虚拟环境进行研发,或整合多种操作系统,或整合多个处于不同操作系统版本和补丁级别的传统应用于同一服务器时,只有虚拟机技术能够充分满足这种需求。

从这种意义上说,虚拟机技术是以牺牲效率为代价换取了更大的灵活性。企业在考察虚拟化技术的时候,通常都需要进行完整的测试,才能为企业内部各种不同的应用找到最适合它的虚拟化部署方案。

在实际的应用中,不是每一个操作系统都支持OS虚拟化,也不是每一个虚拟化产品都可以用来虚拟化任意的操作系统环境。下面我将就Windows和Linux两个主流操作系统各自的虚拟化技术和相关的解决方案做介绍。

Windows平台虚拟化应用

Window Server 2003是微软早期支持虚拟化技术的操作,用户可以通过VMware实现其虚拟服务器。虽然Windows XP没有提供OS虚拟化的能力,但是如果想建立其虚拟化环境也不是很困难。

我们可以在Linux主机上创建Windows XP虚拟化环境为例。可以使用Xen虚拟化技术,但是一般情况下,它要求对客户OS进行更改以求它能够感知到Xen是一个虚拟主机,并且可以和主机通信。但是如果你拥有支持VT技术的芯片,那么就不需要更改Xen了。经过一些简单的操作就可以实现了。只要有VT技术的支持,在VMware、Parallels和Qemu上,也可以很容易的实现相同的目标。

虽然Vista从出现后就遭致了很多的批评,但是虚拟化可是它的一个亮点。因为Vista对硬件环境有相当高的要求,而且其软件体系结构和核心组件与之前的产品存在严重的兼容问题。此时,如果想采用传统的方式直接在主机上安装多操作系统那就自找麻烦了。而虚拟化技术正是抹平这层鸿沟的最优化方案。

通过虚拟化技术用户就可以避免不必要的系统硬件升级(如果你拥有很多的机器,而且都需要升级那可不是一件简单的事)。同时也可以通过虚拟化来避免由于操作系统内核不兼容造成的问题。也不需要对硬件做很大的调整。那么通过虚拟化我们可是实现什么呢?比如远程访问桌面虚拟化服务。

其实,一个虚拟机就是一个文件夹中的系列文件。我们也可以用微软提供的Virtual PC、VirtualServer 2005,VMware提供的VMware Server,Citrixd提供的XenServer Express以及SU N和Oracle提供的虚拟引擎来虚拟化Vista,不过第三方没有提供性能优化。解决问题的关键还是Vista的版本和商业许可。因为其中有些版本就明确不支持虚拟化有的只支持一个虚拟化实例等。

那么通过虚拟化可以有哪些实现方式呢,图1展示了虚拟化的一般完整的实现方案。

微软的主要虚拟化产品

Microsoft Virtual Server 2005 R2

http://www.省略/products/server/

同时支持Linux和Windows操作系统,这就是人们听到“VMware”时的想到的了。作为一款流行的产品,它提供很好的性能和高层次的兼容。

虽然是专有的,但是VMware Player和VMwareServer可是不花钱也可以使用。另外他们的商业化支持也已经有一段时间了,支持x 86,x 86―64和Windows。

KVM

http://kvm.省略/

KVM是由一家名为Qumranet的新创公司暗中支持的开源项目,得到了包括Red Hat等的支持。

KVM提供很好的性能,并且属于轻量级的产品。将默认使用Linux 2.6.20内核。不过逐渐呈现下降的趋势,因为他要求使用支持虚拟化扩展的新型处理器。

Qemu Accelorator

http://fabrice.bellard.free.fr/qemu/qemu--accel.省略/

Linux-VServer是一个允许用户在一个普通的Linux服务器上建立虚拟专用的服务器的软件。它的优点是高效、产品成熟和活跃的开发环境。

Vserver是一种强化的chroot环境,透过内容切换到方式作出与host OS完全独立的Linux~境。由于Unix是一种档案导向的作业系统,以chroot进行的档案系统分离就已经具有相当程度的独立性,而Linux-Vserver则进一步在Linux核心上东手脚,让各个Vserver环境能完全地独立出来,就好像真的是不同的伺服器一样。

OpellVZ,VirtuOZZo

http:///

http://www.省略/products/virtuozzq/

OpenVZ是一个建在Linux之上基于容器虚拟化的解决方案。在单物理服务器创建隔离的安全的容器(也称VEs或VPSs)以提供更好的功能,并保证应用不冲突。每一个容器运行和执行几乎完全一样的独立服务器。容器可以独立的重启、root访问、用户、IP地址、内存、处理器、文件、应用、系统库文件和配置文件。

OpenVZ是SWSoft公司专用的Virtuozzo产品的一个开源的副本。和Vserver很相似。提供方便的管理工具和商业支持。在“虚拟专用服务器”业务中比较流行。你将在商品服务器上拥有很多的服务器,很多时候可能每一个虚拟系统仅有16M内存,这多半是为了x86,不过也支持POWER。

USeF―Mode Linux

http://user-mode-linux.省略/

作为一款比较老的虚拟软件产品,User ModeLinux是经过特殊改写的linux内核,运行在另一个Linux内核上用以提供虚拟化VM所提供的隔离作用,但是没有太多的性能影响。跨平台,支持linux通用支持功能。

模拟器

模拟器类软件运行速度比较慢,因为实际的机器是通过软件来模拟的。它们具有更高层次的隔离,另外支持桌面使用,开发、和不能运行在其它VM方案中的老软件。

Bochs

http://bochs.省略/

Bochs是一块开源的IA-32软件产品。用软件模拟一个完整的x86、视频卡、视频BIOS。BIOS、硬盘、CD、软盘、声卡、乐器数据接口和CPU则在软件之外。

它可以运行在一切可以编译它的平台。可以用来模拟一个386、486、奔腾、AMD64 CPU。它甚至可以运行在VM是无能为力的最古董的东西。虽然速度不够理想,不过有些时候还是非常有用的。

Qemu

http://fabrfce.bellara.ffee.fr/qemu/

作为一款多目标模拟器,Qemu要比Bochs快多了。它可以在一个P owe rP c计算机上用x 86Macromedia flash player播放Falsh或承载一个轻量级的Linux的安装。它尽可能的向本地的CPU转换指令,而不像Bochs模拟整个盒子。它不仅在x86上一样快速执行任务,还可以模拟很多的硬件和CPU,比如模拟x86、x86-64、PowerPC 32位、PowerPC64位、Sparc32位、Sparc 64位、高位在前的ARM和低位在前的ARM。

上一篇:微软三大新品在春天播种希望 下一篇:协作是第一生产力