OpenStore存储引擎是阿里云Elasticsearch团队针对日志场景自研的弹性、高效、低成本的日志存储引擎,支持根据实际存储数据量按量计费,无须提前预留集群存储容量,真正做到存储Serverless。OpenStore存储支持自定义冷热存储版本与智能混合存储版本,智能混合存储可突破传统冷热分离架构,大幅降低集群数据接入复杂度的同时,进一步降低云上海量数据的存储成本。本文主要介绍OpenStore存储引擎的适用场景、架构、优势以及性能指标。

背景信息

在日志全观测场景下,通常因为业务场景或监管需求,需要长时间存储数据或归档审计。在使用开源Elasticsearch的过程中,需要进行集群冷热数据分离,将30天或者更长时间的数据通过集群快照的方式存储在其他存储介质上,例如对象存储OSS等。该方式虽然能够实现长期日志数据归档,但是存储后不能直接进行查询,查询前需要调用相关API把快照信息恢复到集群中,等待快照中的索引初始化完成后再进行查询,面临着查询复杂度大、长时间存储成本高的问题。

OpenStore存储引擎是阿里云Elasticsearch 7.10日志增强版的重要功能,结合Indexing Service写入托管服务,满足用户在日志场景下低成本的高并发写入及长期数据存储需求。您可以按需创建7.10日志增强版实例,开启OpenStore存储功能;也可以在满足内核小版本要求的情况下(1.5.0及以上),将7.10版本的通用商业版实例升级至日志增强版,并开启OpenStore存储功能。
说明
  • 如果未开启OpenStore,OpenStore存储默认关闭。您可以在实例基本信息页面的节点可视化区域查看是否已开启OpenStore功能、开启OpenStore功能并查看OpenStore存储信息,详细信息请参见查看集群状态和节点信息
  • 开启OpenStore后,建议您在控制台关闭自动快照备份功能,具体操作请参见自动备份与恢复

版本说明与适用场景

阿里云Elasticsearch自研Openstore存储引擎,适用于有海量数据写入及长期存储需求,数据查询QPS较低且查询时延容忍度相对较高的日志检索、指标分析等场景。

OpenStore存储引擎提供智能混合存储自定义冷热存储两个版本,您可以在创建集群时按需选择,版本说明及使用场景如下。
版本 适用场景 使用说明 价格
智能混合存储 业务上对于数据有实时更新的需求,数据没有严格的冷热区分。
  • 无须单独购买集群热数据存储空间,所有数据统一使用OpenStore存储,按小时计算实际用量。
  • 创建的索引默认为混合存储索引,无须手动配置索引冷热生命周期策略。
  • OpenStore存储会自动根据查询情况选择缓存数据,数据分层及降级由混合存储自动完成。
0.15元/GB/月
自定义冷热存储 业务有强烈且明确的数据冷热区分。例如一天内的索引必须全部使用热存储,超过一天的索引必须全部使用冷存储。
  • 需要单独规划并购买热数据存储空间,冷数据使用OpenStore存储,按小时计算实际用量。
  • 需要根据业务需求,由用户配置相应的索引生命周期ILM策略,进行冷热数据分层管理。
  • 根据生命周期策略,进入冷阶段的数据存储在OpenStore存储层,不会根据查询热度自动转变为热数据,冷热数据转换需要修改生命周期或者手工迁移索引数据。
  • 热存储
    • SSD云盘:1元/GB/月
    • 高效云盘:0.35元/GB/月
  • OpenStore冷存储

    0.15元/GB/月

说明 目前阿里云Elasticsearch暂不支持两个存储版本之间进行转换,建议您提前根据使用场景进行合理评估,如果有疑问请提交工单咨询。

优势

  • 海量存储:存储Serverless付费,无须提前规划及购买存储容量,数据存储按小时统计实际使用量,存储资源使用率达到100%。
  • 低成本:实时可修改、支持写入更新,无须配置复杂索引生命周期,自动完成数据降级,超低使用门槛;数据存储单价相较于使用本地SATA盘存储成本降低了60%,相较于高效云盘降低了70%。
  • 高可用:基于存储计算分离架构,多副本之间共享一份数据,不增加额外存储成本;底层存储服务保证集群的数据高可用,提供99.9999999999%(可达12个9)的数据持久性。
  • 查询性能提升:对于典型日志场景的常用查询分析,性能相较于本地SATA提升了100%,与高效云盘或者PL0级别的ESSD云盘性能相当。

架构

OpenStore存储架构图如下所示:

  • 冷热共享计算架构/冷热分离架构冷热共享计算架构
  • 混合存储架构混合存储架构
此架构具备以下优势:
  • 存储计算分离:相较于冷热分离架构,进一步解耦计算与存储资源,用户不需要再关注存储容量。实现弹性存储、按量计费的同时,立足云原生优化集群扩展性,极大地提升了索引迁移和恢复的速度,适应海量数据场景。
  • 易用性:全自动的索引生命周期管理,您只需要做简单的索引周期配置,引擎完全托管了索引冷热分离和数据迁移OpenStore存储的全过程。
  • 数据一致性:智能混合存储通过基于Raft实现的混合存储一致性协议,保证不同存储介质之间的数据一致性,在用户无感知的情况下,自动完成数据降级及缓存加速,并支持数据实时更新。

使用限制

购买和使用OpenStore存储时,存在以下使用限制。

类别 限制说明
地域 目前仅开放华东2(上海)、华北3(张家口)、华东1(杭州)、华南 1(深圳)、华北 2(北京)地域。
实例版本 仅7.10版本实例支持开启OpenStore存储,开启方式如下:
  • 新购7.10日志增强版Index Service实例开启。
  • 已购7.10通用商业版,通过集群升配功能开启。
    重要
    • 已购7.10通用商业版,内核小版本需要升级到1.5.0及以上,才可开启OpenStore自定义冷热存储。
    • OpenStore属于阿里云Elasticsearch日志增强版特性,商业版升级后,实例类型将变为日志增强版,不会因为开启OpenStore存储而将实例升级为Indexing Service实例。
实例规格
  • 自定义冷热存储:仅支持选择OpenStore存储型16核64 GB规格。
  • 智能混合存储:仅支持选择OpenStore存储型8核64 GB、16核64 GB规格
实例存储容量 单节点最大存储数据容量为30 TB。
说明 如果您有更大的单节点存储需求,请提交工单申请,最大支持50 TB。
shard副本数
  • 开启OpenStore自定义冷热存储,冷数据存储至OpenStore时shard副本数默认为0,数据的可靠性将由底层存储保证。
    重要 如果将OpenStore自定义冷热存储的索引副本数设置为1,索引将处于yellow状态,因此不建议手动设置副本,保持默认值即可。
  • 开启OpenStore智能混合存储,shard副本数须大于等于1(建议设置为1)。
    重要 多副本之间共享一份数据,不增加额外存储成本。多副本用于保证本地存储写入加速的可靠性,如果未设置多副本可能会导致部分实时写入数据的丢失。
索引模板
  • 开启OpenStore自定义冷热存储,集群会默认提供模板openstore-index-template,模板默认使用openstore_default_ilm_policy策略。详细信息请参见通过OpenStore实现海量数据存储
  • 开启OpenStore智能混合存储,集群会默认提供模板component-hybrid-openstore-index-template。如果需要使用自定义的索引模板,请通过组合模板的方式实现。详细信息请参见通过OpenStore实现海量数据存储
说明 手动删除OpenStore存储索引时,需要将索引及索引对应的别名一起删除才可删除成功。
索引生命周期配置 不支持在索引生命周期中自定义freeze。

性能测试

  • 测试环境
    • 数据集:某日志场景数据集。
    • 集群规格:均采用某日志场景的相同配置,其中:
      • 节点数:10
      • Shard数:108
    • 查询条件:
      • 查询类型:sort
      • 文档个数:3,800,000,000
  • 测试结果
    存储类型 查询时间
    本地SATA盘 30秒以上
    高效云盘 12.229秒
    OpenStore存储 15.841秒
  • 测试结论:

    在集群配置相同的情况下,查询日志数据时,通过OpenStore存储的查询耗时明显低于通过本地SATA盘存储的耗时,与高效云盘查询耗时基本持平。从价格方面来看,OpenStore存储的单价比高效云盘存储的单价低60%左右,而且是按量付费,无须提前购买存储容量。所以,通过使用OpenStore存储,可以为您节省一定的费用。

相关文档