OpenStore存储引擎是阿里云Elasticsearch团队针对日志场景自研的一套弹性、高效、低成本的日志存储解决方案,能够为您在日志场景中提供海量存储服务。本文主要介绍OpenStore存储引擎的适用场景、架构、优势以及性能测试结果。
背景信息
当您有长时间存储数据、归档审计数据的需求时,通常需要通过阿里云Elasticsearch集群快照的方式将数据存储在对象存储OSS上,该方式虽然能够帮助您存储日志数据,但是存储后不能够直接进行信息查询。查询信息前,需要您调用相关API把快照信息恢复到集群中,等待快照中的索引初始化完成后才可以去查询。该场景面临着查询复杂度大、海量存储成本高的问题。为解决此问题,阿里云Elasticsearch团队自研OpenStore存储功能,该功能实现了基于计算存储分离的超低成本、弹性存储,可以帮助您实现根据实际数据的存储量按量计费,无须提前预留集群存储容量,并100%兼容Elasticsearch原生查询能力。真正做到有多少用多少,用多少付多少。在提升集群易用性的同时,大大降低了云上Elasticsearch海量数据的存储资源成本。
适用场景
阿里云Elasticsearch自研OpenStore存储功能适用于有海量数据写入以及存储的场景,例如数据有明显的冷热区分、查询QPS较低且查询时延容忍度相对较高的日志、指标监控分析场景等。
架构
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存储:
|
实例存储 | 单节点最大存储数据量 | 单节点最大存储数据量为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存储,可以为您节省一定的费用。