海量数据正以***的增长趋势冲击着整个数据中心行业,数据中心建设者们不得不以一种新的思考方式去重新审视IT系统架构。服务器作为数据中心的核心部件之一,为了适应未来大规模业务增长的需求,也需要对其架构进行优化和重构。
服务器的硬件重构关乎大规模数据中心的效率和成本问题,目标是降低服务器硬件购置成本、提高服务器硬件资源的利用率、降低服务器运维成本,降低综合TCO。
腾讯作为服务器"天蝎标准"的***者,一直在服务器领域深耕细作,精细化运营。尤其在新技术领域敢为人先,那么对于服务器资源池化技术,腾讯又是怎么看怎么做的呢?请跟随小编去一步步探讨。
WHY服务器资源池化?
腾讯的现役服务器超过数十万台,其中传统的机架式服务器占比超过90%。传统的机架式服务器计算、存储、网络资源配比较为均衡,具有很好的通用性,是比较典型的"One size fits all"方案。所以,在腾讯十多年服务器发展历程中,机架式服务器承担着非常重要的奠基石作用。但是,随着腾讯的单体业务的规模膨胀,传统机架式服务器在应对大规模业务模型时,显露出些丝疲态,在运行某一种资源密集型的应用,效率不够高,还影响密度。譬如:
计算密集型应用,空着的内存插槽、驱动器仓、扩展槽位都影响计算密度;
内存密集型应用,驱动器仓和扩展槽位可能是浪费空间;
存储密集型应用,CPU 和内存的设计配置过高了……
为此,我们付出的代价是:定制不同型号的服务器。目前腾讯现役机型超过百种,新采购机型超过数十种。服务类型的增加,不仅给服务器的资源管理带来了困难,也给服务器的运营增加了很多困难和成本。
传统机架式服务器应对大规模数据中心暴露出来的问题,不仅仅是腾讯一家,业界很多互联网企业、云服务提供商都面临着这个问题。数据中心的负责是多样性的,下图很形象的展示了数据中心不同负载对CPU、MEM、IO的需求:
数据中心工作负载的多样性,横轴是I/O 密集程度,纵轴是CPU 和内存密集程度,可见一个计算和存储等资源配比相对均衡的系统,是很难做到对多种不同应用优化的。
另外,不同类型资源之间也存在生命周期不同步的问题。譬如,CPU 是发展速度最快的,每两三年就性能翻倍,然而存储的技术发展相对缓慢,从而会造成CPU性能和功耗的浪费。
服务器资源池化技术,除了能够带来灵活、弹性的资源部署,提高资源利用率这个优势,还能够更有效的提高服务器的故障修复能力,提升服务器运营效率。综合腾讯十多年的运营数据,硬盘是故障率***的部件之一,在实现存储池化技术后,多盘存储资源池为单体硬盘提供了很好的冗余设计能力。当单个硬盘出现故障后,可以及时使用其他硬盘资源进行无损恢复,无需立即现场更换硬盘。
谁在研究服务器资源池化?
为了解决这个问题,业界以Intel、Google为首的多家公司着手研究新型的服务器架构。
Intel提出了RSA(Rack Scale Architecture)架构、Google携手伯克利大学提出了WSC(Warehouse Scale Computer)的概念。Intel的RSA架构已经有了清晰的架构设计和路标,目前原型机已经面世。而Google的WSC仍在概念阶段,只有简单的时间表,2020年。
服务器资源池化的挑战?
在这里,我们以Intel的RSA为范例,简单介绍一下服务器资源池化技术。用一句形象的话来比喻RSA:Rack As a Server,即一个机柜就像是一台大型服务器。Intel RSA(Rack Scale Architecture) 架构提供了一种机架重构的方案,其思想是将几种重要的资源池化:CPU 池、内存池、存储池,池化的RSA 模型可以很方便地进行管理和扩展,并降低运行维护成本。业务软件或者OS的视角看到的还是一台传统的服务器,有CPU、内存、硬盘、网卡等,如下图所示:
服务器重构并资源池化后,面临的***的挑战就是,挑战一:互连与时延(拓扑结构与接口);挑战二:配置与管理(协议与监控)。
挑战一:互连与时延。资源池之间的网络互连,在链路层协议上,可以有很多种,Intel RSA采用的是以太网,行业上还有其他公司采用PCIe、SAS、Fabric等。不同的网络互连协议,各具优缺点,我们也期待着各种技术的探索成果。但是在物理层上,各家的观点殊途同归:硅光技术。硅光技术不仅继承了光纤传输的高速、低时延的特点,同时也大幅提升了接口密度。
挑战二:配置与管理。服务器的部件资源池化后,需要对部件资源进行发现、记录、分配、回收,以及对逻辑服务器进行组装、卸载等,需要定义一套新的管理软件和协议。目前Intel定义了一套RSA管理软件,提供对服务器资源池的发现、配置和管理。
RSA管理软件不仅仅实现对内部池化资源的配置管理,同样对上提供管理接口,对接OpenStack或VMware等管理软件。服务器资源池化后,产生了大量的配置管理的数据,传统使用I2C总线的IPMI接口和协议,由于传输速率低、协议承载信息量小,无法满足资源池化的配置管理需求。此前,Intel联合HP、Dell建立了一套新的数据中心管理软件协议Redfish,也被Intel导入RSA软件架构,用于优化资源池化管理。
业务软件的同事可能比较关心,服务器资源池化后,对业务软件会有什么影响吗?答案是,不会。服务器资源池化,是从硬件角度对服务器硬件资源进行优化重构;从软件层面来看,是透明的。创建了逻辑服务器后,软件和OS看到的与传统服务器的硬件部件没有区别。
服务器资源池化能力如何助力云服务?
目前虚拟化技术和云服务都是基于虚拟化技术,将单个服务器硬件虚拟成多个虚拟机VM,其目的也是在于提高服务器资源的利用率。但是,由于单个服务器的CPU、内存、硬盘资源颗粒度较小,因此在虚拟化应用中,经常出现资源配置空洞,要么是CPU核数没有分配完,要么是内存没有分配完,更多的情况是硬盘容量存在大量空闲。
而服务器资源池化可以更好的解决上述问题。据了解,现在腾讯云的虚拟化服务是一虚多的能力,而未来将借助服务器资源池化技术逐步实现多虚多的能力。
这样一来,腾讯云通过软件层面提供的虚拟化服务,同时利用服务器资源池化在硬件层面提供的虚拟化能力,能够为用户提供更加灵活的云服务。服务器资源池化后,创建出来的逻辑服务器上,可以继续运行虚拟化和云服务器软件,再创建出虚拟机给用户使用。服务器资源池化后,可以进一步减少云服务产生的资源配置空洞,进一步提高硬件资源的利用率,减少TCO成本。
腾讯目前在服务器资源池化上的研究进展
2014年腾讯服务器平台中心基于资源池化的概念,进行了存储池化的技术预研和POC验证。使用现有的传统机架服务器,搭建了一套存储池化的简易POC模型,如下图所示:
将20台腾讯的B/C类服务器去除硬盘后,组成计算资源池,使用1台TSx存储服务器作为存储资源池,然后基于万兆网络完成存储池与计算池的互连。资源配置方面,将存储池的硬盘划分成20个LUN,用于分配给20个Bx/Cx计算节点的启动盘。
实验中,腾讯实现了20台逻辑服务器的组装,实现了服务器的批量自动部署、远程网络启动、逻辑服务器复位后自组装启动等功能,证实了启动盘存储池化的可行性设计。性能数据方面,通过多次测试和数据捕捉,发现单台TSx的磁盘性能基本能够满足20台Bx/Cx的同时启动的数据读取需求;网络端口的流量上,10GE网卡刚刚能够满足20台Bx/Cx的数据吞吐量要求,而且网络吞吐量与启动节点数成正比,如下图:
整体数据表明,存储池化技术是可以满足多计算节点共享启动盘的需求的。这为服务器弹性部署和扩展提供了强有力的数据支撑。为腾讯下一步在服务器资源池化的研究奠定了坚实的基础。
前文也提到过资源池化在故障运维上带来的优势,为此,腾讯在2014年的POC验证中,也设计并验证了单体硬盘故障的无损恢复功能。
在POC设计上,存储池采用全局RAID设计,当单个物理硬件出现故障时,不影响业务使用。单个资源的故障可在线使用备用资源实时无损修复,无需人工立即到现场进行磁盘更换修复。
综述
服务器资源池化技术在灵活弹性部署、故障冗余能力、降低TCO等方面都具备优势,但是在技术细节上还存在很多疑问有待探索。腾讯正持续跟进行业***的资源池化技术动态,保持与合作伙伴的密切合作,设计T-Rack3.0,并把T-Rack3.0(Tencent Rack3.0)中标准化的、共性的设计开放到天蝎3.0标准中,优化行业整体实力。
相信未来腾讯在云计算、大数据领域会给整个行业带来更具竞争力的服务器解决方案。