对应7.17官方文档路径: Snapshot and restore
官方地址如下:
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/snapshot-restore.html
快照和恢复
快照是正在运行的 ES 集群的备份,你可以使用快照做以下事情:
- 定期备份集群,无需停机
- 在删除数据或者硬件故障后恢复数据
- 在集群之间传输数据
- 在 cold 和 frozen 数据层通过可搜索快照降低存储成本
##快照工作流程
ES 将快照存储在集群存储外的存储空间内,称为快照仓库(snapshot repository)。在你制作或者恢复快照之前,你必须在集群上注册一个快照仓库,ES 支持多种具备云存储属性的存储库,包括: - AWS S3
- Google Cloud Storage(GCS)
- Microsoft Azure
在注册快照仓库后,你可以使用快照生命周期管理(SLM)自动创建并管理快照,你可以通过恢复快照(restore)恢复或者传输数据。
快照内容
默认集群快照包含集群状态,全部 data streams,全部 open 状态的索引,包括系统索引。集群状态包含如下内容:
- Persistent 级别集群配置
- 索引模板
- 旧版本索引模板
- 摄取管道
- ILM策略
- 7.12.0 版本后的 feature states
你还可以仅对集群中的特定数据流或索引进行快照。包含数据流或索引的快照会自动包含其别名。还原快照时,你可以选择是否还原这些别名。
快照不包含以下内容:
- Transient 级别集群配置
- 注册过的快照仓库
- 节点配置文件
Feature states
功能状态包含用来存储配置、历史记录和 ES 的其他功能的索引和数据流,例如 security 和 kibana 相关索引。
功能状态通常包含一个或者多个系统索引或者数据流,还可能包含该功能使用的常规索引和数据流。例如,功能状态可能包含该功能执行历史的常规索引,将此历史记录存储在常规索引中可以让您更轻松地搜索它。
##快照如何工作
快照会自动删除重复数据来节约存储空间并减少网络传输开销。备份索引时,快照会复制一个索引 segments 的副本并将它们存储在快照仓库。由于段是不可变的,快照只需要复制自存储库的最后一个快照以来新创建的全部段。
每个快照在逻辑上也是独立的。当你删除快照时,ES 只会删除该快照专门使用的段,不会删除仓库中其他快照使用的段。
快照和分片分配
快照从索引的主分片复制段。当你开始制作一个快照,ES 立刻开始复制任何可用的主分片的段。如果一个分片正在启动或者在重新定位中,ES 将等待这些过程完成后再进行复制。如果一个或多个主分片不可用,快照制作将失败。
一旦快照开始复制分片的段,ES 将不会依据重新平衡和分片分配设置规则移动分片到其他节点,在快照完成复制数据后才会进行分片移动。
快照开始和结束时间
快照不代表某一个精确时间点集群的数据状态。每个快照都包含起止时间,快照代表起止时间范围内的某一个时间点每个分片的数据视图。
快照兼容性
要将快照恢复到其他集群集群,快照、集群和任何恢复的索引的版本必须兼容。
快照版本兼容
你无法将快照还原到早期版本的 ES。例如你无法将在 7.6.0 中拍摄的快照恢复到 7.5.0 版本集群。
索引兼容
你从快照恢复的任何索引也必须与当前集群的版本兼容。如果你尝试恢复在不兼容版本集群中创建的索引,则恢复将失败。
你无法将索引恢复到早期版本的 ES。例如你无法将在 7.6.0 中创建的索引恢复到 7.5.0 版本集群。
兼容的快照中可包含不兼容版本的索引,例如 6.8 版本集群的快照可以包含 5.6 版本集群创建的索引。如果你尝试将 5.6 版本的索引恢复到 7.17 版本集群中,则恢复将失败。如果你在升级集群之前拍摄快照,请记住这一点。
为了解决上述问题,你可以将索引恢复到另一个与索引和当前集群都兼容的最新版本的 ES 中,然后你可以使用 remote reindex 方式将数据导入当前集群,注意只有索引 _source 设置为 enabled 才可以使用 reindex from remote API。
Reindex from remote 可能比恢复快照耗费更长的时间。在正式开始之前,使用部分少量数据测试其性能,以估计你将花费的时间。
注意事项
其他备份方式
制作快照是备份集群唯一可靠且受支持的方式。 你不能通过复制节点的数据目录来备份 ES 集群,官方没有方式支持从文件系统级别的备份恢复数。如果你尝试从此类备份中恢复集群,它可能会因损坏或丢失文件或其他数据不一致而报告失败,或者它可能已经成功地默默地丢失了一些数据。
集群节点的数据目录副本不能用作备份,因为它不是其内容在单个时间点的一致表示。您无法通过在制作副本时关闭节点来解决此问题,也无法通过获取原子文件系统级快照来解决此问题,因为 ES 具有跨越整个集群的一致性要求,您必须使用内置快照功能进行集群备份。
备份创库中的内容
不要修改备份仓库中的任何内容或运行可能会干扰其内容的进程。 如果 ES 以外的东西修改了仓库内容,那么未来制作快照或者恢复操作可能会失败,报告损坏或者其他数据不一致问题,或者默默地丢失了一些数据并报告成功。
但是,你可以安全的从快照仓库的备份中恢复其内容,只要:
- 在您恢复其内容时,该存储库未向 Elasticsearch 注册。
- 当您完成恢复存储库时,其内容与您进行备份时的内容完全相同。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/36737.html