服务器 频道

操作系统虚拟化:一个真实的故事

   【IT168 资讯】2006年11月8日,权威研究机构Gartner发布了一份服务器技术发展的研究报告,其中有一个不同寻常的预测:到2010年,共享的操作系统虚拟化将成为主流虚拟化技术。文中提到的服务器操作系统虚拟化厂商包括:Sun Solaris Containers、SWsoft Virtuozzo,以及IBM z/OS和HP。

    对于大多数人而言,这可能是第一次听说操作系统虚拟化的概念。甚至某些虚拟化业内人士,在此之前从来都没有把Virtuozzo这样的产品视为真正的竞争对手。在他们的概念中,虚拟化和虚拟机是同名词,不是虚拟机就不是虚拟化。Gartner的研究报告首次打破了这一神话。对于操作系统虚拟化的主要倡导者而言,这份报告则是一次重大的胜利。从2005年以来,围绕着操作系统虚拟化的迷雾和争论似乎第一次有了明确的答案。

    那么,到底什么是操作系统虚拟化?Gartner的定义是:共享的操作系统虚拟化允许多个不同应用在一份操作系统拷贝的控制下隔离运行。单一的根操作系统,或曰宿主操作系统,通过划分其特定部分,成为一个个隔离的操作执行环境,供程序运行。实际达到的效果和虚拟机技术类似,同样将一台物理服务器划分成了多个“虚拟”的操作系统实例,从而达到分区的目的,可以应用于服务器整合、测试研发、业务连续性等标准虚拟化应用场景,以及一系列操作系统虚拟化更擅长的商业和企业内部托管等独特的应用场景。操作系统虚拟化的关键点在于从应用与操作系统之间的层次横切一刀,将操作系统资源访问虚拟化。对上而言,让应用“相信”它是运行于它自己的独立的操作系统实例中;对下而言,翻译和转换上层应用的命名空间、资源进程需求,使之和谐共存于底层的一个操作系统内核和硬件资源之中---从而达到更细粒度的资源控制和更有效的可管理性。

    操作系统虚拟化强调的是在单一操作系统内核实例的基础上实现虚拟化,这一点是它与虚拟机技术的最本质的不同。虚拟机技术,无论是VMM,Hypervisor,还是ParaVirtualization并行虚拟化,都是在多个虚拟的硬件层上安装多个Guest操作系统,然后再运行应用程序。比较两台分别采用操作系统虚拟化和虚拟机技术的服务器,我们看到的最明显的差异就是操作系统实例数量的不同。有趣的是,这一点核心差异同时构成了操作系统虚拟化的最大优势和最大劣势。由于只有一个操作系统内核,少了虚拟机和Guest操作系统两个资源消耗层次,操作系统虚拟化的运行效率、理论最大密度和运行在虚拟环境中的应用性能都天生超过虚拟机技术,减少了操作系统实例的数量也意味着在安装部署、补丁升级、备份迁移的数据量和效率等管理特性上的优势;同理,操作系统虚拟化只能是同一种操作系统的划分和衍生,无法支持异种操作系统并存于同一个物理服务器之上,同时由于虚拟环境不完全等同于一份完整的操作系统,某些需要直接访问硬件层(无论是虚拟的还是物理的)的应用无法在操作系统虚拟化环境中运行。

    操作系统虚拟化技术的出现、成熟和走向主流,对于企业而言,意味着除了既有的虚拟机技术而言又多了一种选择。从技术特点而言,针对不同的应用,操作系统虚拟化和虚拟机既可以相互替代,又可以结合应用---在虚拟机之上完全可以再安装和运行操作系统虚拟化软件,并不是一个简单的A/B选择问题。在虚拟化技术已经比较广泛应用的发达国家,操作系统虚拟化技术顺应了虚拟化之中和之后更细粒度、更动态和自动化控制和分配资源的需求,从而形成一种操作系统虚拟化和虚拟机部署同时并存,互相结合的应用场景。而对于虚拟化应用相对处于初级阶段的国家和地区而言,则存在从一开始便寻求非常好的虚拟化路线图的可能。如何选择最适合自身环境的虚拟化技术,我们需要从为什么要实施虚拟化的原点开始。

    采用虚拟化技术,能够带来的好处已经尽人皆知:节省IT基础设施的成本(服务器数量、空间、电力)、提高服务器资源利用率、更快更有效率更灵活的应用部署、支持真正的资源按需分配和自动化,等等。当我们考量这些好处的核心要点,我们能发现两个关键词:资源利用效率以及管理成本。一般而言,在这两点上,操作系统虚拟化都有其优势。从资源利用率而言,操作系统虚拟化节省了虚拟硬件层和Guest操作系统两层损耗,留给实际应用使用的资源更多,对于给定的服务器硬件和标准负载的应用,能够达到更高的密度。实际部署的情况下,操作系统虚拟化的密度通常是虚拟机的2~10倍之多。同时,操作系统虚拟化由于只是在操作系统访问层次进行虚拟化,可以直接利用到操作系统本身的硬件驱动的最大性能,在必要的情况下,单一的虚拟环境可以扩展到利用物理服务器的几乎所有资源。应用运行在虚拟环境之中和物理环境之中的性能差异是非常低的,尤其对于I/O访问频繁的数据库应用,Web和邮件应用而言效果更为明显。从可管理性而言,同样由于节省了虚拟硬件层和Guest操作系统层次,单以虚拟环境的开通而言,操作系统虚拟化仅需十几秒到几分钟之间。当需要进行动态迁移、数据备份时,无论从数据量还是操作耗时而言,都远远小于虚拟机技术。对于实际体验了虚拟机和操作系统虚拟化两种技术的管理员而言,后者带来的工作效率提升是非常显著的。

    然而,操作系统虚拟化技术并不是完美的,也无法全面替代虚拟机技术。在用户需要一个相对完整的虚拟环境进行研发,或整合多种操作系统,或整合多个处于不同操作系统版本和补丁级别的传统应用于同一服务器时,只有虚拟机技术能够充分满足这种需求。从这种意义上说,虚拟机技术是以牺牲效率为代价换取了更大的灵活性。企业在考察虚拟化技术的时候,通常都需要进行完整的测试,才能为企业内部各种不同的应用找到最适合它的虚拟化部署方案。从这个角度而言,两种虚拟化技术的并存是必然的。我们必将看到针对这种混合环境的更有效的管理工具的出现,只有这样,才能满足未来物理+虚拟机+操作系统虚拟化的实际的IT基础设施应用需求。

    无论是虚拟机,还是操作系统虚拟化都不是什么新鲜的Idea。有一句名言:任何一个新想法其实不过是被人遗忘的老想法。新想法之所以新,或者说之所以能够被人重新注意起来,唯一的可能是有人能够在老想法的基础上添加了一点点创新,而且有能力把这个想法变成现实可用的产品。从这个意义上而言,VMware也好,SWsoft也好都是站在IBM的肩膀上,把巨人遗忘的想法变成了现实。从未来的趋势而言,随着Intel、AMD芯片级硬件辅助虚拟化技术的出现,新一代操作系统内置Hypervisor等进展,虚拟机技术会不断优化其代码,努力补足其在I/O效率,跨硬件和存储边界等方面的短板,成为更强有力的资源整合工具。对于操作系统虚拟化技术,如何处理好和操作系统之间的关系,进入甚至融合为下一代下两代操作系统系统的一部分,成为决定其命运的关键。虚拟化已经渗透到IT基础设施的所有方面:硬件芯片、存储、网络、应用。操作系统本身也必将完成虚拟化的演进,虚拟化特性将成为未来操作系统不可或缺的部分。

    Gartner的报告中提到的两个主要操作系统虚拟化厂商SWsoft和Sun。SWsoft提供了两种主流服务器操作系统Linux和Windows操作系统虚拟化软件Virtuozzo,而Sun则是首个主流操作系统厂商内置操作系统虚拟化技术的厂商。不得不提到的是,正是由于Sun在2006年高调宣传其Solaris 10种内置的Solaris Containers技术,才使得更多人关注到操作系统虚拟化已经成为严肃的现实存在。作为唯一能够在两大主流x86操作系统上提供操作系统虚拟化解决方案的SWsoft,正一方面努力通过OpenVZ开源项目进入标准Linux内核,同时通过即将发布的Virtuozzo 4.0大幅改进Windows操作系统虚拟化技术,达到和其Linux版本相匹敌的功能和应用兼容性。其2006年取得的高达700%以上的高增长率,是操作系统虚拟化正在被企业用户快速广泛接受的非常好的例证。从技术上而言,操作系统虚拟化已经证明其稳定和成熟,以及巨大的发展潜力。未来的三年则是其在企业市场上攻城略地,快速铺开的黄金时期。随着KVM Hypervisor进入Linux内核,我们相信,操作系统虚拟化技术如OpenVZ进入Linux内核也是可以预期的。Solaris已经虚拟化,一旦Linux也完成了虚拟化蜕变,那么,Microsoft会对此作何反应,则是一个耐人寻味的问题,让我们拭目以待吧。

0
相关文章