当前位置:首页 > 心得体会 > 操作系统虚拟化_系统级虚拟化
 

操作系统虚拟化_系统级虚拟化

发布时间:2019-03-19 04:31:29 影响了:

  操作系统虚拟化目前还是处于非主流状态。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.省略/virtualization/solution―product-VS mspx
  Microsoft Virtual Server 2005 R2提供增强硬件功能,快速配置和部署服务器的虚拟OS。通过联合多工作组到一个物理服务器,这样提高了效率,同时简化了硬件资源的管理。Virtual Server VM利用主机操作系统限定的驱动设备保证系统健壮、稳定。支持设备之间的兼容。
  
  Microsoft Virtual PC 2007
  http://www.省略/windows/products/winfamily/virtualpc/
  利用Microsoft Virtual PC 2007同时在一个物理计算机上运行多个操作系统。通过按钮来选择相应的虚拟机。利用虚拟机运行遗留应用、提供支持、培训用户和加强质量保证。
  Virtual PC允许你在Windows桌面创建分离的虚拟机,每一个都虚拟化完整的物理计算机的硬件。可用虚拟机来运行MS-DOS,Windows,and OS/2 等操作系统。
  Microsoft ApplicatiOH VirtU8lization 4.5 Beta
  http://www.省略/systemcenter/softgrid/default.mspx
  
  4.5已经开始进行beta测试了。
  此版本被称作是SoftGrid应用虚拟化。这是微软第一次发布的产品。它包括帮助IT行业进行大规模应用虚拟化和实现跨网站和加强多支付的能力。全球化已经让用户通过当地的环境来访问当地的应用。动态符合允许给管理员控制虚拟应用的组合,同时符合微软的可信计算和默认的主动安全防御。最后这个版本支持Windows Server 2008 32位终端服务。
  
  Linux平台虚拟化应用
  Linux虚拟化已经有相当悠久的历史了。相关的技术相对比较成熟。产品众多,并且开源的占领很大一部分。
  
  独立管理程序
  管理程序就是一些小小“外部内核(exo-kernel―like)”系统,比较靠近硬件(有些还是内建在硬件中),用来为多个VM分配CPU时钟、内存和硬件资源。由于自身比较小,所以很安全,高效。虽然有意让OS不可知它们的存在,但是通常还是采用Linux来抽象硬件访问,这将有利于将多个繁忙的服务器合并到一个大型的硬件上。
  
  Xen
  http://www.省略/
  Xen的目标是提供高性能,因为它是通过半虚拟化(paravirtualization)来实现的,Xen的方案是通过更改主机,从而提供更接近裸机的性能。
  如果CPU支持VT/SVM虚拟化扩展,那么Xen就可以像Window一样运行在主机上而不需要对主机做任何的修改。
  它适合于服务器使用和许多高级功能的企业应用,但是不幸的是在桌面运行不是很“良好”,并且很难启动。
  Xen不仅有开源/自由软件版本,同时也发行商业版本。目前微软和Novell就Xen/Linux运行Win―dows达成了一项协议。主要目标是支持x86/x86064和POWER,以及Spare。
  
  Vmware ESX
  http://www.省略/products/vi/esx/
  VMware ESX的最大的好处就是高性能(在特定的操作中Xen可能更快),并且它并不要求更改主机。同时,拥有更好的管理设备。
  VMware ESX完全专用,而且价钱非常昂贵(当然,这一切都是相对的)。但是作为企业的VM解决方案,一直得到很多第三方的良好支持。另外,部分VMware基础产品仅仅适用于x86/x86-64。
  
  基于OS的虚拟器
  有些VM应用运行于普通的操作系统上。有些重量级的,并且运行在主机上需要更多的性能开销的应用,就运行在本地操作系统的内存管理,调度和其他的事务当中。这对于桌面应用、普通的服务器工作和开发者来说是很有用的。
  
  Vmware player vmware server vinware Workstation
  http://www.省略/products/desktop_comp.html
  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://openvz.org/
  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。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3