在OCP China Day 2022开放整机柜分论坛回顾的第一部分,来自益企研究院的张广彬(狒哥)回顾了《开放整机柜简史》(后面的嘉宾多次call back其中的内容,没看过的可以对照一下);本文为第二部分《京东云天枢服务器的思考与实践》,以下是演讲的主要内容,也可以直接观看视频获取完整信息。
https://www.bilibili.com/video/BV17V4y1L7oH/?aid=858918316&cid=857557888&page=1
我今天分享京东云开发代号为“天枢”的整机柜服务器,对它的一些思考和实践,以及一些上线之后的收益。具体包括三个部分:
- 对我们自己的需求或者产品设计目标的一些思考,也是希望和各位分享的重点;
- 简单介绍这个产品的方案,最终真正做出来的东西是什么样子;
- 上线、生产化运营之后的一些收益和经验。
就像狒哥刚才提到的,市面上有很多很优秀的产品设计,也已经发展很长时间了,为什么京东还要自己再去重新定义一个产品设计?我们用了差不多三年时间把这个产品重新开发出来,是与市面上已有的其他产品不太一样的一个产品,源于我们自身的需求和想实现的目标。
因为整机柜产品也跟了很长时间,我们以前都讲整机柜服务器实际上以跳出机箱的维度,从机柜的视角在看我们怎么去做这个产品。最近几年我觉得这个想法还是很有局限性的,实际上我们现在在做的事情是以数据中心的视角,以整个基础设施的视角在思考我们应该设计一个什么样的服务器,这个服务器必须要和数据中心的风火水电基础设施能紧密的协同起来,同时也需要和我们上面运行的应用、我们的业务能够结合起来,只有这样做才会是一个优秀的产品。
这就是我们为什么会发现狒哥刚才分享的时候提到,现在几乎所有的整机柜产品都是由互联网公司发起然后去定义的。原因很简单,就是因为互联网公司才真正从机房建设,到设备的设计,再到上层的应用程序,完整的跑整个流程。在这个过程当中才可以说找到很多特殊的需求,然后做出特殊的产品设计来。
我们的核心需求是什么?京东大家应该都很熟悉,作为同时具备实体企业基因和属性、拥有数字技术和能力的新型实体企业,与现在比较火的互联网公司存在很多差异,京东并没有非常非常多的媒体类的应用。我们是做商城的,以零售为主,不像短视频或者其他的一些公司。他们有很强的视频或者是媒体处理的需求,所以对异构、存储容量有很高要求,而我们就不会有那么多。
另一方面,我们不会有非常非常强烈的海量冷数据的要求,所以这就是为什么京东的产品最后做出来之后会和现在市面上的东西不太一样。我们也会关心异构和冷存储、分级存储,甚至是冰存储这一类的概念,但是我们真正做产品的时候,还是要和我们的应用紧密相关。所以我们从一开始就想得很清楚,这个产品要做的就是聚焦承载高CPU算力这样的通用算力平台,可以承载热存储和温存储的应用。相对来说我们应用的没有那么多的冷存储、异构,尤其是大规模异构产品,所以一开始的时候就没有考虑放在现有产品的节点设计上。当然我们有预留一些设计,未来有需要的时候可以开发。
第二是要预留至少三代平台的支持,为了保护我们的投资。就像刚才说的,要用整机柜服务器,做数据中心的时候就要开始设计;如果要做液冷的话,更是要从一开始的时候就做设计。一个数据中心生命周期很长,我们不可能做一个整机柜产品比如说某一个机柜的规格,放进去用了两三年之后,发现下一代平台需要用一个新的机柜去承载。尤其是京东是国内对IT设备及数据机房应用和需求比较早,历史相对比较久的公司,所以有很多历史上合作的机房,这些全部都要考虑在内,所以我们希望这个产品要预留三代平台的支持。
然后要有很强的通用性,能够在各种各样的部署环境下使用,既可以放进我们自建的新机房,也可以放进液冷机房,同时还要能放进就像刚才狒哥有介绍的,可能一个机柜只有几千瓦电那样很老旧的机房。这就是一开始很重要的想法,我们不可能做一个只能放进新机房的产品,这不符合我们的实际需求。我们还要能支持各种各样的设备类型,尤其一个机柜级的数据中心级别的产品,一定要能放其他东西。能支持各种各样的平台,这个就很简单了,从业务的视角也希望给我们的应用端提供各种各样的可能性,不能只能支持某几种CPU。
我们希望它能平滑对接现有的产业生态,虽然我们会根据自己的需求完全重新做一个东西,但并不意味着全部都要重做,重新发明轮子,然后定义很多的器件级规范,这是很不科学、很不经济的,没有意义。核心在于我们能从更大的维度去设计这个事情,而不在于我要去实现一些很小的技术点。
效能包括两方面的问题:一方面国家有提双碳目标,就算没有双碳目标,因为运营数据中心要交电费,能省下来的都是真金白银,所以我们一定要强调高的用电效能。从另一个视角观察,我们要给应用方、我们的应用程序提供更高的效能。
另外是低成本,在互联网以外的企业很难有我们这样的体量,所以会考虑为了降低成本做一些基础架构的池化,比如刚才狒哥讲到一个点,就是电源共享电源箱,可以有机会用更少的电源模块的数量或者更少的冗余的功率去实现对更多的机器的可靠性的保护,不会因为断电降低在线的SLA。
要大量使用模块化设计,可以把一些不同的功能解耦去演进,我们不需要每出一个新的东西或者每导入一个新的,譬如换一个CPU的供应商就要重新做一个机器,这不经济,所以我们会大量用模块化的设计。而从软件和运维的视角,我们会想方设法让产品的自动化程度变高,可以自动去完成一些运维的动作。另外要足够的智能化,当你的应用体量比较大,每天都有设备在线上发生故障的时候,必须能够智能化的尝试自己处理一些状况,这是个偏软(件)的功能。
围绕着这些产品需求和目标,我们定义出来的产品是什么呢?
首先介绍一下这个结构,可以整机柜和标准服务器兼容,刚才狒哥已经做过很多铺垫,这是一个很重要的特点。
模块化设计之后,可以灵活地做前置或者后置IO。如果要和传统设备混合使用的话,应该是后IO的,因为传统设备都是后IO,我相信在座的有运维经验的人肯定不会接受一个机柜有一些设备的线从前面走,有一些设备的线从后面走,这是很灾难的。
刚才提到要让基础设施部分支持三代甚至更长的平台,所以在结构散热和供电方面预留支持的能力。以冷却来说,CPU的风冷可以做到500瓦(W),液冷可以做到800瓦,甚至更高,现在用的方案不做器件性的变化、只做流速调整就可以支持到800瓦。如果需要更高,我们可以通过改变冷板设备等来实现。
也可以灵活兼容集中(直流)供电或者是传统的AC(交流)供电,这样可以让我们的产品支持不同的数据中心,或者说让我们的机柜可以支持不同的设备。混合散热实际上就是用液冷和风冷结合的方式来把散热的效能提升;最后是整机柜都有的特性,就是可以做L11整机柜交付,效率可以大幅提升。
机柜系统,这个图刚才狒哥用过,上午浪潮的演讲里也有。外尺寸是标准的机柜尺寸,好处是机房不需要重新做规划,后面根据我们使用的节点不同可以选择要不要装分集水器,放母排(busbar)还是放PDU都可以。
这是目前我们唯一在线上使用的节点,没有像比如Open Rack的节点那么丰富多彩。这个产品支持整机柜,或者放在普通的机柜里面用标准的供电也可以,是完全模块化的一个设计,所有的模块我们在图上演示出来的这些可以移除的东西,真的在产品上是可以被移除的,而且免工具。
我们把风扇移到了机器的最后方,从而使得对硬盘的干扰变少,提高了硬盘的性能和稳定性。
大家可以看到我们有几个思考的方向。第一我们尽量把业务功能涉及的模块放在前面,比如存储模块、IO模块,前出线都是这个原因,所有跟实际功能有关的东西我们希望在前面可以被维护。放在后面就是基础设施层面的,风火水电的,比如散热、供电是放在后面的。
内部用来放电路板的空间非常非常大,我们已经做到了19寸产品里几乎最大,好处是很容易把市面上不高于这个尺寸的任何一个电路板、任何一个平台的方案都可以放到里面去,而且我们在设计的时候,固定方式、IO出线方式、散热全部都是模块化的。不会出现某一个主板必须要配合我的电源出的位置,甚至你用什么样的电源插接头都没关系,我们已经考虑过中间有一些转接可以帮助实现所有模块,几乎市面上所有19寸以内的主板都可以放进去。这也是刚才提到的,我们希望给我们的业务部门提供尽量大的灵活性。
节点的前后IO是一个简单的展示:如果是后IO的时候,我们会把网络插卡,包括PCIe设备放在后面,这样和传统设备一样,包括同时用普通的AC电源;如果是前维护的时候,网络模块就是放在前面的,相应的后面就会用集中供电方式接铜排。
这是我们和其他服务器设计的一个异同。其他整机柜一样,我们是专门为L11交付进行整体设计的,也就意味着它的运输可靠性是做过通盘考虑的。如果是标准服务器的话,努力可以做到L11,但毕竟它不是为这设计的,所以会有一些困难。系统供电可以选择传统的PDU或者也可以用busbar,也比较灵活。散热部分把风扇放在后方,这样可以真正实现不动节点的情况下做热插拔,和其他一些设计会稍微有些不一样,尤其和标准的机架式服务器,虽然也是可以热插拔的风扇,但是要维护的时候必须要把这个设备抽离出这个机柜,其实在现场是不太可能做的。
IO的方向可以前、后,我们的节点可以放进我们自己定制的机柜,也可以放到普通的19寸机柜,满足我们自身在不同数据中心的部署需求。同时我们也可以兼容普通的19寸标准的服务器或者是存储、网络设备,都可以放进我们的机柜,灵活性会非常好。
狒哥也提到21寸的宽度肯定空间利用率高一点,这一点确实可以认为它是有一个妥协的,和标准的机架式服务器一样。
最后简单分享两个图,一个是我们的实践收益,这是在我们廊坊数据中心运行下来,包括对成本的评估之后,看到的一个情况。这里展示的是液冷的方案,建设成本会比普通风冷要高2%,高出来的这部分主要源于额外多出来的这些连接器管线,但是因为节能这个特性,可以替我们省很多电,在第15个月的时间就可以做到和风冷的设计盈亏平衡。我们一个产品大概在线上的生命周期不同应用不一样,按照五年算,60个月,在运行末期我们预估这个产品可以比传统的风冷产品TCO能降低5%左右,这个数字还是比较好的。
这是我们实际线上业务运行的一个情况,曲线实际上是横跨很多天的,可以看得到京东业务的特点就是很多人早上起来之后会刷一下,上班和下班之后再刷一下,买点东西,然后睡觉了,负载就会降下来。下面这组是同样我们天枢整机柜,但是风冷的,我们的机房给他设计的是8.8千瓦(kW)每个机柜的供电能力,所以放了14台服务器;上面这个就是液冷的,因为液冷散热比较好做,他不太依靠机房的空调所以说我们给他放了18台机器,这样的话我们在同一个数据中心里面可以多放接近30%的机器,空间的成本会好一点。
可以看到同一天功耗的峰谷值差异很大,下面几乎只有它的一半到三分之一,这意味着我们的这个产品设计结合了水冷之后,在低负载的时候功耗能降得下来,在高载的时候因为它有更好的散热,所以CPU可以更多时间运行在高频,甚至是超频的状态下,所以它的功耗又是能上去的。
我们放的节点数量不一样,看绝对值是没有意义的,但是相对的差异很明显。这也是我们觉得采用液冷设计一个非常非常好的收益。
最后分享三个点,因为在座有很多可能是行业里面的厂家,也会有一些想要看一看京东作为一个客户会有什么样的经验可以分享。
第一个是要想清楚自己应该做什么,不要去做技术的狂热爱好者,就像刚才狒哥讲有一些产品极限的利用它的(内部)空间,设计出了一个非常强大的产品,但是很有可能到线上之后发现机柜供电不行,只能放四台;或者太重了拉不出来、上架上不上去,机柜撑不住,所以我们要理智客观一些,产品的设计要根据你的实际业务需求来,然后把一些相对次要的需求给过滤掉。比如我们就过滤了支持大GPU这样一个设计,我们清晰的去定义我们这个产品的设计。
另一个是要用很强的灵活性去对抗复杂性,这在京东也是很典型的,因为我们商城本身就有很多的业务系统,再加上物流、健康、金融,现在也在做云,所以我们有数不清的应用,他们会提出数不清的需求,会对你有各种各样的要求,但我们很难把他们所有的东西都做出一个机器来去满足ta,所以我们之所以用模块化,做很多这样的设计,就希望我们的方案设计可以让一个产品以一敌百,这个产品在线上基本可以满足差不多80%以上的应用系统的需求,还会有一部分,可能还是要用异构,还是要用冷存储,会用其他产品替代。
最后一个还是刚才有提到的,“最好的”不一定是最好的,spec看起来最fancy的不见得是你真的用得起来的,你一定要把它和其他环节匹配,这样才是可以落地的产品,而不是说看起来很漂亮,结果用了几年之后发现不好用,我也不买了,实际上在行业里面是可以看到很多这样(我们认为是)失败的案例。
第三部分,我们将回顾百度和台达专家的演讲内容,敬请期待!