OpenStore存储引擎是阿里云Elasticsearch团队针对日志场景自研的一套弹性、高效、低成本的日志存储解决方案,能够为您在日志场景中提供海量存储服务。本文主要介绍OpenStore存储引擎的适用场景、架构、优势以及性能测试结果。

背景信息

当您有长时间存储数据、归档审计数据的需求时,通常需要通过阿里云Elasticsearch集群快照的方式将数据存储在对象存储OSS上,该方式虽然能够帮助您存储日志数据,但是存储后不能够直接进行信息查询。查询信息前,需要您调用相关API把快照信息恢复到集群中,等待快照中的索引初始化完成后才可以去查询。该场景面临着查询复杂度大、海量存储成本高的问题。为解决此问题,阿里云Elasticsearch团队自研OpenStore存储功能,该功能实现了基于计算存储分离的超低成本、弹性存储,可以帮助您实现根据实际数据的存储量按量计费,无须提前预留集群存储容量,并100%兼容Elasticsearch原生查询能力。真正做到有多少用多少,用多少付多少。在提升集群易用性的同时,大大降低了云上Elasticsearch海量数据的存储资源成本。

阿里云Elasticsearch支持通用商业版和日志增强版两种类型的实例。您可以通过创建7.10日志增强版Indexing Service系列实例,开启OpenStore存储功能;也可以将7.10版本的通用商业版且内核小版本在1.5.0及以上的实例升级至日志增强版,开启OpenStore存储功能。
说明 如果未开启OpenStore,OpenStore存储默认关闭。您可以在基本信息页面的节点可视化区域查看是否已开启OpenStore功能。开启OpenStore功能并查看OpenStore存储信息,详细信息请参见查看集群状态和节点信息

适用场景

阿里云Elasticsearch自研OpenStore存储功能适用于有海量数据写入以及存储的场景,例如数据有明显的冷热区分、查询QPS较低且查询时延容忍度相对较高的日志、指标监控分析场景等。

架构

OpenStore存储架构图如下所示。

OpenStore存储系列
此架构具备以下优势:
  • 海量高效存储:通过计算存储分离将存储资源完全解耦,实现了弹性存储、按量计费,同时极大的提升了索引迁移和恢复速度,优化了集群扩展性,适用于海量数据存储场景。
  • 易用性:全自动的索引生命周期管理,您只需要做简单的索引周期配置,引擎完全托管了索引冷热分离和数据迁移OpenStore存储的全过程。

优势

  • 低成本:相较于本地SATA盘存储成本降低了60%,相较于高效云盘存储成本降低了70%。
  • 海量存储:按量付费,无须提前购买存储容量,冷数据存储完全按实际使用量付费。
  • 零副本:底层存储服务保证了集群的数据高可用,提供99.9999999999%(可达12个9)的数据持久性。
  • 查询性能:对于典型日志场景的常用查询分析,性能相较于本地SATA盘提升了100%。

使用限制

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

类别 限制项 限制说明
地域 华东2(上海)、华北3(张家口)、华东1(杭州)、华南 1(深圳)、华北 2(北京) 目前仅开放华东2(上海)、华北3(张家口)、华东1(杭州)、华南 1(深圳)、华北 2(北京)地域。
实例版本 仅7.10版本实例支持开启OpenStore存储 仅支持以下两种方式开启OpenStore存储:
  • 新购7.10日志增强版Index Service实例开启。
  • 已购7.10通用商业版,通过集群升配功能开启。
    注意
    • 已购7.10通用商业版,内核小版本需要升级到1.5.0及以上,才可开启OpenStore存储。
    • OpenStore属于阿里云Elasticsearch日志增强版特性,商业版升级后,实例类型将变为日志增强版,不会因为开启OpenStore存储而将实例升级为Indexing Service实例。
实例规格 仅支持OpenStore存储型16核64 GB 购买OpenStore存储时,仅支持选择OpenStore存储型16核64 GB规格。
实例存储 单节点最大存储数据量 单节点最大存储数据量为20 TB。
说明 如果您有更大的单节点存储需求,请提交工单申请,最大支持50 TB。
shard数 shard副本数 开启OpenStore存储,索引数据会存储至OpenStore,索引shard副本数默认为0,数据的可靠性将由底层存储保证,请放心使用。
注意 如果将OpenStore存储的索引副本数设置为1,索引将处于yellow状态,所以不建议手动设置副本,保持默认值即可。
索引模板 OpenStore定制索引模板 开启OpenStore存储,阿里云Elasticsearch会默认提供定制模板openstore-index-template,模板默认使用openstore_default_ilm_policy策略。
说明 手动删除OpenStore存储索引时,需要将索引及索引对应的别名一起删除才可删除成功。
索引生命周期配置 不支持在索引生命周期中自定义freeze 无。

性能测试

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

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

相关文档