← 返回题目列表

Elasticsearch SLM 是什么?如何用 Snapshot Lifecycle Management 做自动备份?

中等 第 29 / 30 题 更新于 2026/07/30
ElasticsearchSLMSnapshot备份

简化版

SLM 是 Snapshot Lifecycle Management,用来按策略自动创建、保留和清理快照。它解决备份自动化问题,但快照能否恢复还取决于仓库、权限、版本兼容和恢复演练。

详细版

Snapshot 是 ES 的备份机制,SLM 则负责把快照策略自动化。手动快照容易漏做、保留混乱,SLM 可以定时执行。

  • 需要先配置 snapshot repository,例如文件系统、S3、OSS 等。
  • SLM policy 定义执行时间、快照命名、备份哪些索引、保留规则。
  • 快照是增量存储思想,不等于每次完整复制所有数据。
  • 备份策略必须配合恢复演练,否则不知道关键时刻能否用。
  • 快照仓库要和集群故障域隔离,不能只放在同一块本地盘。

完整版教学

一、为什么快照需要生命周期管理

手动备份最大的问题不是不会做,而是不稳定:今天做了,明天忘了;快照越堆越多,占满仓库;真正要恢复时发现关键索引没备份。SLM 的价值就是把备份变成策略:什么时候备份、备份哪些索引、保留多久、超过数量怎么清理。备份这件事越自动化,越不依赖人的记性。

PUT _slm/policy/daily-snapshot
{
  "schedule": "0 30 1 * * ?",
  "name": "<daily-snapshot-{now/d}>",
  "repository": "backup-repo",
  "config": { "indices": ["logs-*", "orders-*"] },
  "retention": { "expire_after": "30d", "min_count": 7, "max_count": 60 }
}

记忆钩子:Snapshot 是备份动作,SLM 是备份作息表和清理规则。

二、Repository 是备份可靠性的根

快照必须写到 repository,仓库可以是共享文件系统或对象存储。仓库位置要和 ES 数据盘故障域隔离,否则集群磁盘坏了,快照也一起没了,就失去备份意义。生产中还要关注仓库权限、网络带宽、对象存储生命周期和加密策略。SLM 策略再漂亮,如果 repository 不可靠,恢复时仍然会翻车。

PUT _snapshot/backup-repo
{
  "type": "fs",
  "settings": { "location": "/mnt/es-backups" }
}

三、快照为什么不是每次完整拷贝

ES 快照通常基于 segment 做增量存储。已经备份过、没有变化的 segment 不需要重复上传,新快照只引用已有 segment 并保存新增部分。这使得频繁快照可行,但也意味着不能手工乱删 repository 里的底层文件,因为多个快照可能共享同一份数据。删除快照应该通过 ES API,让它判断哪些底层文件不再被引用。

快照1:segment A, B, C
快照2:复用 A, B, C + 新增 D
删除快照1:如果快照2 仍引用 A/B/C,底层文件不能删

四、带数字看保留策略的重要性

假设每天快照新增数据 50GB,保留 90 天就是 4.5TB 增量数据,还不算元数据和对象存储冗余。如果没有 retention,仓库迟早被打满。SLM 的 retention 不是可选项,而是备份成本控制的一部分。常见做法是保留最近 7 天每日快照、最近 8 周每周快照、关键业务再额外保留月度快照。

50GB/天 × 90 天 = 4500GB ≈ 4.5TB
如果保留策略错误,备份仓库会静悄悄变成成本黑洞

五、恢复演练比创建快照更重要

很多团队有备份,但没有恢复演练。真正灾难发生时,才发现仓库权限不对、版本不兼容、索引模板缺失、恢复时间远超预期。恢复演练要回答几个问题:能不能恢复、恢复到哪里、恢复多久、恢复后别名和应用连接怎么切。没有演练的备份只是“看起来安全”的心理保险。

检查项目的
仓库可读确认快照可访问
版本兼容避免恢复失败
小集群恢复测试验证流程
RTO 计时评估恢复耗时

六、SLM 和 ILM 的区别

ILM 管索引生命周期,例如 rollover、冷热迁移、删除;SLM 管快照生命周期,例如创建、保留、清理。两者经常同时用于日志系统:ILM 负责线上索引滚动和过期,SLM 负责离线备份保留。不要把 ILM 删除索引当备份,也不要以为 SLM 会自动替你做冷热分层。它们分别解决在线数据管理和备份管理。

ILM:索引在线生命周期
SLM:快照备份生命周期
二者配合:先备份,再按策略删除旧索引

七、常见误区与追问

  • 误区:配置了 SLM 就等于备份可靠。 仓库可靠性、权限、版本兼容和恢复演练同样关键。
  • 误区:可以手工删除仓库里的文件。 快照可能共享 segment,应该通过 ES API 删除快照。
  • 误区:ILM 和 SLM 是一回事。 ILM 管在线索引,SLM 管快照备份。
  • 追问:快照为什么省空间? 因为通常按 segment 增量复用,未变化部分不重复上传。
  • 追问:备份策略怎么验证? 定期在隔离环境恢复,记录 RTO、校验数据和别名。

八、加强记忆

SLM 可以记成“自动备份管家”:按时间做快照,按规则清理旧快照。答题时不要只说 API,要讲 repository、增量 segment、retention、恢复演练和 ILM 区别。备份的目标不是生成一堆快照,而是在灾难时可恢复、可验证、可承受成本。