使用快照迁移 Elasticsearch 数据
本页面介绍了如何使用快照在 Elasticsearch 集群之间迁移数据。为了减少集群停机时间,Elastic 建议您使用增量快照。本页面详细介绍了增量快照流程,包括概述、先决条件和建议的流程时间表。
如果您不需要进行增量恢复,可以直接跳至“使用快照和恢复迁移数据”查看基本的快照和恢复说明。
当您将数据和服务从一个 Elasticsearch 集群移动到另一个集群时(例如移动到 Elastic Cloud Hosted、Elastic Cloud Enterprise 或新的本地硬件),快照和恢复功能允许您最大限度地减少集群停机时间。通过按顺序拍摄和恢复快照,您可以让新集群与旧集群保持同步,直到准备好进行最终切换。
在以下情况中,使用增量快照进行迁移非常有用:
- 将索引中的所有数据以及配置(例如角色和 Kibana 仪表板)从旧集群迁移到新集群。
- 确保数据摄取(如 Logstash 或 Beats)和数据消费(如使用 Elasticsearch 作为后端的应用程序)无缝迁移到新集群。
- 保持数据一致性并最大限度地减少中断。
快照和恢复是一种迁移任何类型 Elasticsearch 数据的可靠方法。有关该功能的更多详细信息,请查看快照和恢复。要了解其他可用的迁移方法及其支持的数据类型,请参阅迁移您的 Elasticsearch 数据。
增量快照仅保存自上次快照以来发生更改的数据。第一个快照是数据的完整副本。随后的每个快照仅包含差异部分,这使得创建和恢复快照随着时间的推移变得更快、更高效。
恢复时,Elasticsearch 仅将缺失的数据段从快照仓库复制到新集群的本地存储中。当快照之间的更改较小时,恢复过程会明显更快。
通过按顺序拍摄和恢复增量快照,您可以让新集群与旧集群保持密切同步,从而允许您提前迁移大部分数据,并最大限度地减少最终切换期间的停机时间。
在迁移之前,请查看先决条件和要求。
- 集群大小 – 新集群必须与旧集群大小相同或更大。
- 版本兼容性 – 两个集群必须使用兼容的 Elasticsearch 版本。要检查集群版本是否兼容,请查看快照版本兼容性。
- 存储要求 - 确保有足够的仓库存储空间。使用量会随着快照频率和数据量而增加。
- 网络开销 – 跨网络、区域或提供商传输快照可能非常耗时并产生费用。
- 资源使用 – 快照和恢复操作可能会占用大量资源并影响集群性能。
- 自定义集成 – 一些直接使用 Elasticsearch API 的集成(例如 Elasticsearch Java 客户端库)在切换期间可能需要额外处理。
对于 Elastic Cloud Enterprise,Amazon S3 是最常用的快照存储,但您可以从包含 Elasticsearch 快照的任何可访问的外部存储进行恢复。
为了以最小的停机时间完成迁移,请使用增量快照。虽然具体顺序可能会根据您的基础设施和运营需求而有所不同,但您可以将建议的迁移时间表作为一个可靠的基准进行调整。根据您自己的运营需求调整步骤和时间。
- 09:00:对旧集群进行初始全量快照。您也可以在前一天进行初始全量快照。
- 09:30:将快照恢复到新集群。
- 09:55:对旧集群进行另一次快照,并将其恢复到新集群。重复此过程,直到快照和恢复操作仅需几秒钟或几分钟。请记住,在恢复新集群中已经存在的索引(例如,为了引入最近复制的数据)时,需要先将其关闭。此外,请记住恢复操作会自动打开索引,因此您可能需要在恢复后关闭主动写入的索引。
- 10:15:执行最终切换。
- 在旧集群中,暂停索引或将索引设置为只读。有关将索引设置为只读以在迁移期间安全暂停索引的详细信息,请查看索引生命周期操作:只读。
- 进行最终快照。
- 将该快照恢复到新集群。同样,请记住,要恢复已经存在的索引,需要先将其关闭。
- 将摄取和查询切换到新集群。
- 打开新集群中的索引。
请按照以下步骤迁移您的 Elasticsearch 数据。
在此步骤中,您将在新集群中配置一个只读快照仓库,该仓库指向旧集群使用的存储位置。这允许新集群访问和恢复在原始环境中创建的快照。
在您的旧 Elasticsearch 集群上,检索快照仓库配置
GET /_snapshot/_all记下仓库名称和类型(例如
s3、gcs或azure)、其基路径以及任何其他设置。身份验证凭据通常存储在每个节点的安全设置中。在新的 ECH 或 ECE 部署中注册仓库时,您需要复制所有这些配置。如果您的旧集群配置了多个仓库,请确定包含您要迁移的数据的快照所在的仓库。
在新集群上添加快照仓库。
如果您正在迁移可搜索快照,仓库名称在旧集群和新集群中必须相同。如果旧集群仍然对该仓库具有写访问权限,请将该仓库注册为只读,以避免数据损坏。您可以使用
readonly: true选项执行此操作。要将现有快照仓库连接到您的新部署,请针对您的部署类型和仓库所在的存储提供商,按照管理快照仓库中的步骤进行操作。您需要:
- 将您的凭据存储在密钥库中
- 创建仓库
重要提示在执行这些步骤时,请务必直接在部署级别配置仓库。
注册并验证仓库后,您就可以将任何快照中的任何数据恢复到您的新集群了。
您可以使用 Kibana 管理 UI 或使用 Elasticsearch API 运行恢复操作。有关更多详细信息(包括基于 API 的示例),请参阅恢复快照。
有关快照内容的详细信息,请参阅快照和恢复 > 快照内容。
要开始恢复过程
打开 Kibana,并使用导航菜单或全局搜索字段转到 Snapshot and Restore(快照和恢复)管理页面。
在 Snapshots(快照)选项卡下,您可以找到来自您新添加的快照仓库的可用快照。选择任何快照以查看其详细信息,并从那里选择恢复它。
选择 Restore(恢复)。
选择您希望恢复的索引。
(可选)配置其他恢复选项,例如 Restore aliases(恢复别名)、Restore global state(恢复全局状态)或 Restore feature state(恢复功能状态)。
选择 Restore snapshot(恢复快照)以开始该过程。
验证每个已恢复的索引在您的部署中是否可用。您可以使用 Kibana Index Management(索引管理)UI 或通过运行以下查询来执行此操作:
GET INDEX_NAME/_search?pretty如果您恢复了许多索引,也可以运行
GET _cat/indices?s=index来列出所有索引以进行验证。
如需为您的 Elasticsearch 迁移获取专家协助,请前往 Elastic 专业服务。