数据湖存储如何加速?你知道吗?

存储 存储架构
不管是像数据表这样的结构化数据,还是视频这类非结构化数据,又或是 json 这样的半结构化数据,都会被存到对象存储中,不同厂商的对象存储叫法不同,比如在腾讯云它叫 COS。它成本低,扩展性高,不少大厂用它来存储海量数据,构成所谓的数据湖。

你是一个程序员,你写的代码可能没你想象的重要,厂里真正重要的其实是数据。不管是像数据表这样的结构化数据,还是视频这类非结构化数据,又或是 json 这样的半结构化数据,都会被存到对象存储中,不同厂商的对象存储叫法不同,比如在腾讯云它叫 COS。它成本低,扩展性高,不少大厂用它来存储海量数据,构成所谓的数据湖。

基于COS对象存储构成数据湖基于COS对象存储构成数据湖

但数据不能光存着,还得被各种服务器读写。

那么问题就来了,对象存储很好,但它在某些场景下会存在一些问题,比如 在小文件频繁读写的场景下,吞吐量上不去,延时还会变高。

怎么解决这些问题呢?

我们可以找大厂抄作业!

没有什么是加一层中间层不能解决的,如果有,那就再加一层。这次我们要加的中间层是GooseFS。

GooseFS是什么GooseFS是什么

GooseFS 是什么

GooseFS 是腾讯云在海量数据读写场景下,推出的一套高性能、高可用的数据加速服务。

在厂里,我们通常会基于对象存储构建存储集群,每一台存储数据的服务器就是一个存储节点,这些存储节点分布在同个城市的不同机房内,以实现弹性扩展和高可用容灾。而负责读取数据进行计算工作的服务器,则称为计算节点,这些计算节点一般跟随业务部署在指定的机房内。像这种存储跟计算节点互相分离的架构模式,就是所谓的存算分离架构。

存算分离架构存算分离架构

GooseFS 本质上是计算节点和存储节点之间的一个中间层。它通过一系列优化手段,将热点数据调度到靠近计算端节点的位置,加速数据的获取过程。我们来看下具体做了哪些优化。

GooseFS是中间层GooseFS是中间层

计算端缓存

我们知道本地SSD盘的访问速度比机械磁盘要快,而对象存储的数据主要存放在机械磁盘上,为了提升计算节点获取数据的性能,我们很容易想到可以将对象存储的数据放到本地SSD盘上。巧了!腾讯的大佬们也是这么想的。GooseFS将计算节点的本地盘作为缓存介质,存放部分来自对象存储的数据,这样可以减少读数据的延迟。

为了最大化利用计算节点的缓存资源,同时保证数据一致性,GooseFS 将这层缓存设计成了分布式缓存,它分为 Master 和 Worker 两部分。Master 负责管理缓存文件元数据和集群状态,而 Worker 则负责实际缓存数据。并且 Master 还能根据一定策略,调整 Worker 内部缓存数据的粒度大小和淘汰逻辑,提升缓存空间利用率。

计算节点加入基于SSD的一致性缓存计算节点加入基于SSD的一致性缓存

存储端缓存

计算端缓存能够带来最极致的读性能,但有些计算节点并没有本地盘,但又需要这种分布式缓存机制,怎么办呢?

在云计算数据中心里,有很多服务器类型:有些专注于CPU计算任务,有些侧重于GPU计算能力,还有些专为高性能读写的SSD存储设计,同时也提供了高性价比的HDD存储选项。如果我们能将这些SSD存储服务器集结起来,是不是可以构建一个分布式缓存系统呢?

GooseFS通过服务托管的能力,可以轻松驾驭这些SSD存储集群,为计算节点提供存储端的缓存支持。尽管数据从计算节点传输到这些SSD存储集群的距离,相较于本地盘略远,但这依然比传统的机械磁盘速度要快得多。大量数据从COS对象存储底层的机械磁盘先缓存到这些由GooseFS管理的SSD存储集群中,通过硬件介质优化和数据本地性,能够显著提高整个系统的性能。

存储节点中加入ssd作为缓存存储节点中加入ssd作为缓存

元数据集群

我们知道文件是有文件名、大小、创建时间、权限这些属性的,它们又叫元数据。对象存储的设计,更侧重于文件数据的持久性和可扩展性,而不是快速的元数据访问。因此在高并发读写元数据的场景下会出现瓶颈。

元数据读写存在瓶颈元数据读写存在瓶颈

有解法吗?

有!GooseFS自研了一套高性能元数据引擎,通过元数据分级管理、强一致性缓存和平行扩展等技术手段来提升元数据读写性能,并将元数据持久化到底层的企业级数据库中,以此大幅提升了元数据处理的效率。

通过元数据引擎提升性能通过元数据引擎提升性能

多场景适配

通过这一套组合拳,GooseFS 补齐了对象存储在小文件频繁读写等 IO 场景下的劣势,还提升了大文件和元数据读写的性能和吞吐量。作为计算节点和存储节点的中间层,起到了"上承计算,下启存储"的作用,相比直接读写 COS 上的数据,GooseFS 能够为上层计算节点带来十倍以上的性能提升,生产效率拉满。

除了对象存储,还能支持 HDFS 等多种云存储,完美适配多种生态应用场景。

GooseFS支持多种存储GooseFS支持多种存储

你可以从 GooseFS 看到很多工程架构设计的巧思,这么强悍,活该它入选了存储国际顶会NAS 2024,成为业界关注的焦点。

责任编辑:武晓燕 来源: 小白debug
相关推荐

2017-10-16 13:45:04

2024-08-09 11:07:46

缓存检索filter

2020-01-14 10:37:38

存储DateTime数值

2017-03-17 19:03:51

复制数据存储管理

2024-07-08 00:00:01

多线程ThreadC#

2023-01-13 17:02:10

操作系统鸿蒙

2023-03-21 07:39:51

CentOS挂载硬盘

2024-02-23 08:09:43

Rediskey名字数据库

2023-02-28 07:39:18

2024-10-05 00:00:00

HTTPS性能HTTP/2

2024-10-15 10:32:30

2023-04-26 10:21:04

2024-04-30 09:02:48

2023-12-12 08:41:01

2023-12-20 08:23:53

NIO组件非阻塞

2024-06-20 08:06:30

2023-01-09 08:00:41

JavaScript闭包

2017-01-18 18:28:54

大数据数据库技术

2024-05-28 09:12:10

2024-04-07 00:00:00

ESlint命令变量
点赞
收藏

51CTO技术栈公众号