路服务器一直是技术复杂度最高的领域,在实际应用中,承担的都是关键应用,如数据库、云计算等,而且随着新一代信息技术的发展,用户对其更是青眼有加。出色的扩展性和可靠性是多路服务器最明显的优势,本文就谈谈多路服务器的扩展性和可靠性设计。
扩展性就大规格
当业务实现了翻番增长后,是要购买一台新服务器,还是购买一些模块来扩展原来的服务器?客户显然更倾向于后者,因为可以节省投资。这就是扩展性带来的直观受益。
多路服务器在设计方面要将规格尽量做大,将处理器、芯片组等核心器件的扩展能力发挥至极限。以八路服务器 天梭860为例,CPU支持3组QPI总线,通过排列组合,可以实现8颗处理器全线速互联;内存扩展方面,每个处理器有4个访存通道,在每个通道上配置Memory buffer,扩展内存数量至每处理器24条,确实把CPU,Memory buffer的扩展能力发挥至极限。
在I/O扩展方面,TS860支持26个PCI-E3.0插槽,也是业界最大的扩展性。
高扩展还会有效提高平台的负载能力,这对于虚拟化、云计算、数据库等应用至关重要。浪潮新一代高端8路服务器TS860,单机配置144个核心,12TB的内存容量,这样的基础平台可以支持更多的虚拟机。对数据中心而言,将虚拟机部署在多路服务器上,可大幅降低能耗,并可减少被管理的节点。
高扩展性会给服务器设计带来一系列难题,最大的难题是走线数量多,密度大,高速信号的串扰问题不好解决,而且中背板连接器数量增加,插拔力增大,对中板以至机箱的机构强度挑战很大,浪潮都很好的解决了这些问题。
高扩展需要高性能设计
值得注意的是,读者可能存在一个误区,那就是扩展性是部件的堆砌,配置越高,扩展性越高。其实不然,扩展性必须有良好的性能设计作为保证,系统整体优化尤为重要,而且这也是一项非常专业和重要的工作。举个例子,仔细研究Intel内存控制器说明书的人会发现,同一个内存通道插两根内存比插三根内存跑的速率高;在整系统中也是一样,CPU间的访问机制是以Home Snoop还是以Source Snoop,放几颗CPU,通过哪种机制访问其性能是不一样的;访存性能尤为关键,文章前部分也说明了访问cache,本节点访存,和跨节点访存在性能方面的差异,那么如何保证cache的高命中,如何控制数据尽量在本NUMA域操作,是浪潮人研究的重点;同时良好的散热环境和较低的数据传输误码率都将提升系统性能。
细致、周到、专业,浪潮在性能设计方面有很强的技术积累,有因必有果,天梭860在SPEC CPU测试中全球排名第一。
可靠性设计,要并联不要串联
最后,说说系统的可靠性,也是作为多路服务器最为关键的特性。
试想如果多路服务器不稳定,那么数十TB的内存计算,几百个的虚拟机将遭受灭顶之灾。所以多路服务器的可靠性至关重要,业界要求至少5个9,也就是99.999%。
可靠性设计,要考虑两种模型,一种是并联模型,另一种是串联模型。并联模型是指该部件或器件损坏后仍有其他的并联设备正常工作,整系统仍可保持工作状态;串联模型是指如果该部件或器件损坏,那么这里就是个单点故障,系统无法正常工作。
所以,在设计时,要注意尽可能设计并联模型,降低单点故障点。如业界常见的冗余风扇,冗余电源,都属于并联模型。浪潮不但在部件上做到并联模型,在功能电路上也做了并联设计,如核心总线byteline就是并联设计,出现故障时,通过降级带宽的方式保证数据继续传输;再者,所有的数据都是参考时钟的,为了保证系统可靠性,浪潮将特定的数据lane设计为时钟的并联模型,当时钟出现问题是,数据lane降级带宽,拿出特定的数据lane代替时钟传输,以保证系统正常运行。
可靠,要递进式容错
系统不仅要能够容忍各类错误,还要侦知、记录和管理这些错误,因而,关于可靠性设计,还有一个重要的方法就是递进式容错。
意思是将容错分为几个阶段,如初级,中级和高级。以出现访存故障为例,当有1bit数据错误时,系统采用自动设置的ECC校验并修复出错bit。我们认为系统处在初级容错阶段,只记录日志不去干预处理。
当再有额外的bit数据出错时,我们认为系统处在中级容错阶段,就要引起足够重视,执行数据迁移,启用并联的冗余模型,并隔离出错单元。
如果再次出现bit数据错误,则系统进入高级容错阶段,大范围隔离故障单元,如CPU,内存,I/O等,以降低性能为代价,保证整系统正常运行。