前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >SK hynix:基于对象的计算型存储分析系统

SK hynix:基于对象的计算型存储分析系统

作者头像
数据存储前沿技术
发布2025-02-11 18:40:24
发布2025-02-11 18:40:24
960
举报

问题意识

1. 传统大数据分析基于HDFS块存储系统,现面临海量数据和成本双重考验,降低存储成本的同时,如何保证系统性能不滑坡是数据分析领域普遍问题意识;

2. OCS架构 以现代高容量QLC-SSD为介质,对象存储组织元数据,组合开源分析工具,构建面向海量数据分析平台的存储架构,其架构和实测性能如何?

关于 Los Alamos National Laboratory

概览

  • 目标
    • • 快速生成洞见
  • 问题
    • • 科学分析通常读取了超过必要的数据量
  • 方法
    • • 通过基于对象的计算存储来让查询更接近数据
    • • 采用开放社区的分析数据库(如 Spark、Arrow、Parquet、Substrait、DuckDB、Iceberg 等)

OCS(基于对象的计算存储)

  • • 探索一种基于标准的方法,以利用所有存储层级来处理和加速查询

科学研究-存储I/O栈特征

  • • 文件系统位于块存储之上
  • • 常用的数据格式:VTK,HDF5 等
    • • 自描述
    • • 列式(数据数组)
    • • 几何数据(点,单元)
  • • 有限的选择性数据检索支持
    • • 允许通过数组偏移检索数据
    • • 不支持通过谓词(如值大于0.3)进行检索

数据格式:VTK,HDF5 VTK(Visualization Toolkit) VTK是一种专注于科学数据可视化的文件格式,常用于存储和展示三维数据。它广泛应用于计算机图形学和科学可视化领域,尤其适合存储几何数据(如点、线、面等)和场数据(如标量场和矢量场)。VTK格式允许用户以标准化的方式存储不同类型的数据结构,便于后续在各种可视化工具和软件中进行处理和渲染。 HDF5(Hierarchical Data Format version 5) HDF5是一种分层数据格式,广泛用于存储和管理大量复杂的数据。它支持自描述数据,即数据文件中包含数据的结构信息,便于在不同平台和应用程序之间传递和处理。HDF5特别适合于科学计算和机器学习等需要存储大规模、多维数组数据的领域。它具有高效的数据压缩和快速访问的特点,支持多种数据类型,适合存储矩阵、表格和其他数据集。 如何理解自描述数据? “自描述”指的是数据文件本身包含了关于其结构和内容的信息,因此不需要额外的外部描述文件来解释数据的组织方式。自描述格式的数据文件包含元数据(描述数据的数据),如数据的类型、维度、大小、标签等信息。这样一来,读取数据时,应用程序能够自动了解数据的组织结构、类型及其他特性,使数据更易于在不同的系统和平台间共享和解析。 以HDF5为例,自描述性意味着HDF5文件不仅存储数据内容,还包含数据结构的信息,比如每个数据集的名称、维度、属性等。当其他程序读取该文件时,不需要提前知道文件的结构,因为文件本身已经“描述”了自己的内容。这种特性对于大规模、复杂数据集尤其重要,因为它简化了数据的管理和跨平台使用。

Note:在科研领域,传统的存储基于块存储来构建,本文后面将提出一种新兴基于对象的数据存储方式。

关于谓词检索

在科学数据处理中,如果支持谓词检索,用户可以直接通过设置条件来筛选出符合条件的数据,而不需要读取整个数据集后再进行过滤。这里“不支持”意味着,用户只能通过读取完整数据集或部分偏移的数据来获取信息,缺乏直接按条件筛选数据的能力,这样会导致不必要的数据读取,影响检索效率。

OCS 的创新点

- 使用SQL作为查询接口

- 支持带谓词的复杂查询

- 查询处理在存储I/O路径上被卸载/分布

- 覆盖SSD、存储阵列、服务器、客户端等

- 最小化数据移动

- 快速查询

- 基于标准的方法

- SQL/Substrait、Parquet、基于对象的查询下推API(新)、NVMe命令集(新)

右侧的示意图旨在说明传统文件系统(FS)与OCS(基于对象的计算存储)在数据查询处理方式上的差异。

  1. 1. 传统文件系统:在传统文件系统中,客户端在读取数据时,会从文件系统(FS)中读取整个数组,即使只需要部分数据。这意味着即便只需查询少量信息,系统也会加载大量数据,导致数据移动量大,效率低下。
  2. 2. OCS:在OCS架构中,查询以SQL的形式直接发送到OCS系统。OCS能够在存储层筛选出相关数据,将符合条件的数据直接返回给客户端。这样避免了读取不必要的数据,减少了数据移动量,提高了查询效率。
OCS架构的优势

1. 高效的数据筛选:OCS在存储层执行筛选操作,可以根据查询条件直接返回相关数据,避免读取整个数据集。这显著减少了数据移动量,提高了数据访问效率。

2. 支持复杂查询:OCS允许使用SQL作为查询接口,并支持带谓词的复杂查询(如条件筛选)。这使得在大规模数据上执行灵活的查询变得更容易。

3. 分布式查询处理:OCS架构将查询处理分布在存储I/O路径上(包括SSD、存储阵列、服务器等)。这减少了计算节点的负担,并加快了查询速度。

4. 标准化兼容性:OCS采用了标准化的API和数据格式(如Parquet、SQL、NVMe命令集等),便于与现有的数据库和分析工具集成,提高了系统的灵活性和兼容性。

OCS架构带来的新问题

1. 复杂性增加:OCS将计算任务下移到存储层,增加了存储系统的复杂性。存储设备需要具备更多计算能力,并且必须支持复杂查询处理,这可能增加硬件和维护成本。

2. 存储设备性能需求提升:OCS要求存储设备能够处理复杂的计算任务,可能导致存储设备的性能瓶颈。特别是在大规模数据环境下,存储设备的I/O性能和处理能力可能无法满足需求,导致延迟问题。

3. 安全性与隔离问题:将计算任务下移到存储层可能带来数据安全和隔离问题。不同用户和应用可能共享相同的存储资源,如何确保数据隔离和访问控制成为一个挑战。

4. 数据一致性与容错性:分布式计算通常会遇到数据一致性和容错性的问题。OCS需要处理数据在不同节点间的一致性维护,特别是在发生故障或网络延迟的情况下,如何确保查询结果的准确性和完整性。

5. 软件兼容性:虽然OCS支持标准化接口,但并非所有软件都能立即适配这一新架构。现有系统可能需要重新设计或调整,以充分利用OCS的功能。

OCS 系统架构

  • • OCS系统由OCS前端服务器和基于对象的计算存储阵列(OCSA)组成

通过NVMe over Fabrics将后端存储(OCSA)解耦

  • • OCS是一个垂直优化的分布式分析系统

支持基于标准的对象和查询下推接口

与经典的Ceph存储系统相比,新型OCS架构有哪些独特之处?

OCS(基于对象的计算存储)架构在设计和功能上有以下几方面的独特之处:

1. 计算与存储的整合

- OCS:OCS不仅是一个存储系统,还在存储层加入了计算能力,可以在数据存储的同时进行数据过滤、查询下推等计算操作。这种“计算存储一体化”减少了数据在计算节点和存储节点之间的移动,从而提高了数据处理效率。

- Ceph:Ceph是一个面向对象和块存储的分布式存储系统,主要关注数据存储和数据冗余。Ceph缺乏内置的计算功能,通常需要数据移动到计算节点后再进行处理。

2. 查询下推(Query Pushdown)

- OCS:OCS支持SQL查询下推,允许用户在存储层直接执行带谓词的复杂查询。这样可以只返回符合条件的相关数据,减少不必要的数据传输。

- Ceph:Ceph并不原生支持查询下推,数据必须被完全提取出来后才可进一步分析。这会导致在大规模数据环境下传输大量不必要的数据。

3. 支持多种异构设备

- OCS:OCS架构中的OCSA设备支持异构硬件(如NVMe SSD、CSD、CXL内存等),并通过异构设备管理来高效利用这些硬件资源。这种设计可以根据不同类型的数据和任务需求来选择合适的硬件,提高系统的整体性能。

- Ceph:Ceph通常使用通用的存储硬件,不具备直接的异构设备支持功能。尽管可以通过配置不同的节点类型来适应特定的性能需求,但灵活性不如OCS。

4. 标准化的API与协议支持

- OCS:OCS前端服务器支持S3 REST API,并与开放格式数据兼容,使其更易与现代数据分析和机器学习工作流集成。

- Ceph:Ceph也支持S3 API,但其设计更多偏向通用存储,不针对数据分析和查询优化。OCS则在设计上专门考虑了数据分析和查询的需求,特别适合用于科学计算和大数据分析的场景。

5. 数据分析和加速引擎

- OCS:OCS在存储阵列中内置了分析加速引擎,可以直接在存储层进行过滤和简单分析操作,减少了数据在存储和计算节点之间的来回传输。

- Ceph:Ceph缺少内置的数据分析功能,需要依赖外部计算集群进行数据处理,这种设计在大数据环境下会带来更多的网络和I/O开销。

6. 纵向优化的架构设计

- OCS:OCS架构是一个从底层存储到前端数据接口的纵向优化系统,具备高效的I/O路径,并支持基于对象的命令。这种架构设计旨在最小化数据移动量,加快查询速度。

- Ceph:Ceph采用分布式设计,侧重于数据的持久性和高可用性,但未针对特定查询场景进行优化。

关键特性:在各层级对象上进行计算

OCS在所有系统(客户端、存储服务器、存储设备)中支持对象存储,能够在各个层级提供一致的计算视角

  • • 对象在系统中的每个层级中提供相同的“分析块”视图
  • • 数据可以在查询卸载的任何层级以相同的对象视图进行处理

通过Substrait和Arrow,OCS系统中的数据对象在客户端、前端服务器和OCSA设备上都保持相同的“分析块”视图。这样的设计允许在任何层级上进行数据处理或分析,并实现数据的一致性传递,提升了系统在多层级环境中的灵活性和计算效率。

关键特性:在各层级使用开源生态进行计算

  • • Apache Arrow和Substrait实现了各层级的一致数据分析处理
    • • Substrait是一种通用的方法和接口,用于操作下推,OCS可以通过Substrait进行查询下推
    • • Apache Arrow是一种通用数据格式,用于消除不同系统之间的数据转换
    • • OCS与社区的垂直分布计算趋势保持一致

Substrait[1]:关系代数的跨语言序列化

Apache Arrow[2] | Apache Arrow

案例:环境科学研究

比较“基础分析”和“OCS分析”之间的性能

  • • 基础分析(传统方法):读取对象数据并在客户端的分析引擎中进行过滤
  • • OCS分析:使用Substrait向OCS系统请求查询并获取过滤后的数据

性能分析

  • • 数据分析性能提升至3.8倍

选择性越高,性能提升越显著

  • • 数据移动减少至99.9%

减少不必要的数据传输所导致的计算和网络开销

  • • 客户端服务器的CPU使用率降低至98%

如何理解 Selectivity ?

“选择性”指的是查询条件筛选数据的严格程度,或是查询结果与总数据集的比例。简单来说,选择性越高,意味着查询条件越严格,筛选出的数据量越少;反之,选择性低则表示返回的数据量较大。

选择性对性能的影响
  • • 高选择性:当选择性较高时,查询条件非常具体,筛选出的数据量较小。OCS系统可以在存储层直接过滤数据,仅返回符合条件的少量数据,从而减少数据移动和传输。由于传输数据量小,查询执行速度会显著提升。
  • • 低选择性:当选择性较低时,返回的数据量较大,OCS的过滤效果相对不明显,性能提升不如高选择性显著。

关键要点

  1. 1. SK Hynix提出了一种基于对象计算存储(OCS)的方法来加速大数据分析
  2. 2. OCS系统支持标准接口和查询优化,可以减少数据移动并提高性能
  3. 3. OCS系统采用Apache Arrow和Substrait等技术实现数据分析处理的一致性
  4. 4. OCS系统具有高互操作性和灵活性,并且可以节省主机资源
  5. 5. 实验结果表明,使用OCS系统可以显著提高数据分析性能,同时减少数据传输和计算网络开销。
引用链接

[1] Substrait: https://substrait.io/ [2] Apache Arrow: https://arrow.apache.org/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王知鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题意识
    • 概览
    • 科学研究-存储I/O栈特征
    • OCS 的创新点
    • OCS 系统架构
    • 案例:环境科学研究
    • 性能分析
    • 关键要点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档