【Elasticsearch】快照生命周期管理 SLM(理论篇)
《Elasticsearch 集群》系列,共包含以下文章:
- 1️⃣ 冷热集群架构
- 2️⃣ 合适的锅炒合适的菜:性能与成本平衡原理公式解析
- 3️⃣ ILM(Index Lifecycle Management)策略详解
- 4️⃣ Elasticsearch 跨机房部署
- 5️⃣ 快照与恢复功能详解
- 6️⃣ Elasticsearch 快照恢复 API 参数详解
- 7️⃣ 安全地删除快照仓库、快照
- 8️⃣ 快照生命周期管理 SLM(理论篇)
- 9️⃣ 快照生命周期管理 SLM(实战篇)
- 🔟 跨集群检索(Cross-Cluster Search)
😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!
快照生命周期管理 SLM(理论篇)
- 1.快照生命周期管理(SLM)
- 2.索引生命周期管理(ILM)
- 3.SLM 与 ILM 的核心区别
-
- 3.1 管理目标不同
- 3.2 操作对象不同
- 3.3 策略驱动因素不同
- 3.4 典型使用场景
- 4.协同工作场景
- 5.总结对比表
1.快照生命周期管理(SLM)
SLM(Snapshot Lifecycle Management)是 Elasticsearch 中 自动化管理索引快照的策略,用于定期创建集群快照、定义保留策略,确保灾难恢复能力。
核心功能:
- 定时创建快照(如每天凌晨2点)
- 自动清理旧快照(保留最近30天,删除更早版本)
- 跨仓库管理(支持本地/云存储如 AWS S3、Azure Blob)
提出背景:
- 手动备份低效:大规模集群需备份数百个索引,人工操作易遗漏。
- 存储成本失控:历史快照堆积占用大量云存储空间。
- RTO / RPO 需求:业务要求明确恢复时间点(如最多丢失 1 小时数据)。
解决的问题:
- ✅ 自动化备份 → 减少人工干预
- ✅ 精确保留策略 → 降低存储成本
- ✅ 保障可恢复性 → 满足 SLA 要求
2.索引生命周期管理(ILM)
ILM(Index Lifecycle Management)是 Elasticsearch 中 自动化管理索引生命周期的策略,根据年龄、大小等条件将索引动态迁移到不同性能/成本的存储层。
生命周期阶段:
rollover(达 50GB 切新索引)shrink(减少分片数)freeze(冻结索引)delete(保留 30 天后删除)提出背景:
- 性能与成本矛盾:新索引需高性能(SSD),旧索引可存于廉价存储。
- 手动轮转低效:人工迁移索引易出错,尤其日志类应用(如 Filebeat 日增数百索引)。
- 存储优化需求:冷数据无需占用高价存储资源。
解决的问题:
- ✅ 存储分层优化 → 降低硬件成本
- ✅ 自动索引轮转 → 提升集群稳定性
- ✅ 资源按需分配 → 平衡性能与成本
3.SLM 与 ILM 的核心区别
3.1 管理目标不同
3.2 操作对象不同
.snapshot 文件)logs-2023-10-01-000001)3.3 策略驱动因素不同
create_snapshot,delete_snapshotrollover,shrink,freeze,delete3.4 典型使用场景
4.协同工作场景
两者通常配合使用以实现完整数据治理:
- ILM 管理在线数据 #mermaid-svg-laW0KfbHzPyw3oov {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-laW0KfbHzPyw3oov .error-icon{fill:#552222;}#mermaid-svg-laW0KfbHzPyw3oov .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-laW0KfbHzPyw3oov .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-laW0KfbHzPyw3oov .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-laW0KfbHzPyw3oov .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-laW0KfbHzPyw3oov .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-laW0KfbHzPyw3oov .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-laW0KfbHzPyw3oov .marker{fill:#333333;stroke:#333333;}#mermaid-svg-laW0KfbHzPyw3oov .marker.cross{stroke:#333333;}#mermaid-svg-laW0KfbHzPyw3oov svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-laW0KfbHzPyw3oov .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-laW0KfbHzPyw3oov .cluster-label text{fill:#333;}#mermaid-svg-laW0KfbHzPyw3oov .cluster-label span{color:#333;}#mermaid-svg-laW0KfbHzPyw3oov .label text,#mermaid-svg-laW0KfbHzPyw3oov span{fill:#333;color:#333;}#mermaid-svg-laW0KfbHzPyw3oov .node rect,#mermaid-svg-laW0KfbHzPyw3oov .node circle,#mermaid-svg-laW0KfbHzPyw3oov .node ellipse,#mermaid-svg-laW0KfbHzPyw3oov .node polygon,#mermaid-svg-laW0KfbHzPyw3oov .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-laW0KfbHzPyw3oov .node .label{text-align:center;}#mermaid-svg-laW0KfbHzPyw3oov .node.clickable{cursor:pointer;}#mermaid-svg-laW0KfbHzPyw3oov .arrowheadPath{fill:#333333;}#mermaid-svg-laW0KfbHzPyw3oov .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-laW0KfbHzPyw3oov .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-laW0KfbHzPyw3oov .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-laW0KfbHzPyw3oov .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-laW0KfbHzPyw3oov .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-laW0KfbHzPyw3oov .cluster text{fill:#333;}#mermaid-svg-laW0KfbHzPyw3oov .cluster span{color:#333;}#mermaid-svg-laW0KfbHzPyw3oov div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-laW0KfbHzPyw3oov :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;} 是 是 是 新索引写入 Hot Phase Warm Phase? 迁移到HDD Cold Phase? 迁移到对象存储 Delete Phase? 删除索引
- SLM 管理离线备份 #mermaid-svg-nzOEXx64sqdHjXtw {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-nzOEXx64sqdHjXtw .error-icon{fill:#552222;}#mermaid-svg-nzOEXx64sqdHjXtw .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-nzOEXx64sqdHjXtw .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-nzOEXx64sqdHjXtw .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-nzOEXx64sqdHjXtw .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-nzOEXx64sqdHjXtw .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-nzOEXx64sqdHjXtw .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-nzOEXx64sqdHjXtw .marker{fill:#333333;stroke:#333333;}#mermaid-svg-nzOEXx64sqdHjXtw .marker.cross{stroke:#333333;}#mermaid-svg-nzOEXx64sqdHjXtw svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-nzOEXx64sqdHjXtw .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-nzOEXx64sqdHjXtw .cluster-label text{fill:#333;}#mermaid-svg-nzOEXx64sqdHjXtw .cluster-label span{color:#333;}#mermaid-svg-nzOEXx64sqdHjXtw .label text,#mermaid-svg-nzOEXx64sqdHjXtw span{fill:#333;color:#333;}#mermaid-svg-nzOEXx64sqdHjXtw .node rect,#mermaid-svg-nzOEXx64sqdHjXtw .node circle,#mermaid-svg-nzOEXx64sqdHjXtw .node ellipse,#mermaid-svg-nzOEXx64sqdHjXtw .node polygon,#mermaid-svg-nzOEXx64sqdHjXtw .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-nzOEXx64sqdHjXtw .node .label{text-align:center;}#mermaid-svg-nzOEXx64sqdHjXtw .node.clickable{cursor:pointer;}#mermaid-svg-nzOEXx64sqdHjXtw .arrowheadPath{fill:#333333;}#mermaid-svg-nzOEXx64sqdHjXtw .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-nzOEXx64sqdHjXtw .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-nzOEXx64sqdHjXtw .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-nzOEXx64sqdHjXtw .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-nzOEXx64sqdHjXtw .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-nzOEXx64sqdHjXtw .cluster text{fill:#333;}#mermaid-svg-nzOEXx64sqdHjXtw .cluster span{color:#333;}#mermaid-svg-nzOEXx64sqdHjXtw div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-nzOEXx64sqdHjXtw :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;} 过期 触发定时任务 创建快照到S3 保留策略检查 删除旧快照
协同价值:
- ILM 删除原始索引后,SLM 仍保留其快照(满足长期归档需求)。
- 恢复时:先从 SLM 快照还原,再由 ILM 自动分配到合适存储层。
5.总结对比表
PUT _slm/policy/daily_backupsPUT _ilm/policy/logs_policy✅ 一句话区分:
- ILM 管理 “活数据”(在线索引如何存储和迁移),SLM 管理 “数据备份”(如何保存和恢复快照)。
- 协同关系:ILM 负责数据的 “生老病死”,SLM 负责 “拍遗照留念” 以备恢复。
两者共同构成 Elasticsearch 数据治理的核心框架,建议在大型生产环境中配合使用。


