服务器也虚拟 何为虚拟化技术?

互联网 | 编辑: 杨剑锋 2006-11-02 10:00:00转载

所谓虚拟化技术应该有两个方向来帮助服务器更加合理地分配资源,一种方向就是把一个物理的服务器虚拟成若干个独立的逻辑服务器,使用户可以在这些看似独立的虚拟服务器上运行不同的操作系统和应用,这个方向的典型代表就是分区;虚拟技术的另一个方向,就是把若干个分散的物理

      何为服务器虚拟化技术?

     虚拟化代表着把物理资源转变为逻辑上可以管理的资源、打破物理结构之间壁垒的一个巨大趋势。在未来,所有的资源都透明地运行在各种各样的物理平台上,资源的管理都将按逻辑方式进行,完全实现资源的自动化分配,而虚拟化技术是我们实现这一理想的惟一工具。

    虚拟服务器技术正是虚拟化技术的代表,它为人们带来了前所未有的体验。关于服务器虚拟化的概念,各个厂商都有自己不同的定义,然而其核心思想是一致的,即它是一种方法,能够通过区分资源的优先次序,并随时随地能将服务器资源分配给最需要它们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储备的资源。用更加直白的语言来讲,所谓虚拟化技术应该有两个方向来帮助服务器更加合理地分配资源,一种方向就是把一个物理的服务器虚拟成若干个独立的逻辑服务器,使用户可以在这些看似独立的虚拟服务器上运行不同的操作系统和应用,这个方向的典型代表就是分区;虚拟技术的另一个方向,就是把若干个分散的物理服务器虚拟为一个大的逻辑服务器,使用户可以像使用同一台服务器的资源一样支配这些物理上独立的服务器,从而达到最大化利用资源的目的,这个方向的典型应用就是网格。

    现在的虚拟服务器技术绝不是什么精巧的小玩意,它可以带来实实在在的好处。一套精心设计的虚拟化解决方案的作用包括简化IT管理、降低硬件成本、提高系统敏捷性、提高生产率等方面:

    合并硬件管理,降低成本;根据需求情况进行资源分配;安装和配置新系统的时间极大缩短;应用程序以及操作系统的错误不至于影响系统的整体状态;降低异质资源管理的难度;在受控环境中方便测试和查错。

    建议目前可以利用服务器虚拟技术带来更多好处的行业用户:为了获得上述好处,可以尝试引入服务器虚拟技术。

服务器虚拟技术的产生和发展

    “虚拟化”并非刚刚出现的新技术,作为计算领域的一项传统技术,虚拟化的产生与发展可以追溯到上世纪60年代。“虚拟”一词最早来源于光学,用于理解镜子里的物体。之所以使用“虚拟”的概念定义一项技术,是因为人们希望虚拟机看起来和工作起来都与真正的机器一模一样,这同时也意味着,虚拟机并不是真正的机器,但是它能像真正的机器一样工作。

    服务器虚拟化的最初应用是将利用程度较低的服务器硬件设备集中起来,构成由少量计算机组成的高效计算方案。从最初出现到现在,服务器虚拟化已经发展成为一种多用途的解决方法。

    近来,Intel和AMD都争相推出dual-core甚至4-core的CPU以瞄准高性能服务器市场;同时,IBM和Sony等公司联合推出了有多达8个处理器单元的Cell芯片,它们掀起了高性能服务器向多核/多线程技术的转移,可以预见4-core或者8-core SMP不久将推向市场。另一方面,随着深亚微米技术的蓬勃发展,SoC体系结构在不久的将来将成为现实,到那时,拥有几十亿只晶体管的SoC将可能统治高性能计算领域。例如,如果技术能够降低到35nm,制造拥有多达32/64处理器的SoC将成为可能。因此,网络服务器必须采用多核SMP与SoC技术。这就要求网络服务器的体系结构必须做出变革,以拥抱新的硬件技术的发展。在关注硬件技术发展的同时,必须注意到虚拟化技术的迅猛发展。Intel和AMD分别开发了VanderPool和Pacifica技术,在底层硬件上就支持虚拟化。IBM、Sun Microsystem (例如Solaris Zone)、HP(例如HP research Lab’s SoftUDC)、VMWare(例如ESX server)、Transitive和Microsoft(例如Virtual Server)等也都大力发展服务器级的虚拟化技术,以实现对服务器的加固,特别是提高服务器资源的利用率、性能与故障隔离、安全性、管理性和可扩展性。因此,高性能的网络服务器也必须充分利用虚拟化技术的重大成果,迫切需要发展新的面向虚拟化技术基于多核与SoC技术的体系结构。

    进入2006年以来,服务器虚拟化技术的队伍大大扩充了,从处理器层面的AMD和Intel到操作系统层面的微软的加入,从数量众多的第三方软件厂商的涌现到服务器系统厂商的高调,我们看到一个趋于完整的服务器虚拟化技术生态系统正在逐渐形成。它们在虚拟化技术方面不断推出的新技术、新产品,对虚拟化技术在用户端的应用,将起到很大的推动作用。

硬虚拟、软虚拟各有所长

    实际上,从原理上看虚拟技术虚拟的是指令集。所有的IT设备,不管是PC、服务器还是存储设备,都有一个共同点:它们被设计用来完成一组特定的指令,这些指令组成一个指令集。对于虚拟技术而言,“虚拟”实际上就是指这些指令集。虚拟机有许多不同的类型,但是它们有一个共同的主题就是模拟一个指令集的概念。每个虚拟机都有一个用户可以访问的指令集,虚拟机通过把这些虚拟指令“映射”到计算机的实际指令集来完成工作。

    当“虚拟”成为现实,它所带来的好处也显而易见:有利于整合服务器资源,降低系统的总拥有成本;有利于服务那些希望使用服务器资源,但并不希望购买服务器的用户;有利于提高系统的资源利用率;有利于提供对操作系统的监控,提供HA支持和资源使用的负载平衡,简化满足新的应用需求的工作;有利于减少操作系统对硬件平台的依赖。

    鉴于服务器在使用效率、维护难度及升级成本等方面的问题,虚拟机技术长期以来一直是一个研究热点。在网络服务器方面,Stanford大学提出了基于虚拟机的vMatrix服务器以服务在线游戏。总体来说,虚拟机技术是一种通过在一组集中的计算资源上按需的为用户构造虚拟硬件平台,并在其上运行传统操作系统以提供应用运行环境的技术。目前主要存在两种实现虚拟机的技术路线:物理虚拟机和软件虚拟机。

物理虚拟机

    每个用户以独占方式使用一台真实计算机,但所有计算机由计算中心统一管理。用户提出计算请求后,系统在空闲节点池中动态分配一个节点,并加载相应的操作系统和文件系统供其使用;用户完成自己的计算任务后,将该节点归还系统以供再次分配给其他用户。采用这种技术路线的典型系统包括HP的CCI系统和中科院计算所研制的蓝鲸系统。

    这种技术路线能够实现系统软硬件的集中管理和维护,减轻了用户负担,并在一定程度上减小了资源浪费。系统假设并不是所有用户都会同时提出计算请求,因此能够用较少的硬件资源满足更多用户的需求,从而不必给每个用户配置一台私有的全功能PC机。但这种路线的缺点是:

    资源的总体利用率不高 一旦将某个计算节点分配给某个用户使用,那么在该用户使用期间其他用户都无法使用该节点,而单个用户的应用往往无法充分利用节点资源。

    性能相对较差 为了保证每个计算节点都能为任意用户服务,用户特定的操作系统映像和文件系统需要存储在NAS/SAN设备中并通过网络访问,这会对应用性能产生不利影响。

    系统的可用性不高 由于系统的节点数通常少于用户数,因此,当有计算需求的用户数多于系统中的节点数时,部分用户将不能得到服务。

    系统的负载均衡性不好 每个节点一旦分配,就被相应的用户独占使用,因此节点负载可能因为用户行为的差异而出现较大的不均衡。

软件虚拟机

    用户不再独占任何物理计算机,每个物理计算机(通常是一个SMP)上运行一种虚拟机监控软件(VMM,Virtual Machine Monitor),能够利用本机资源虚拟出多个硬件平台,其中每个虚拟平台都能够运行传统操作系统,即Guest OS。每个用户使用一个虚拟平台,并通过其Guest OS启动和管理自己的计算任务。整个系统呈一种倒置树结构。

    在更复杂的系统中,每个物理机是由若干SMP通过高速专用网络互联起来的NUMA系统,如IBM xSeries Server;相应的VMM也需要能够支持NUMA系统,如VMware ESX Server。但这种系统中,资源共享的倒置树结构并没有改变。

    相对于物理虚拟机,软件虚拟机的优点是:解除了用户对物理机的独占性,支持多个用户共享同一物理机,从而提高了资源利用率;能够支持的并发用户数不受物理机个数的限制,从而具备更高的可用性;每个节点的负载由一组用户产生,由于用户组之间的负载差异往往小于个体之间的负载差异,因此系统也具有更好的负载均衡性。但其缺点是:由于每个物理机只能被一组有限的用户使用,资源的共享度和利用率仍然不高;系统对负载波动的适应性不好。

多种方式实现服务器虚拟化

    近几年虚拟化技术在IA服务器上的发展,主要是软件方式,有代表的是VMware和微软的Virtual Server。

    微软的Virtual Server 2005与VMWare的虚拟化技术相比,很明确的一点不同是,Virtual Server 2005是基于Windows操作系统的,而VMWare则是一款准操作系统产品,与操作系统是完全独立的,这样带来的一个直接影响就是用户在使用Virtual Server 2005创建虚拟机时,必然会或多或少地占用CPU资源,可能在性能上与使用VMWare会有一些差异。另外,因为VMWare是独立于操作系统的,所以如果操作系统出现问题虚拟机应该不会受到影响,而使用Virtual Server 2005时,保证操作系统的稳定性则成为了保证虚拟机连续可用的一个重要因素。

    年初,英特尔宣布了其初步完成的Vanderpool技术外部架构规范(EAS),并称该技术可帮助改进未来虚拟化解决方案。Pacifica技术规范是AMD计划用于其64位产品中的虚拟化技术,该技术将用于基于x86架构的服务器、台式机和笔记本电脑等系列产品。AMD表示,通过将Pacifica技术预先展示给虚拟化ISV和分析师团队,并通过持续的协作,最终可以在托管基于系统管理程序(Hypervisor)的虚拟解决方案方面,向Pacifica用户提供更丰富的功能集和更高性能模型。

    从技术角度看,不论是Vanderpool技术外部架构规范还是Pacifica技术规范,它们强调的核心功能都是RISC处理器早就实现了分区功能,即基于该技术平台实现在独立分区中高效运行多个操作系统和应用程序,使一个计算机系统像多个“虚拟”系统一样运行。

    在服务器虚拟化技术方面走得比较靠前的应该是IBM和HP等服务器厂商。今年以来,这两家公司在虚拟化领域也非常积极,在最新的RISC架构服务器及最新版的操作系统中,都嵌入了虚拟化技术。

    早在p690服务器和AIX 5L操作系统首次公布的时候,IBM就宣布在其动态逻辑分区(LPAR)技术的支持下,一个系统内可独立的运行多个分区,每个分区运行独立的操作系统。这时候的分区,是以CPU为“颗粒”的。到去年发布p5服务器时,IBM大张旗鼓地扯出了虚拟技术的大旗。不过,与以前相比,在虚拟化技术的帮助下,IBM最新的微分区技术打破了分区上以CPU为“颗粒”的限制,可以将单个CPU划分为10个微分区,从而创建和运行比物理处理器数量更多的分区。IBM同时宣布,新版操作系统AIX 5.3可以支持1/10 CPU颗粒的微分区。今年,IBM进一步拓展了其服务器虚拟技术的范畴,推出了由操作系统、系统技术和系统服务三部分组成的服务器虚拟引擎。

    HP提供三个层次的虚拟化解决方案。其中,部件虚拟化可以优化不同类型IT资源的利用,如服务器、存储和网络资源,包括分区、集群、工作负载管理和应用虚拟化;集成虚拟化可以把优化多个部件的虚拟化方法结合在一起,自动调度资源满足服务水平协议(SLO),包括虚拟服务器环境、连续访问存储专用服务器等;而完全虚拟化可以优化所有异构资源、使得资源供应能够实时满足业务需求。

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑