服务器 频道

解读IBM企业级X架构NUMA技术(图)

    【IT168 专稿】在IBM的企业级X架构中,最突出的特点就是采用了原来只有在UNIX高性能服务器中才采用的NUMA体系架构(Non-Uniform Memory Access,非均匀存储器访问)技术。使得它可以做到模块化扩展,具有比SMP更好的扩展优势。SMP结构的服务器一般只能做到8路处理器系统,再多的处理器,对服务器的性能提升非常有限,而采用NUMA技术后,很容易地使服务器扩展到16路、32路,甚至64路,据悉目前理论上最多可扩展到512路。但遗憾的是在性能提升上不能与处理器数量的增加成比例。下面具体分析。

    一、NUMA技术概述

    IBM在IA架构服务器中所采用的NUMA(MBB)技术从出现到现在已经超过十年了,最早是由Sequent (NumaQ)公司在八十年代末到九十年代初时发明并采用的。Cray公司在九十年代初,在它的Cray 6400上采用了MBB技术,该机型是Sun E10000的前身。Compaq公司在2000年一季度发布了它的基于MBB技术的机型Wildfire (GS320);HP公司发布了业界最后一款基于MBB技术的机型Superdome,那是在2000年三季度。Sun公司在2001年三季度发布的Starfire (F15K)在体系结构上并无变化,只是将原来E10000上的CPU换成了SPARC3而已。

    在IBM的MBB结构中,每个BB(Building Block)可包含4路CPU,若干内存和I/O卡(在Sun服务器上称BB为board;在HP服务器上称BB为cell;在原先的Compaq服务器上称BB为quad)。不同BB内的CPU可以有不同的时钟频率,所有的BB通过一种称为“crossbar switch”的交换机制连接在一起,实现BB之间的点对点的高速连接。在日常应用中,通常把每个BB称之为“node(节点)”,这样整个NUMA就是由多个节点组成的,每个节点不仅包括单独的处理器,而且还包括独立的内存和I/O在在在存储卡。从结构上来讲,每个节点就相当于一个SMP系统,整个NUMA系统就是多个SMP系统的互联结构,如图1所示。

#$[*153382.jpg*#图1(点击看大图)*#0*#0*#center*]$#

    基于MBB技术的服务器是由多个BB构成的,所以它天生具有物理分区(Physical Partition)的特性。在MBB服务器上存在一个连接BB的互连机制(crossbar switch),它工作在一个固定的时钟频率上。例如,在Sunfire服务器上的Uniboard机制就是完成这种互连功能的。所有MBB结构的服务器都具有一个“显著”的优势,那就是可以热插拔CPU板和内存板。这是因为每一个BB是物理分开的,每个4路CPU板可以单独从系统中隔离出来并将其断电。但有一点需要注意:在一个运行的系统中,从一个BB中拔出CPU、内存或I/O板是有限制的,这基于每个机型的设计不同而不同。例如,Sun 6800服务器就有一个警告标签,其注明每个Uniboard槽在系统运行时空槽位的时间不能超过60秒(而且电源、温度等环境因素必须控制在一定的范围内)。由此推断,F12K/F15K可能时间会更短。采用MBB技术可以比较容易的设计出拥有更多数量CPU的服务器。在这种服务器上既可以运行一个操作系统,也可以在一个或多个BB上运行多个操作系统。这就是所谓的服务器(基于物理分区)的逻辑分区。

    在MBB具有以上优点的同时,也具有一定的缺陷,那就是它的性能提升与CPU数量提升不成比例。如Sunfire企业级服务器中,其总线时钟是150MHz,不管CPU的主频是多少,它是固定不变的。这样,就会带来数据/指令被传送出去的等待时间过长问题。这是典型的高CPU时钟频率和低总线速度的矛盾。另外,HP公司当初发布Superdome服务器时,曾公布了它与HP其它UNIX服务器的相对性能值,结果发现,64路CPU的Superdome(MBB结构)的相对性能值是20,而8路N4000(共享结构)的相对性能值是6.3。从这个结果可以看到,8倍数量的CPU换来的只是3倍性能的提升,造成这种现象的根本原因就在MBB结构上。究其原因,就是因为Superdome上的每个cell(BB)里的CPU、内存或I/O卡可能需要访问其它cell里的数据。crossbar switch在cell之间建立点对点的连接,但同时带来延迟(latency)。即如果一个连接请求建立不成功时,则会再试一次直到建立连接成功,而此时其它的连接请求将会等待。在实际环境中,很多客户通过建立物理分区(每个分区中最多12到16个CPU)的方法来尽量减少这种延迟的影响。

    最后要说明的一点,就是NUMA属一种广义上的服务器结构。在Sequent公司公司出了最初的NUMA体系结构后,许多服务器厂商都开始采用了这一技术,并且进行了二次开发,于是又有许多不同的NUMA升级版本诞生了。目前从广义上来讲,以下结构均可视为NUMA结构类型:RMC(Reflective Memory Cluster,反射内存群集)、MPP((Massively Parallel Processing,大规模并行处理)、SGI的CC-NUMA(Cache Coherent NUMA,高速缓存的一致性的非均匀存储器访问)、IBM的NUMA-Q(也称为“MBB”)以及COMA(Cache Only Memory Architecture ,高速缓存唯一的存储器体系结构),但它们之间的差异却相当大。RMC和MPP属群集技术,有多个节点,属于“NUMA”的部分只是节点间的软件一致性。至于CC-NUMA、NUMA-Q和COMA,其硬件一致性是在节点内部,其“NUMA”组件是在一个节点内。但这些NUMA技术通常只是应用于UNIX高性能服务器上。虽然NUMA架构技术并不是IBM所独有的,但在IA架构服务器中,目前基本上只有IBM这么做了。第一个不采用SMP技术的IA服务器就是X440。2002年3月,当很多厂家刚开始用Intel Xeon MP处理器来搭建4路服务器的时候,IBM eServer X440不仅在4U机箱中支持4路Xeon MP处理器,而且通过企业级X-架构技术轻松实现了4路到8路的扩展。2003年3月19日,随着IBM eServer x440的16路产品的推出,EXA企业级X-架构还真正实现了Xpand-On-Demand,使得用户在IA服务器上按需增长的梦想也得以实现。

0
相关文章