OpenStore存储引擎是阿里云Elasticsearch团队针对日志、检索等场景自研的弹性、高性能、低成本的存储引擎,本文介绍OpenStore存储引擎的架构优势和适用场景。
引擎架构

该架构基于多级存储设计,对上层提供统一的高性能文件系统服务:
Leader/Follower:在OpenStore架构中,主分片(Leader)负责构建索引并将生成的Segment文件上传到共享存储。副本分片(Follower)不再独立构建索引,而是直接从共享存储同步数据。
NameNode:作为Openstore分布式元信息管理中心,管理包括集群拓扑、全局namespace在内的分布式元信息,同时提供统一的任务调度服务如数据复制任务,保证集群的分布式一致性。
Native Metadata Manager(NMM):作为本地元信息管理中心,管理包括文件长度、更新时间、持久化状态等在内的文件本地元信息,同时提供基础的UFS接入能力,如加载文件、持久化文件等原子操作。
Shared Data Service:远端共享数据服务,提供海量的数据存储能力。
优势
存储计算分离:OpenStore的核心设计理念,计算资源(Elasticsearch节点)和存储资源(远端共享存储)可以独立扩展。当计算需求增加时,您可以快速增加节点而无需迁移数据;当存储需求增加时,可利用远端共享存储的海量扩展能力,实现了计算与存储资源的解耦和独立弹性伸缩。
数据一致性:通过基于Raft实现的混合存储一致性协议,确保本地缓存与远端共享存储之间的数据状态一致,为上层应用提供统一、可靠的数据视图。
易用性:全自动的索引生命周期管理,您只需要做简单的索引周期配置,引擎完全托管了索引冷热分离和数据迁移OpenStore存储的全过程。
高可用:基于存储计算分离架构,多副本之间共享一份数据,不增加额外存储成本;底层存储服务保证集群的数据高可用,提供99.9999999999%(可达12个9)的数据持久性。
存储类型及适用场景
存储类型 | ||
访问延迟 (本地缓存命中) | 0.2ms | 0.2ms |
访问延迟 (本地缓存未命中) | 50ms~400ms | 1ms |
访问吞吐 (本地缓存命中) | 1GB/s | 最大350MB/s (ESSD PL1性能,和磁盘大小相关,请参考ESSD云盘) |
访问吞吐 (本地缓存未命中) | 750MB/s | 实际机型带宽等相关信息,请参考计算型实例规格族c8i |
适用场景 | 监控日志、历史订单、归档数据等低频访问数据 | 实时报表、在线计算、实时搜索等低延迟访问数据 |
访问延迟仅表示存储访问延迟,不代表端到端访问延迟。