2024年5月9日下午,由中国信通院云计算与大数据研究所、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)共同发起的“大模型时代下的数据底座怎么建设”主题沙龙在北京成功举办。
CCSA TC601,公众号:大数据技术标准推进委员会沙龙回顾!大模型时代下的数据底座怎么建设
腾讯数据编排技术开源协同团队负责人——毛宝龙出席并分享了:《面向AB场景的DOP存缓一体解决方案》。
DOP(Data Orchestration Platform),顾名思义,数据编排平台,也就是提供一个可以把各种不同形式、存放在不同存储系统里的数据编排在一起,为应用提供定制化的、统一的存储视图,并利用分层分级存储和分布式缓存等多种手段提供高性能和低成本的存缓一体解决方案。
在大数据和 AI 场景里,会遇到 AB 数据源的多样性和异构性问题问题,以及存算分离架构带来的性能问题。
我们思考后,实现了一个与 AB 生态结合的存缓系统,可以实现计算加速、资源复用、降本增效,同时应用侧通过 DOP 提供的统一客户端屏蔽存储内部的变更,最终实现高性能、低成本、可灵活调整等特性。
下图是数据编排平台 DOP 整体解决方案和目标。总结来说, DOP 统一管理了 HDFS、COS、Ceph 等多种大数据和 AI 使用的存储系统,为业务提供了存算融合、数据加速、流批一体等能力。
01 数据编排平台 DOP 概览
下图从上到下,体现了数据编排平台 DOP 的每层的作用。
要使用 DOP,一定会先接触到 DOP 的客户端。DOP 的客户端目前有 Hadoop FS 语义的统一客户端,和 POSIX 语义的 DOP-FUSE,来满足大数据和 AI 场景的不同使用方式。DOP 的统一客户端除了提供访问 DOP 存储的能力,还提供了本地缓存,路由映射,统一视图等功能。
下面是 DOP-Cache 也就是介于存储和应用之间的分布式缓存层。被大家熟知的 Alluxio 以及其它缓存系统,目前分别在大数据场景和 AI 场景提供缓存加速服务。
最下面就是 DOP Storage,可以利用 HDFS 、COS、Ceph 等等各种存储系统,以及高密机型,冷热分级分层存储管理,提供的,兼具高性能、低成本、高可用的持久化存储
02 数据编排平台 DOP 统一客户端
DOP 统一客户端,分为 Hadoop 语义的 HCFS 统一客户端和 POSIX 语义的 DOP FUSE。
左边是 Hadoop 场景的 HCFS 统一客户端。可以解决底层存储客户端升级导致计算应用的环境频繁升级改造的问题。可以让业务无感知存储,为提供统一的存储路径,是数据自适应,实现高性价比的基础。
右边是 POSIX 语义的 DOP FUSE客户端,大数据本来有 POSIX 语义需求,AI 也有类似的需求,统一 FUSE 可以让大数据 AI 共用一套 FUSE 客户端。
DOP FUSE 统一客户端,支持了动态挂载,目录编排,路由策略,故障感知和透传和透明迁移等诸多功能。
03 DOP-Cache 重要开源组件 Alluxio 之开源贡献
DOP Cache 作为存缓一体数据编排平台中的分布式缓存层,其重要的开源组件,就是 Alluxio 了。
腾讯,在开源社区上的活跃度和贡献度仅次于 Alluxio 公司。
Alluxio 开源社区在业界只有两名 PMC&Maintainer,其中一个是南京大学的研究生导师,另一名就是来自是腾讯的。此外腾讯还有 2 名 committer。为开源社区累计贡献了400+个 commit。左边的图是贡献热力图,深蓝是咱们贡献的模块,浅蓝是参与的模块,颜色越深,贡献越多越深入。可以看到,腾讯的贡献,是方方面面的。
此外,腾讯与南京大学的老师以及 Alluxio 的内核工程师,联合出版了 Alluxio 的中文技术书籍。《分布式统一大数据虚拟文件系统 Alluxio原理、技术与实践》。
以下是2024 年的一些应用案例:
01 数据分析平台 on DOPCache 方案
这是腾讯内部的一个数据提取与数据分析服务平台,数据平台调用 Spark/Presto 等引擎进行数据分析,DOP Cache 集群作为数据缓存层,负责热点数据的缓存,承接热数据 IO。整体架构如左上图。
为了实现热点数据通过缓存,非热点数据直连底层存储。DOP Client 实现了访问路径黑白名单功能。在迭代过程中,该功能由配置项演变成配置服务。
我们还开发了一个名为 JournalTailer 的服务,负责抓取 Journalnode 中的目标目录的 Editlog,缩小了同步范围,大幅降低同步成本,缩短一致性间隔。
在运行 1 周后,发现部分缓存节点堆外内存 OOM,通过 JVM 团队分析堆外内存占用,发现缓存节点存在内存碎片问题,我们实现了内存分段分配算法,解决了 OOM 问题。
上线以后,在 Presto 和 Spark 都看到了不同程度的效果。
在 Presto 场景,计算任务平均从 1500s 降低到 1000s 左右,下降了 33%左右。
在 spark 场景,日均查询量稳定的情况下,单任务平均等待耗时下降 40% 以上,平均执行时间,下降 45% 以上。
存储节点的连接数峰值从 1000+ 下降到 400以内。
02 封闭域场景 on DOP-Cache 访问 HDFS
在腾讯内部,也有一个特殊的场景,应用运行在 K8S 上,需要同时访问公共 HDFS 和封闭域的 HDFS,而封闭域 HDFS 只能给固定的 IP 开放访问权限。而 K8S 是个弹性环境,没有固定的 IP。因此,引入 DOP-Cache 作为代理层,访问封闭域 HDFS。
这个案例也涉及到部分请求访问封闭域 HDFS,部分请求直连公共 HDFS,因此,也用到黑白名单功能。
对于上层应用来讲,他并不感知到代理层的存在,但实现了同时访问公共 HDFS 和封闭域 HDFS 的能力。
03 DOP-Cache for BigData:LocalCache加速热点 Block
我们除了努力在为业务侧提升性能,还从存储侧进行了优化。通过分析生产集群的流量,发现大部分 I/O 操作通常来自读流量,并且只针对存储节点上的一小部分热点数据,这些热点数据导致存储节点性能变差,甚至严重时影响整个集群的性能。
而恰好我们的机型都有1到2块 SSD 盘,利用 DOP-Cache 的 LocalCache 能力就可以提供热点 Block 文件的本地缓存。
我们还开发了块频次跟踪器,将热点 Block 统计出来,因此命中率非常高。
目前已上线了1000多个节点,命中率平均在60%,高峰期命中率达到90%,且高峰期的连接堆积由4000降低到2000。
04 DOP-Cache for AI:文生图训练加速
这个是 DOP-Cache 在 AI 场景的案例,是给文生图的训练加速场景。
训练数据(1PB)在重庆和广州,而 GPU 训练资源在华东和天津,跨地域访问对训练效率有影响,导致训练访问数据性能较低、时延偏大。现在,文生图训练的数据偏向于小文件,性能非常低。
对于这种上亿个小文件的跨地域访问场景,可以采用高性能版本 DOP-Cache 加速。
业务反馈,端到端收益 3~4 倍。GPU 利用率由 20% 上升到 85%。
我们未来规划了很多工作,包括完善 AB 一体的统一客户端实现更易于接入,发现热点库表进行加速,实现更高效的缓存准入和淘汰策略,提升缓存空间利用率等。
我们会不断探索新技术,优化迭代现有方案的稳定性、扩展性和性能,使更多的业务能从中获取收益,也给业界提供更多 AB 结合的存缓实践经验和思路。