滴滴 OrangeFS 数据湖存储关键技术揭秘!

滴滴为应对云原生和新业务挑战,开发了OrangeFS云原生数据湖存储系统,实现了Posix、S3、HDFS多协议融合。该系统采用统一文件组织结构,支持多租户管理和多云存储引擎,优化了写入和读取流程,以提高性能和降低数据流动成本。目前,OrangeFS已在滴滴多个业务场景中应用,总容量超十几PB。
摘要由CSDN通过智能技术生成

2015年,滴滴为解决小文件和图片的存储,成立 GIFT 小对象存储项目。伴随着业务不断成长,我们面临的挑战也越来越多,经历多次非结构化存储架构演进,具体如下图所示:

fa83242591e4a63751762fa5959e4b1f.png

随着公司不断发展,滴滴的业务有两个发展的趋势:云原生技术战略和新业务涌现,都给存储系统带来了新的挑战。

在云原生战略中,业务的极致弹性是提高资源利用率降低成本的一个目标。保障极致弹性的基础是容器的轻量化,而要实现容器的轻量化就必须实现存算分离。但目前弹性云的容器都是使用本地盘来存储业务日志或数据,这样天然和宿主强绑定,无法实现存算分离,且宿主机的磁盘利用率只有30%左右,容器漂移后数据还会出现易丢失现象。如果是业务日志数据,还需要通过采集方式存储到 HDFS 中,即:本地盘一份,HDFS 一份,双份存储,成本高。

同时,滴滴的自动驾驶,机器学习,国际化,金融等业务的不断发展,涌现了很多边端上传大量数据、服务端训练的场景,而边端和服务端对存储的需求又有一定的差异。例如:机器学习的训练场景主要是通过 S3 协议上传数据到滴滴 GIFT 对象存储系统中,通过类似 S3FS 方式挂载文件系统进行训练,这种模式缺点是处理流程长,延迟高,性能无法满足业务需求,且非完整的文件系统,对于 apend 或 rename 操作非常重。

解决思路

为了满足云原生技术战略和新业务的涌现需求,弹性云 K8S 通过 Posix 协议挂载网络盘写入网约车日志或数据,并通过 S3 或 HDFS 协议并发查询日志,解决了数据因飘移造成丢失、采集链路长(也就是通过 S3 或 HDFS 协议直接读取 Posix 写入日志数据)等问题,同时管理弹性云磁盘又能提供磁盘利用率。而机器学习的训练场景可以通过 S3 协议上传数据,Posix 协议去挂载训练,也可以解决流程长,延迟高问题。

我们需要提供一套支持多协议融合的云原生分布式存储系统,内部称之为:OrangeFS 云原生数据湖存储系统,整个系统核心技术主要包括:

  1. 多协议融合:采用统一文件组织结构,在这种结构基础上实现 Posix、S3、HDFS 三种不同存储协议融合。

  2. 云原生:基于 CSI 插件可以快速地在 Kubernetes 上使用 OrangeFS。

  3. 多云存储引擎:为了保证云上云下架构一致,应用于不同的场景,云下可以使用滴滴自研的 DFS 数据存储服务,线上可以使用 AWS S3、阿里云 OSS、腾讯云 COS、谷歌云等等。

  4. 多租户:为了降低业务部署成本,我们支持多租户管理,提供细粒度的租户隔离策略。

28e3ea75fed5943c20dff809e44bd073.png

核心技术

1. 文件组织结构

为了减少数据流动成本,我们参考并学习行业通用的多协议融合模式,主要有2种,第一种:在对象存储系统基础上构建文件系统,比较常见 S3FS。第二种:采用统一文件组织结构,在这种结构基础上实现 Posix、S3、HDFS 三种不同存储协议,例如:JuiceFS、CubeFS。

基于AWS S3对象存储实现的 S3FS,可以把 S3 bucket 挂载到系统中以 POSIX 方式访问,但无法提供原子的 rename和文件的随机写操作。例如:在 ofs-test 桶中有“/a/a1/a2/1.txt…”等文件,需要 rename 根目录下的a/文件夹为x/,具体如下图所示&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值