1. 执行概要
CDN 是为加快网络访问速度而优化的网络覆盖层,被形象称为“网络加速器”。它依靠部署在全国甚至全球的边缘服务器形成一张虚拟网络,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户能就近获取所需内容,从而降低网络拥塞,提高用户访问响应速度和命中率,以显著改善互联网的服务质量和用户体验。
CDN 的关键技术主要在分发和存储的层面,对网络带宽和存储性能都有一定要求。在早期发展阶段,CDN 服务主要偏重对页面等小文件的缓存,使用千兆级别的网卡便可满足服务器带宽要求,相应的存储性能要求也不算高。但是当视频业务开始爆发时, 服务器网卡需要进化到万兆级别,对存储的性能要求也大为提升,带宽和存储之间的匹配问题开始浮现,由于 SATA 接口固态盘(以下简称 SSD)和 SATA 接口机械硬盘(以下简称 HDD)的 I/O 能力不强,CDN 厂商开始考虑优化网卡的性能过剩问题。而接下来5G、物联网 (Internet of Things, IoT) 和人工智能 (Artificial Intelligence, AI) 等先进技术的交互发展,不仅带来了爆炸式的流量增长,对存储的低延迟和高吞吐量也提出了更为严苛的要求,这就对 CDN 服务器提出更高数量级别的要求——CDN 厂商需要用到 25Gbps 甚至 100Gbps 级别的网卡,但如果没有与这类高级别网卡相匹配的存储方案,就必然会导致更大的带宽浪费。因此,CDN 厂商们都在寻求一种既能提高带宽又能优化存储性能的高性价比硬件方案,来优化其 CDN 服务器的吞吐能力。
基于这一认知,金山云与英特尔协作,开展了一系列探索和试验,并最终发现,将第二代英特尔® 至强® 可扩展处理器 + 英特尔® QLC 固态盘这两款硬件组合,来替代其旧方案,可将单机服务能力提升高达 4 倍1,从而为金山云 CDN 服务带来领先技术优势。这一方案同时还能实现革新 CDN 架构、降低回源率成本等收益。本白皮书就展示了英特尔助力金山云优化 CDN 存储方案的细节和成果。案例研究案例研究案例研究。
2. 业务挑战
在金山云 CDN 服务场景中,用户发出请求后,系统首先会在距用户最近的服务器查询数据,如未命中会由近及远到各服务器查询, 如果数据在就近 CDN 服务器中都得不到匹配,则需要向源站服务器发出请求,即“回源”(如图一所示)。金山云众多客户用例流量模型命中率往往差别很大,有些可能高达80%~90%2,有些却只有60% 左右2。因此按照热点属性,金山云CDN 业务分为高热点和低热点业务。高热点业务命中率较高,回源率较低;低热点业务则相反。而回源率的差异,就意味着CDN 服务器对不同业务的响应延迟时间不一,其中回源率高意味着CDN 服务器要花更多时间去源站请求和获取数据。
图一 用户请求响应流程图
对于高热点业务,即用户请求的数据在靠近用户的 CDN 服务器便能命中的情形,数据能快速从服务器内存或者存储介质中提取到, 网络带宽和存储 I/O 能力弱的一方,就决定了服务器的响应速度(一般都是存储 I/O 能力相对较弱);对于低热点业务,因为命中率低,用户请求很容易沿着内存缓存、SATA SSD 和 SATA HDD 路线传导,转化为磁盘的 I/O 请求,这就对存储的IOPS 性能和响应延迟提出了更高要求。由此可以看到,无论高热点还是低热点业务,存储介质的性能与 CDN 系统的整体性能表现息息相关。再加上金山云的 CDN 业务增长非常迅猛,目前储备带宽直逼100Tbps2,如何匹配和充分利用这些带宽资源,就是对存储的严峻考验——要在低延迟和高吞吐量方面打造金山云 CDN 服务器的优势,势必需要导入具有相当 IOPS 能力的存储方案。
另一方面,低热点业务的高回源率同时也意味着高带宽消耗, 而高带宽消耗又会直接导致宽带成本的增加。随着金山云 CDN 各种不同流量模型用户用例的增加,回源率带来的带宽成本压力也越来越大。这对成本敏感型的 CDN 行业来说,无疑是个重担。因此提高服务器的 I/O 速度以降低延迟,增加服务器存储容量以降低回源率也成为了金山云 CDN 服务器要解决的核心问题。
为应对上述问题,金山云的工程师们推出了名为 DMA 分级缓存的 技术,实现了对当前硬件配置(SATA SSD + SATA HDD + 内存) 接近其性能理论值的利用。然而,研究团队认为这套硬件配置已无进一步挖掘的价值。接下来,他们需要有更好的存储硬件介质来满足当前以及未来三年 CDN 服务的需求。针对金山云 CDN 的诸多业务场景,能否用一套硬件来实现对 IOPS 能力要求悬殊的所有的业务的覆盖,就成了金山云的另一个研究重点,因为一套硬件覆盖所有业务场景对全网流量调度的便捷性和成本控制方面具有重要意义。
3. 金山云 CDN 的困局与破局
3.1 金山云 CDN 瓶颈——单台设备的服务能力
据金山云介绍,存储介质的 IOPS 能力长期以来都是 CDN 行业的一个瓶颈。比如 SATA SSD,它的混合读写吞吐能力是 150MB/s3,SATA HDD 的吞吐能力是 40MB/s2。金山云 CDN 原有设备的配置为 12 块盘(系统盘除外)——4 块 SATA SSD 和 8 块 8TB 的 SATA HDD。按照最理想的情况计算,这个方案最大的 I/O 带宽是 920MB/s4。可以看到在该方案下,其一, SATA HDD 和 SATA SSD 的IOPS 能力太低,在应对低延迟应用上显然 “无能为力”;其二,服务器透过带宽输出的数据流量受限于存储介质的 I/O,后者的低带宽就变成了卡脖子的问题,网卡再快也只能加剧网卡性能过剩、不能被充分利用的矛盾。单台设备的服务能力主要取决于其所能提供的加速带宽,因此,当前方案存储介质在“加速”和“带宽”两方面的性能都无法满足金山云 CDN 服务器的业务需求。
然而,如前文所述,CDN 服务器还有个特点,即当前节点没有的内容都会从源站获取,因此会产生回源带宽消耗。目前 CDN 厂商往往在200Gbps 服务能力的节点上徘徊, 因为建设200Gbps 及以上服务能力节点,需要部署数十台服务器,带来大量的机柜成本和运维成本;而建设200Gbps 以下服务能力节点,每台CDN 服务器存储的内容相对较少,CDN 网络服务器的节点数量则会大量增加,这必然带来更多的回源成本。源站拉数据走网络的时候产生的带宽成本甚至比单纯的服务器硬件成本更高。因而,金山云CDN 服务器处于扩容和成本的对立之中。
因此,金山云希望突破存储介质的I/O 瓶颈来提升单台设备的服务能力,扩大单台CDN 服务器的存储容量,适当减少CDN 服务器数量,以突破当前整个CDN 网络基础架构的节点大小瓶颈, 推动CDN 技术架构革新并缩减成本开销。
3.2 英特尔如何帮助金山云 CDN 突破困境?
3.2.1 TLC 还是 QLC——金山云的抉择
在综合考虑到CDN 的核心瓶颈和 5G、IoT 和 AI 等新兴业务或服务带来的流量压力后,金山云确定升级硬件方案势在必行。可是理想的方案该是怎样的呢?从提升存储介质 I/O 性能的角度来看,将旧方案采用的 SATA SSD 和 SATA HDD 替换成NVMe SSD 是可行的思路。NVMe SSD 里到底该选择 TLC SSD 还是 QLC SSD ?金山云的工程师与英特尔团队对此开展了大量的预研工作。
双方的研究结果表明,TLC SSD 的 I/O 读写能力可满足金山云对性能的需求,但会带来较大的成本压力。鉴于此,英特尔团队向金山云推荐了于 2018 年推出的英特尔® QLC 3D NAND SSD。与 TLC 相比,QLC SSD 每单元位数增加了 33%3,而与 HDD 相比,可实现高达 3 倍3的存储能力提升,因此可显著降低运营成本。然而,行业内尚未有过将 QLC SSD 应用于 CDN 的先例,且 QLC SSD 的写寿命 (DWPD) 比 TLC SSD 要短,金山云团队对这一产品能否在寿命和响应延迟方面满足 CDN 的需求持怀疑态度。但考虑到英特尔® QLC SSD 具备更大存储能力、更高密度和采用了 PCIe 接口等优势,以及有英特尔团队的丰富经验和强大的技术支持作为加成,金山云研发团队决定采用容量为 7.68TB 的英特尔® QLC SSD P4320 搭建一个节点进行试验。
3.2.2 英特尔® 固态盘赋能金山云成功破局
如前所述,在金山云 CDN 原先的设备配置为 12 块盘(系统盘除外),有 4 块 480GB SATA SSD 和 8 块 8TB 的 SATA HDD。在新方案中,金山云舍去了旧方案中的 SATA SSD 并将 HDD 一比一替换成了容量为 7.68TB 的英特尔® QLC NAND SSD P4320。
英特尔内部测试显示,此款 QLC NVMe SSD 的顺序读/ 写性能高达 3200/1000MB/s,4KB 数据包随机读/ 写能力高达 427K/36K IOPS3。8 块 QLC NVMe SSD 加持下的单台服务器 I/O 性能, 比较接近于两张25Gbps 网卡的吞吐能力,能充分发挥网卡性能, 不至于造成带宽浪费。除选用 QLC SSD 外,金山云还选择了第二代 至强® 可扩展处理器中的金牌 SKU 和 25Gbps 网卡,将三者组合用于构建新的 CDN 服务器,以求从存储能力、计算能力和网卡 速度三个方面综合提升单台服务器的服务能力。
按照金山云的计划,在每个节点放置 10~12 台规模的服务器, 以期望一个节点达到 200Gbps~300Gbps 的服务能力。有了 QLC SSD 这样的“好鞍”,自然需要搭配第二代英特尔® 至强® 可扩展处理器这匹“好马”,该处理器的强大处理能力成为了连接网络和存储能力的强力纽带,它们的组合使得金山云 CDN 能够更轻松地搭建出具备更大服务能力的 CDN 节点。金山云使用该方案搭建了第一个节点,为其配备了 20 台拥有8 × 7.68TB 英特尔® QLC SSD P4320 存储方案的服务器设备。这意味着该节点拥有了 400Gbps~600Gbps 的服务能力。这与以往很难达到的 200Gbps 服务能力相比,提升足足达 2~3 倍5,也使得金山云 CDN 建设大节点的目标变得更为可行。
虽然金山云团队在理论评估中预期混合读写下存储介质应具备 128MB/s 的写入能力,QLC SSD 的能力尚达不到该指标,但可以从运营角度,通过流量调度适当控制 CDN 服务器的回源率,从而控制存储介质的的写盘量来规避这一问题。实际业务测试下来发现其写入能力约为 80MB/s1,虽然低于理论预期值, 但相比原方案也有了相当程度的提升,这使得 QLC SSD 具备了进入规模化部署基础条件。
3.2.3 着眼软件优化,释放硬件潜能
众所周知,如果软件不够优化,那么即使硬件性能得到提升也很难充分发挥其优势。因此,金山云和英特尔在软件优化方面展开了深度合作,以期将系统调整到更优的状态。软件同硬件在螺旋交替的良性互动中,可推动应用水平不断提升。
在测试英特尔® QLC SSD 的时候,金山云团队发现其响应延迟2 毫秒以内的百分比并没有达到预期,这是需要英特尔努力的地方,相信英特尔一定能突破响应延迟指标瓶颈。
例如,金山云经过反复测算,算出使用英特尔® QLC SSD 方案的寿命检测理论值是三年时间。这个理论值并不理想,需要采取一些方法来进一步改善。英特尔的工程师团队就此积极配合金山云, 建议通过软件的方式,采取对 SSD 更为友好的访问方式来适当延长其使用寿命。同时,英特尔为金山云提供了许多方法来访问英特尔® QLC SSD 磁盘的一些参数,这有助于金山云的运维平台对英特尔® QLC SSD 进行在线监测,从而让对其使用寿命的监控形成一个常态。
通过英特尔推荐的一些开源工具访问到英特尔® QLC SSD 里面的数据,金山云 CDN 团队可以在一个月、两个月甚至是三个月的监测来推测其当前损耗、寿命下降情况、寿命与其读写量之间的关系等,形成该固态盘的寿命衰减模型,进而推测其在软件优化之后的理论寿命。到目前为止,软件优化的效果比较明显, 金山云对 QLC SSD 充满信心。此外,为应对因频繁访问而对存储介质造成的压力,英特尔还分享了其研发的 SPDK (Storage Performance Development Kit) 技术。未来,双方会就此开展更多合作。
3.2.4 金山云CDN 性能优化成果
2019 年 8 月,金山云在生产环境上线上述全新存储方案后发现, 单台服务器的综合服务能力提升高达 4 倍1。据金山云介绍,此次提升离上限还有约 30%-50% 的差距,这给金山云的软件团队留下了很大的优化改良空间。案例研究 | 推进 CDN 存储创新实现降本增效 2
图二 实际新旧方案单台服务器综合服务能力比较
虽然单台设备的成本有所增加,但是整体性价比以及服务质量有了明显提升。其提升改善效果主要集中在如下三个方面:
1. 改善首包时间——磁盘响应时间更快,终端用户等待时间更短;
2. 降低带宽成本——单台设备的服务能力提高,有利于大节点建设,使得总体回源带宽成本消耗下降;
3. 增加设备可用性——得益于新的硬件方案,其抗压能力显著增强,由此引起的服务质量波动更小。
3.3 金山云 CDN 总体成本大幅降低
CDN 行业 IT 资源方面的投入成本,一部分是硬件购置成本,而更主要的一部分是带宽成本。带宽成本主要分为两部分,一部分是用户访问边缘节点产生的带宽成本,为正常业务消耗;另一部分则是回源带宽成本,通常由 CDN 厂商承担。所谓回源带宽成本是指 CDN 节点从源站获取资源过程产生的带宽成本。回源占用的带宽是 CDN 厂商日常耗费成本较高的地方。
对于金山云 CDN 来说,采用新方案后,单台设备服务能力有了质的提升,不仅可以提高单服务器的网络流量输出能力,还可以建设更大规模的节点,满足支撑金山云提出的 100Tbps 带宽的业务要求,以及低延迟、高吞吐量和业务全覆盖的目标。而更大规模的节点降低了回源率,意味着可以降低其回源成本。例如, 假设以前有两个节点分布在不同的地方且它们的回源率相同,都需要从源站去拉数据,就产生了两份回源带宽的成本。而现在把两个节点合并到一个,就相当于节省了一份回源带宽的成本。这对每时每刻都在产生宽带成本的 CDN 服务而言,会带来可观的成本节约。
更重要的是,随着更多节点基于新方案进行部署,金山云将在软件优化和革新 CDN 的技术上积累和巩固优势。相比于近期可见的成本效益,其有望在未来获取更多市场机会与收益。
4. 结论与未来展望
金山云与英特尔竭诚合作,取得了丰硕的成果。实践证明,使用第二代英特尔® 至强® 金牌处理器搭配 QLC SSD,能在大提高金山云 CDN 的服务能力,并有利于降低运营成本。未来,除部署更多搭载第二代英特尔® 至强® 可扩展处理器和英特尔® QLC SSD 的 CDN 节点外,金山云还将与英特尔继续深入合作,探讨利用软件优化的方法进一步释放 QLC SSD 的性能潜力;开展更多试验,探索搭载更多新方案的联动能,从而在第二代英特尔® 至强® 可扩展处理器搭配 QLC SSD 的新方案之上,助力金山云在边缘计算和链路加速方面的业务提速。