如何使用ILM控制ElasticSearch别名的总存储大小?
完全可行,你可以通过调整ILM策略的滚动条件,并结合数据写入速率设置合理的删除触发时间,实现按30GB滚动索引且总存储不超过200GB的目标。
1. 修改滚动触发条件
将ILM策略中hot阶段的滚动阈值改为30GB,若仅需按大小触发滚动,可移除原有的max_age配置(若需要时间兜底,也可保留该参数,此时哪个条件先满足就触发滚动)。修改后的策略示例:
{ "policy": { "phases": { "hot": { "min_age": "0ms", "actions": { "rollover": { "max_size": "30gb" } } }, "delete": { "min_age": "XXh", "actions": { "delete": {} } } } } }
2. 控制总存储容量
每个滚动后的索引约30GB,200GB总容量最多可保留6个完整索引(30×6=180GB,预留20GB缓冲给正在写入的新索引)。你需要根据自身数据写入速率,计算保留6个索引所需的时长,将delete阶段的min_age设置为该值:
- 若每8小时生成一个30GB索引,保留6个索引需48小时,
min_age设为48h - 若每6小时生成一个30GB索引,保留6个索引需36小时,
min_age设为36h
这样配置后,新索引生成时最老的索引刚好达到删除年龄,会被自动清理,总存储将稳定在180-210GB区间,不会超出200GB限制。
3. 确认别名配置有效性
确保写入别名已正确绑定到ILM关联的索引模板,滚动触发后别名会自动切换到新创建的索引,无需手动操作。
内容的提问来源于stack exchange,提问作者Jon Bates
相关产品推荐
相关产品推荐

