操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

操作系统虚拟化技术简化服务器资源管理

2006-8-19 作者:Tony Iams 发布方:swsoft 网友评论 0 条 点击进入论坛

摘要

在虚拟化获得大力发展之后,用户开始不断关注管理大量操作系统实例的安装和升级带来的负担。对于合适的应用程序而言,操作系统虚拟化工具如Solaris Containers和SWsoft的Virtuozzo提供了与虚拟机相同的好处,但却避免了管理每个虚拟化服务器相对应的大量管理任务。

虚拟化不断提高服务器利用率

虚拟化的倡导者经常提到虚拟化会提高服务器的利用率。随着情况的发展,许多组织习惯于在每台服务器上部署一项应用。作为权宜之计,这种方式导致了非常低的服务器资源利用率,许多服务器的利用率只有8%到15%。这种低利用率导致了这样一个结果,许多组织不得不部署比所需要的服务器多得多的服务器来满足应用需求。虚拟化提高了服务器利用率,它允许多个资源密集型应用程序运转在同一台物理服务器上,降低了独立服务器中经常存在的未利用资源比率。在单个计算机上运行多个关键应用要求提供应用之间相互隔离的机制,甚至在单个应用出现故障或占用大量的系统资源的时候,剩下的应用程序依然能够按用户期望的性能运转。通常情况下,采用以下几种工具可以实现在一台服务器上同时运行多种应用:

» 资源管理软件 基于灵活地调度策略为单个应用程序精确地分配系统资源如:CPU,内存和某些I/O等资源。资源管理软件通常管理运行在单个操作系统下的应用程序,为单个或一组操作系统进程分配系统资源。它有效的重写了标准操作系统调度程序的功能,取而代之的是按业务驱动策略(考虑每一项应用的优先级)实施系统资源分配。资源管理软件主要应用在主机和Unix系统中,主要有Sun的Solaris资源管理器,IBM负载管理器,HP进程资源管理器(HP PRM)和HP-UX 负载管理器(HP-UX WLM)。微软推出了基于Windows  Server2003 的资源管理工具:Windows 系统资源管理器 (WSRM),SUSE Linux 企业服务器9.0 (SLES 9)包含了早期的资源管理软件即基于类的内核资源管理器(CKRM)。第三方的资源管理工具如Aurema RMTech 支持多种不同的操作系统。

» 虚拟机 使用软件创建出完整的计算机系统。因为计算机系统本身变成了一个应用程序,也就可以像对待一个软件那样处理虚拟的计算机系统,但它已经与底层的硬件隔离。这一功能允许管理人员在物理服务器上运行多个虚拟机,而且可以精确控制每个系统所分配的资源。每个应用程序就像运行在真实的拥有自己操作系统的服务器上一样,因此应用程序无须为虚拟化而重新编写。虚拟机已被大量的用户所接受,一开始主要用在主机上,现在用在越来越的工业标准硬件之上。虚拟机软件有VMware和微软的Virtual Server。

» 分区 同样允许在单个物理服务器上运行多个操作系统实例。与虚拟机不同,分区需要硬件支持来实现不同环境的电子隔离。不同分区提供的这种“防弹”隔离有助于实现超级应用的合并,这些超级应用最关注的就是集成性和安全性。当然,分区具有相当粗的控制粒度,这限制了控制应用程序分配资源的精度。例如,许多分区方案需要配置最小4个处理器且必须按4个处理器的量进行扩展和缩减。但分区依然是相对成熟的技术。在主机上已经应用了很久,且应用在Unix系统也有一段时间。具体有Sun的Dynamic Domains,IBM的Dynamic LPARs和HP的nPars。在工业标准的硬件方面,分区技术支持以下产品:Unisys ES7000 和IBM的x440。

还存在其它这种技术的变种,包括HP的vPars和IBM的p5 Micro-Partitions。与虚拟机和分区一样,这些方案允许多个操作系统实例运行在单个服务器上,但他们的实现方式与其他的几种有所不同。HP的vPars允许HP-UX操作系统实例运行在单处理上。针对其基于POWER5的p系列服务器的IBM的共享处理器LPARs允许多个分区同时使用单个处理器、内存模块和I/O适配器。

操作系统虚拟化技术解决管理负担

资源管理工具,虚拟机和分区都允许多项应用程序合并到单个服务器,因而帮助管理员提高服务器的利用率。这些选择无法解决另外一个更为基础的问题,就是管理整合应用所需的工作环境的问题。通过增加所部属的服务器的利用率,组织可能只需要更少的物理服务器来满足应用需求。结果降低了硬件成本。因为随着服务器价格的不断降低对应的硬件成本显著降低。与之相对比,安装和升级大量的操作系统实例的负担成为用户成本中显著增加的部分。虚拟机和分区技术都要求虚拟服务器拥有自己的操作系统实例,这些必须通过安装完成且需要管理维护。这需要将虚拟化服务器为应用程序提供合适的运行环境的能力最大化,但并未从基本上改变这些应用程序的管理成本,与应用独立服务器的管理成本完全一样。对虚拟机和分区来说,即使当所需要管理的物理服务器数目发生了巨大变化,需要管理的操作系统数目并未发生重大变化。

资源管理软件很大程度上解决了这一问题,通过允许多种关键应用共存在单个操作系统实例中。那些适合资源管理软件合并的应用,管理员可以通过管理程序显著提高规模化效益,因为可以增加应用服务而没有额外的操作系统管理负担。当然,传统的资源管理软件已经被证明不适和合并大多数应用,因为应用服务之间的隔离并不是很强。现有的大多数资源管理解决方案,都允许应用程序共享访问相同的系统资源,如文件、设备、网络连接等。因此,应用程序间彼此保护措施很少,安全性较差。此外,应用程序之间更有可能相互干扰,而不是因为访问CPU、内存及I/O资源而引起冲突。已经证明,Windows应用程序特别不适合使用资源管理软件进行合并。通常情况下应用程序间不能很好共存,经常要求特定的共享资源实例,如注册表和动态连接库(DLL),这将导致管理员在同一台服务器运行其它应用程序时出现相互干扰。

用户对虚拟化解决方案表现出越来越浓厚的兴趣,因为虚拟化协助解决了多操作系统实例(包括升级和补丁)管理的问题。一种新的虚拟化功能也同时诞生,其设计目的就是为了综合资源管理软件和虚拟机技术各自的优点。操作系统虚拟化技术通过单个机制综合了虚拟机和资源管理软件各自优点。像分区和虚拟机一样,操作系统虚拟化技术为应用程序提供专用的资源集来保护这些应用程序不受其它应用程序干扰。但分区和虚拟机技术导致需要为每个虚拟应用创建独立的操作系统实例,而操作系统虚拟化仅使用单个操作系统实例,就像在传统资源管理软件的情况一样,这个操作系统被其它所有的虚拟操作系统实例共享。虚拟的操作系统实例创建了一种幻觉,通过为应用程序提供以下明确的操作系统资源,应用程序虚拟的运行在他们自己的专用计算机上:

»文件命名空间,为虚拟化应用程序提供对其逻辑文件系统的访问。

» 用户命名空间和服务,允许提供个性化网络功能,如Bind和Sendmail。

» IP地址和主机名,为虚拟化的应用程序提供了专用的网络连接,在网络上以独立服务器的姿态出现。

» Root密码,用于限制管理人员对虚拟操作系统的访问控制。

»安全配置文件,确保应用程序可以访问系统资源,不会受到其它虚拟操作系统或其它底层操作系统应用的影响。

现在已经有好几种产品实现了操作系统虚拟化技术,每种技术稍微有所不同。Sun的Solaris 10操作系统——今年同时支持Sun的SPARC系统和工业标准的X86硬件系统——推出被称为Solaris
Containers类似的虚拟化软件。在概念上, “Jails”软件最初是针对FreeBSD操作系统作的研发。Sun的处理方式是构架了一个内核级“区域”在不同的子系统间隔离资源和容错。Solaris Containers建于这些区域的顶层,阻止任何用户级行为来危害其它容器或底层操作系统;Solaris
进程权限管理程序用于管理不同容器的安全优先级。对用户和应用程序来说,每个容器都像一个运行Solaris的专用服务器。

SWsoft提供的操作系统虚拟化产品是Virtuozzo,支持在单个物理服务器上创建多个虚拟专用服务器(VPS)实例。对用户和应用程序来说,每个VPS的运行都和一台独立的服务器完全一样。每个VPS可以独立重起,拥有自己的根访问权限,用户,IP地址,内存,进程,文件,应用程序,系统库以及配置文件。Virtuozzo建立在标准的操作系统之上,Linux版本于2001年发布,2004年推出Windows版。用户可以安装Linux或Windows系统作为底层操作系统,然后安装Virtuozzo来虚拟化底层操作系统。在五年前Virtuozzo产品发布的时候就推出了Virtuozzo管理工具,现在已经是非常全面和成熟的管理工具。除了支持32位的Intel X86平台,SWsoft最近宣布他们已经支持64位的安腾平台,将会在2005年底增加对Opteron的支持。作为Virtuozzo拉动企业市场的一个信号,SWsoft最近公布了他们和系统厂商Bull的代理协议,Bull将在其NoyaScale刀片服务器上出售和安装Virtuozzo,Virtuozzo同样支持更强大的基于安腾的SMP服务器和基于志强的 EXPRESS5800服务器。

表 1. 操作系统虚拟化软件
软件 操作系统支持 硬件平台支持
Sun Solaris Containers Solaris SPARC Intel X86, AMD-64, EM64T
SWsoft Virtuozzo Linux, Windows Intel X86, Itanium, AMD-64

操作系统虚拟化软件与服务器虚拟化软件如虚拟机和分区相比有很多潜在的优势。操作系统虚拟化技术的优势包括:

» 低管理成本 – 管理员无须为每一项应用安装和维护一个单独的操作系统实例。很清楚,虚拟化操作系统的某些方面需要进行定制,但大多数操作系统虚拟化解决方案提供了自动完成定制的工具。较低的操作系统实例潜在地降低了每项应用的管理成本,因为更多的应用可以通过单个操作系统实例来进行管理。

» 快速响应 /更佳的性能 – 运行在虚拟操作系统的实例可以快速启动和停止,因为启动一项任务无须起动整个操作系统。同样,因为应用几乎仅消耗他们应用程序所需要的资源,因而可以根据业务需求变化更加精确的进行资源分配。因为没有像操作系统那样分为多层,虚拟系统的性能和本地服务器系统的性能几乎完全一样。灾难恢复也同样可以快速完成。

» 较高的利用率 – 每个虚拟操作系统实例相对较低的资源占用允许在单个服务器上运行更多的应用程序。例如,经测试,Sun在单个的系统上提供最多达4000个Solaris Containers。而SWsoft的Linux 版 Virtuozzo可以在X86 32位系统上支持5,000 VPS,在安腾系统上超过10,000个VPS。

»有限的系统软件许可证成本– 当包含许可证费用的操作系统被虚拟化时,用户无需为额外应用实例支付更多的许可证费用。例如,当Windows操作系统部署在虚拟机上时或者当Red Hat Linux部署在IBM p5分区时,每一个新的操作系统实例需要购买额外地许可证。通过操作系统虚拟化技术,每台服务器实际上仅安装一个操作系统,不管这台服务器上创建了多少个虚拟操作系统实例,极大地降低了系统软件的许可证费用。注意,尽管目前就运行更高级软件产品的许可条款而言各独立软件开发商(ISV)之间很少保持一致,如在虚拟化环境中运行的中间件,应用程序,数据库服务器等软件。实际上,在考虑其产品运行在虚拟化操作系统实例的许可证问题时,第三方的软件包许可证具有明显不同的条款。例如,Oralce针对Solaris Containers就采用与分区技术一样的许可证策略,因此,用户仅需要基于每个Container实际使用的CPU数目来为Oraclede 软件许可证付费,而不是整个物理服务器所能提供的所有资源。

»精细的资源控制– 因为操作系统虚拟化就本质而言是资源管理的变种,通过额外的方式隔离每种应用程序,它拥有和传统的资源管理软件一样的精细控制粒度。这种控制允许管理工具精确地为虚拟操作系统实例进行资源分配,方便用户轻松地建立成本驱动模型来部署资源。

那些提供独立的操作系统实例的虚拟化技术,如分区和虚拟机。例如,如果一个应用程序需要对操作系统环境进行任何定制工作,而不是虚拟操作系统实例中所能提供的(如,特殊的设备驱动或内核补丁,或不同操作系统版本之间的附属品),或许不太适合使用这种虚拟化技术。同样,与资源管理工具和虚拟机相同,所有的部署在虚拟化操作系统的应用程序依赖于底层操作系统环境,这将导致单点故障。如果单个应用故障足够危及底层服务器,所有应用程序就会有潜在风险。结果是,虚拟化操作系统的研发人员通常进最大的可能性尝试保护底层操作系统的完整性。例如,SWsoft采取措施通过创建内核抽象层来最小化底层操作系统暴漏的风险,所有虚拟操作系统与底层操作系统软件内核的通讯全部经过这个抽象层。Sun则继续发表其长期在Solaris10中开发保障主机级可靠性软件来维护运行时间的承诺。例如,在Solaris 10种设计了一个全新的“前摄型自疗架构”,它以最小的宕机时间来检测和响应硬件和软件故障。基于全新的管理系统服务和系统错误的集中引擎,该架构使用内核遥测系统,Solaris故障管理器(Solaris Fault Manager),Solaris服务管理器(Solaris Services Manager)以及增强的错误报告机制,通过迅速将应用迁移离开危险区域来最小化由硬件组建或软件引起的宕机时间。

Table 2 操作系统虚拟化技术和其他服务器虚拟化技术综合比较

 资源管理软件 虚拟机 分区 操作系统虚拟化
(每个应用)专用的文件空间 无 有 有 有
(每个应用)专用的网络地址 无 有 有 有
(每个应用)专用的安全配置文件和根控制权限 无 有 有 有
(每个应用)明确的操作系统内和版本 无 有 有 无
资源控制粒度 精确 适中 粗糙 精确
需要管理的操作系统总数 单 多 多 单
系统软件许可证需求 单 多 多 单
底层系统是否单点故障 是 是 否 是
虚拟环境的启动时间 快 适中 慢 快
不同应用间的隔离 弱 强 非常强 强

基于上述综合比较,操作系统虚拟化技术最适合以下几种情况:
» 不同实例间的特征属性高度一致 (例如,不同的应用非常相似以至于对内核版本和补丁水平具有完全一样的需求。)

» 管理员希望最大化管理资源分配,他们关心随着需求变化他们能给应用程序分配的资源的精确值,监控资源的消耗并最大化实时资源调整的灵活性。

» 管理员希望最大化硬件资源利用率,在单台服务器上部署尽可能多的应用实例。

» 管理员希望通过避免管理多个实例带来的工作量来最小化整个环境的管理成本。

» 管理员希望降低任何相关的系统软件许可证成本。

可能虚拟操作系统技术最明显的潜在用户是Internet服务提供商(ISPs),他们为用户和中小企业提供网站空间。这些用户通常仅需要基本服务诸如:电子邮件、低流量内容,这与虚拟操作系统实例提供的环境类似并可以很好的提供服务。ISP同时也是最关注成本的,会评估操作系统虚拟化技术开拓运营效率的能力和对软件许可证带来的好处来以及如何进一步提高他们的收益。但其他领域的用户应经开始注意到操作系统虚拟化技术与其它替代者如虚拟机有很大的不同,新类型的应用程序开始融合,包括某些针对更复杂的企业需求的软件应用。例如,一个典型的操作系统虚拟化相关的融合情景是在部署安全的远程管理控制台。服务器应用程序不断依赖于基于Web的前端工具来进行管理和监控。这种想法是在任何地方通过标准的Web浏览器来管理这些应用。当然,那些需要高安全性的客户,如政府和金融服务组织,就无法冒险授权用户通过网络中的任何工作站或笔记本远程访问这些管理工具。相反,管理员可以对每个应用程序建立一个运行在虚拟操作系统的虚拟的浏览器进程进行远程管理。对虚拟进程的安全访问可以通过远程的图片功能和内置于Unix和Linux操作系统的本地安全机制进行授权。这一场景特别适合Solaris Containers,由于Sun本身就有大量的政府和金融服务用户,所以大量的投资用于提高Solaris10的安全性。

总结

在所有现有的视线虚拟化的工具中,虚拟机是部署最多的技术。虚拟机已经渗透到主流环境,而且他们现在广泛的应用与不同的应用程序的测试/研发环境和生产环境。但是,除了他们的普及程度,虚拟机没有解决用户不断关注的问题,就是大量的操作系统实例的安装和升级的问题。尽管虚拟机具有降低物理服务器管理数目的能力,但他无法降低需要管理的操作系统实际数目。相反,操作系统虚拟化工具如Solaris Containers和SWsoft Virtuozzo提供了与虚拟机一样多的优势,但避免了大量管理每个虚拟服务器相关的工作量。对于合适的应用,操作系统虚拟化工具有助于减少管理整个合并了多种关键应用环境的成本和复杂性。

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 用户名: 密码:
  匿名发表
今日推荐
技术文库(共有 45972 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
移动开发
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail