导读:尽管虚拟化技术的应用能够提高商用高端服务器的利用率,但与传统高性能计算技术(HPC)的代表超级计算机一样也面临着许多技术困境。本文总结了七条实现虚拟化过程遇到的技术挑战,和大家分享。
目前全球高端服务器市场主要被RISC架构的产品占据,约占服务器市场近40%的份额。但随着开放式系统应用的深入、普通用户对高端服务器的需求增加、集群系统的技术成熟,RISC的地位进一步动摇。主要体现在,新兴行业和竞争激烈的传统行业因成本带来的巨大压力而产生的对8至16路通用服务器(此处“通用服务器”是相对采用RISC架构芯片的服务器而言,即采用x86或安腾架构处理器的服务器)的需求;高性能集群系统的成功应用,导致放弃使用大型机而采用基于集群技术的通用多路服务器所形成的市场,尤其对星群的高性能集群的需求的增长。
虚拟化给高端服务器带来机会
尽管需求一再攀升,但商用高端服务器与传统的高性能计算技术的代表超级计算机一样也面临着困境——计算机的实际计算能力大大低于系统理论的峰值。不仅如此,人们在编制供它们使用的并行程序时的付出也与其产出不成比例。因此,满足对高效能的需求已成为人们设计商用高端服务器的重大挑战。目前高性能计算机仍沿用冯·诺依曼模型为基础的以CPU为核心的计算模式。作为这一模式基础的CPU技术目前已经发展到了追求线程级并行(TLP)的多核时代,其代表就是片上服务器(server-on-chip),例如Sun的UltraSPARC T1“Niagara”处理器芯片。但是,问题仍然没有解决——由于应用的复杂、种类的繁多、规模的巨大,单一的编译器或操作系统仍然无法智能地去挖掘蕴藏在其中的全部并行性。
利用虚拟机这一技术可以在单一服务器上支持不同的应用软件和操作系统,而且还能够动态地将资源分配到最需要的地方,可以减少数据处理过程中所需的服务器数量。有了虚拟机,企业在每次部署新的操作系统时,就无需迁移现有的应用软件,从而能延长那些虽然已经过时,但仍非常重要的应用软件的使用周期。这样,那些基于Windows NT的应用程序就可以再次焕发生机。
除此之外,人们发现利用虚拟技术,也能进一步发掘应用间的时间和空间的并行性。当然,虚拟机技术带来的隔离性、安全性、灵活性更增添了这一技术的魅力。中科院计算所目前正在研究的项目的主要内容就是围绕如何利用虚拟机技术构造高端商用服务器,研究新型的高端服务器和相关技术,同时考虑虚拟SMP的入侵防护技术。除了这些方面,基于虚拟化技术的商用高端服务器,在各种环节的研发中还存在诸多技术挑战。
虚拟机及其协同技术
虚拟机是构造虚拟SMP服务器的基础,它是由虚拟机监控(VMM)软件创建和管理。传统的VMM例如Xen和VMware面向单一节点,节点既可以是单一CPU也可以由SMP构成。这时由这些VMM所构造的虚拟机(VM)所能够利用的资源例如CPU、内存、磁盘、通信带宽等就仅限于这个单一的物理节点。从这个意义上说,虚拟机间的协同也就等价于传统服务节点或服务器间的协同,无法充分利用基于虚拟机技术创新所带来的益处。因此,必须突破目前虚拟机构造中资源的局限性,使得一个虚拟机不仅能够从它的宿主物理节点上取得资源,而且能够利用网络从其他非宿主的物理节点上获取资源,从而实现资源在虚拟机间的流动,实现部件级的虚拟化。这里的部件泛指CPU、内存、磁盘、网络等构成传统计算机的部件。
计算所要研究的分布式超级虚拟机监控软件(distributed hyper virtual machine monitor,DHVMM)是实现部件级虚拟化的关键支撑。基于DHVM提供的强大的部件级虚拟化能力,虚拟机间的协同就转变为资源和作业的调度和迁移。该项目将强调部件在虚拟机间的流动,当一个虚拟机有大量作业到达或有繁重作业而出现负载尖锋时,不采用传统的方法如作业/进程的迁移,而是通过DHVMM将网络环境中可利用的其他虚拟机上的空闲部件“流动”到资源紧张的虚拟机上,通过动态地增强重载虚拟机的计算能力、存储能力、通信能力来处理其上的作业。同时,当作业的负载高峰过去后,被动态增强的虚拟机可以自由、实时地释放“富余”的部件,供系统中其他虚拟机在需要的时候动态地获取,计算所将这种技术称为能力服务计算。
共享内存技术
SMP服务器的核心是内存共享技术,例如著名的Snoopy或者directory协议等。这些技术通常需要一定程度硬件的支持才能获得期望的高性能,例如SGI Altix的cc-NUMA内存共享技术,因此成本高昂、扩展性差。随着网络技术特别是Myrinent和Infiniband网络技术的发展,基于软件实现的内存共享技术,例如分布式共享内存DSM技术由于成本低廉和可扩展性好而开始发展起来。
计算所研究的这个项目要求实现多个物理服务器的整合(8个以上),因此更适合于使用不依赖硬件支持的基于软件的内存共享技术,以获得更好的通用性和平台独立性。传统的DSM技术不得不使用复杂的以lock和barrier为基础实现的融贯性和一致性协议,导致延迟开销很大。随着UPC为代表的分割的全局地址空间模型编程技术的发展,为发展新型的内存共享技术提供了客观的需求。
另一方面,高效能服务器设计中的一个重要问题是提高编程的效率,而阻碍并行编程效率的首要问题就是进程或线程间的通信和同步问题,所以事务块寄存器技术得以发展,因为它取消了过去在并行程序中必须使用的lock和barrier等同步操作。同时,由于显式同步的减少或取消使得线程因数据依赖或同步依赖导致的进程等待时间大大减少,使系统吞吐率提高,从而使得内核负载的饱满程度得以大幅提升,进一步提高了系统的生产率。该项目计划将以DHVMM为基础,发展全新的以软件实现的内存共享技术。
动态部署技术
在以虚拟机为基础的商业高端服务器中部署技术是系统灵活可重构性的基础,也是系统高可用性的保障。通常意义的动态部署技术主要指物理节点本身和其操作系统与应用软件的部署,而在计算所的研究中动态部署技术已突破了传统的意义,重点是研究部件级虚拟化下虚拟机的动态部署和部件的动态部署。
虚拟化的部件部署是虚拟机部署的基础,而虚拟机的部署又是SMP系统部署的基石。虚拟机仅仅是部件在冯·诺依曼模型下的临时、动态的聚合形态,其目的是执行指令、完成计算,同时提供指令和数据的存放和获取,从而构建一个以CPU为塔尖,各级缓存、内存、磁盘构成的存储体系为塔身的计算架构。因此,虚拟机在部件级虚拟化下,就成为一个临时、动态创建的“数组”,DHVMM为其动态地“分配”所需的“内存”或一块全局的“虚拟地址空间”。该项目的目标之一是研究全新的分布式部件创立、管理、使用、回收的技术,实现虚拟机在SMP意义下的快速部署。
虚拟SMP高性能服务器技术
由于DHVMM提供了部件虚拟化技术,由此计算所发展了新型的内存共享技术和动态部署技术,因此,传统的SMP服务器的体系架构已经不能满足需求,必须研究新型的体系结构以构建大型虚拟SMP高端服务器。完全支持目前的TCC协议的transactional shared memory(事务块共享存储)技术还是很难直接应用在实用的高端商业虚拟服务器中,其中的原因与传统的高性能计算技术一样,还是应用并行化的困境,还没有高效的编译器能够自动将主流系统软件和大型应用软件如Oracle数据库事务化(transactionalize),因而不得不依赖于编程人员的经验和智慧。
另一个目前难以克服的障碍是事务块共享存储技术中引入了对要读取的共享变量的“预测”,因此就必须考虑预测失败的异常处理。通常的做法是回溯(rollback),因而代价高昂。考虑到这些现实的阻碍,需要研究创新的基于软件实现的虚拟SMP体系架构,要求能不依赖于编译和手工进行事务块共享存储的优化,要面向部件虚拟化,使其具有良好的可扩展性和高可用性,既支持传统的共享内存和消息传递编程模式,也支持UPC和TCC等新的编程模式,以提高系统的生产率。
对PB级存储的支持
现代的高端商用服务器面临对存储能力的巨大需求,因此计算所研究的服务器必须能够提供PB(Peta Byte,1015)级存储能力的支持。传统的PB级存储系统可能是基于光纤通道(Fibre-channel)的SAN存储网络,也可能是基于infiniband网络技术的存储系统,例如Oracle RAC。而计算所将把两者的优势结合起来,研究一种基于Infiniband 网络技术的SAN存储系统(IB-SAN Infiniband Based Storage Area Network)。同时,加入磁盘部件的虚拟化技术,这个技术不仅是前面提到的DHVM的基础之一,也是IB-SAN的基础。
对于GPU,内存和磁盘从本质上来说是没有区别的,都是用来提供和存储数据和指令的,差别在于访问速度和由此决定的成本。在PGAS编程模型中,存储空间应该是统一的(包括内存和磁盘,本地和远程),以此为基础构建分布式基于软件(也支持硬件)的RAID以提高存储的可靠性和吞吐率。
支持GB级I/O的刀片服务器
机群架构是目前服务器领域的最重要体系结构。将标准服务器通过网络以松散耦合的方式集中在一起,统一运行、监控管理和维护就是所谓的机群系统。它可以用远低于原来大型机系统的费用来获得高性能的服务,具有很高的性价比。
但是随着机群计算结点数目的日益增加,传统机架式机群系统的不足就日趋明显。第一、受机柜高度和传统1U机箱的限制,计算密度比较疏松;第二、安装维护工作量大、成本高; 第三、对于大规模机群,功耗日益成为瓶颈; 第四、缺乏智能而有效的管理监控。
针对上述问题,2000年左右,工业界出现了刀片服务器,刀片服务器就是一个卡上的服务器——在一个单独的主板上包含一个完整的计算机系统,包括处理器、内存、网络连接、少量的本地磁盘存储,并提供外部存储访问的途径。每个刀片服务器都有其自己的操作系统,因此管理员可以为不同的应用或终端用户分配单独的刀片服务器,并且刀片服务器的插入或移去不影响其他刀片服务器的运行(热插拔)。如果将多个刀片服务器插入一个共享机箱中,那么该机柜的基础设施,例如电源、冷却设备、网络交换机和硬布线等就能够共用,同时具有冗余特性。所以,计算所将研制高性能的基于Infiniband的刀片服务器作为目标平台,研究新型支持多核CPU的计算刀片、主板、相应的输入/输出模块和管理与交换模块,并设计相应的机械结构,解决散热问题。
虚拟机技术下的入侵防护
计算所研究的虚拟SMP是由物理独立的服务器构成系统,共同为用户服务。它们通常是松散耦合,通过高速互联网络连接起来,因此极易受到网络的攻击。为此,必须结合计算所研究的服务器体系结构特点,研究虚拟全域可扩展分布式入侵检测引擎(Virtual Intrusion Detection System Sensor; VIS),探测能力服务域内基于物理和软件虚拟机之上的内外网攻击行为。