云数据中心服务器架构设计与展望
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
云数据中心服务器架构设计与展望
发表时间:2019-08-30T13:53:42.883Z 来源:《防护工程》2019年11期作者:张小凡1 马辰1 肖迪1 段晓峰2 [导读] 服务器是云数据中心的基本组成单元,其架构的设计直接关系到云数据中心各类应用服务的性能。
1.中国舰船研究院北京 100192;
2. 中国电子科技集团公司第三十二研究所上海 201800
摘要:服务器是云数据中心的基本组成单元,其架构的设计直接关系到云数据中心各类应用服务的性能。本文首先从CPU、内存和I/O 接口等设备的使用方式上,分析云数据中心服务器架构的类型;其次,从服务器的体制和结构等方面,提出服务器架构的设计约束;最终,在服务应用、芯片技术、互联技术和结构散热等方面,展望服务器架构未来的发展方向,为数据中心服务器的设计提供了有益的参考。
关键词:云数据中心;服务器架构;对称多处理;非统一内存访问;大规模并行计算
1. 引言
2017年,全球云计算市场增长趋于稳定,IaaS、PaaS和SaaS为代表的全球公有云市场规模达到1110亿美元,预计到2021年市场规模将达到2461亿美元。其中,IaaS市场增长快速,计算类服务为IaaS最主要的类型。在我国,公有云市场保持50%以上增长,Iaas层成为公有云中增速最快的服务类型;私有云中,2017年,硬件占据私有云71.1%的份额,超过半数的企业采用硬件、软件和服务整体采购的方式部署私有云[1]。为了满足云计算的需求,对数据中心的设备提出了新的要求[2]:
易扩展。支持大规模云客户访问和使用,与传统的数据中心比,云计算数据中心需要有较大规模的服务器集群,能够容易扩展。
大密度。云计算是一种集中化的部署方式,数据量和计算量的爆发式增长,决定了单机柜中计算密度和能耗密度的大大增加。
高可靠。云服务商向大量的客户提供云服务,云数据中心承载的服务量大,涉及的用户业务多样化,需要从设备到系统各级的高可靠要求。
智运维。云数据中心规模庞大,可靠性要求高,需要推动监控技术的发展和完善,实现自动化的监控和管理。
随着云数据中心的发展,云计算和大数据已经成为数据中心业务的主流,越来越多的应用向云数据中心迁移。而服务器作为云数据中心最基本的设备,其性能直接影响数据中心和服务的性能。因此,云数据中心服务器如何设计其架构,成为服务器发展的重要课题。
2. 服务器架构的分类
服务器的关键组成器件有处理器、内存和I/O接口,其使用方法的不同,衍生出多种架构。按照处理器之间的关系,可以分为非对称多处理架构(Asymmetrical Multi-Processing,AMP)和对称多处理架构(Symmetrical Multi-Processing,SMP);按照内存访问的方式,可以分为统一内存访问架构(Uniform Memory Architecture,UMA)和非统一内存访问架构(Non-Uniform Memory Architecture,NUMA);按照I/O之间的关系,又有大规模并行处理架构(Massively Parallel Processing,MPP)。
2.1 AMP与SMP架构
AMP和SMP架构是面对多处理单元时,处理单元(processing unit)之间协作模式的区别。在多核处理器中,处理单元指单一处理核(core)[3];在多处理器的服务器中,处理单元指单中央处理器(Central Processing Unit,CPU)[4]。而在本文的多CPU服务器中,处理单元均指CPU。
AMP架构中,处理器之间是不对称关系,由操作系统(Operation System,OS)或应用软件决定各CPU之间的关系[4]。在多OS的AMP 系统中,不同的CPU运行不同的OS系统,其运行关系由应用软件决定;在单OS的AMP系列中,不同的CPU运行同一个的OS代码,其运行关系由OS决定。图1(a)是一种多OS的AMP模型架构,在该模型中,应用将自身分为不同的部分(Part A,Part B,…),指定不同的CPU和OS来运行不同的部分。在AMP架构中,内存与I/O的分配可以共享,也可以根据实际需求进行分配。AMP架构适合业务类型少,计算量大,用户对应用和服务器架构较为精通的场景,无法进行大规模扩展。
SMP架构中,处理器之间是对等的关系。多个CPU之间通过总线通信,一般情况下共享内存和I/O接口[4]。在该架构中,使用一个OS,在OS层均衡使用各CPU,可以屏蔽应用对CPU的调度,实现用户与底层的隔离。图1(b)是典型的SMP架构原理图,其中应用对OS进行访问,OS直接调度CPU进行种类处理。在SMP架构中,通过总线对CPU进行扩展,不受应用的影响。
(b) SMP架构
图1AMP和SMP架构原理图 2.2 UMA与NUMA架构 UMA和NUMA架构是面向内存访问的特点进行设计的,均遵循SMP架构。在UMA架构中,内存和I/O由各个CPU通过UMA总线完全共享,通常使用的UMA总线是内存控制器(Memory Controller,MC)[5][6]。图2(a)是典型的UMA架构图,可以看出CPU、内存和I/O接口均挂载在MC上,系统的扩充也是通过CPU、内存和I/O接口进行。 NUMA架构中,CPU之间通过高速总线互联,内存不直接挂在总线上,而是通过MC挂载在CPU上,不同CPU的内存可以共享,如图2(b)所示。CPU在处理时,优先选用自身挂载的内存;如果应用需求,还可以通过远程读写其他CPU挂载的内存,但其速度不如自身挂载的内存速度快。I/O接口挂载在高速总线上,由整个系统共享。
相对而言,UMA架构主要是共享内存,其扩展能力也受到共享资源的限制。每个CPU必须通过总线(如MC)访问同一个内存资源;随着CPU的增加,内存访问冲突将呈指数级增加,最终等待时间过长,造成CPU资源的浪费。而NUMA架构能够有效的解决不同CPU之间的访问约束,同时在高速总线的互联下,还能够访问到其他CPU的内存,但是访问远程内存的速度远远低于访问本地内存,在CPU数量增加时,其效率不呈线性增加。
在商用服务器领域,目前主流的CPU均为NUMA架构。Intel在2018年下半年提出快速互联接口总线(QuickPath Interconnect,QPI)[7],在2017年9月升级为超级互联接口总线(UltraPath Interconnect,UPI)[8],是典型的NUMA互联总线;AMD通过无限通道总线(Infinity Fabric,IF)实现NUMA互联[9]。龙芯在其3B1500及以后的产品中,通过HT传输总线(Hyper Transport,HT)实现NUMA互联
[10]。