加载中

使用快照迁移 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 快照的任何可访问的外部存储进行恢复。

为了以最小的停机时间完成迁移,请使用增量快照。虽然具体顺序可能会根据您的基础设施和运营需求而有所不同,但您可以将建议的迁移时间表作为一个可靠的基准进行调整。根据您自己的运营需求调整步骤和时间。

  1. 09:00:对旧集群进行初始全量快照。您也可以在前一天进行初始全量快照。
  2. 09:30:将快照恢复到新集群。
  3. 09:55:对旧集群进行另一次快照,并将其恢复到新集群。重复此过程,直到快照和恢复操作仅需几秒钟或几分钟。请记住,在恢复新集群中已经存在的索引(例如,为了引入最近复制的数据)时,需要先将其关闭。此外,请记住恢复操作会自动打开索引,因此您可能需要在恢复后关闭主动写入的索引。
  4. 10:15:执行最终切换。
    1. 在旧集群中,暂停索引或将索引设置为只读。有关将索引设置为只读以在迁移期间安全暂停索引的详细信息,请查看索引生命周期操作:只读
    2. 进行最终快照。
    3. 将该快照恢复到新集群。同样,请记住,要恢复已经存在的索引,需要先将其关闭。
    4. 将摄取和查询切换到新集群。
    5. 打开新集群中的索引。

请按照以下步骤迁移您的 Elasticsearch 数据。

在此步骤中,您将在新集群中配置一个只读快照仓库,该仓库指向旧集群使用的存储位置。这允许新集群访问和恢复在原始环境中创建的快照。

提示

如果您的新部署无法连接到旧集群使用的同一个仓库(例如,如果它是一个使用私有网络文件系统 (NFS) 共享的自托管集群),请考虑以下替代方案:

  • 备份您的仓库到受支持的存储系统(如 AWS S3、Google Cloud Storage 或 Azure Blob Storage),然后配置您的新集群以将该位置用于数据迁移。
  • 通过 ftphttphttps 公开仓库内容,并在您的新部署中使用只读 URL 仓库类型来访问快照。
  1. 在您的旧 Elasticsearch 集群上,检索快照仓库配置

    GET /_snapshot/_all
    		

    记下仓库名称和类型(例如 s3gcsazure)、其基路径以及任何其他设置。身份验证凭据通常存储在每个节点的安全设置中。在新的 ECH 或 ECE 部署中注册仓库时,您需要复制所有这些配置。

    如果您的旧集群配置了多个仓库,请确定包含您要迁移的数据的快照所在的仓库。

  2. 在新集群上添加快照仓库。

    如果您正在迁移可搜索快照,仓库名称在旧集群和新集群中必须相同。如果旧集群仍然对该仓库具有写访问权限,请将该仓库注册为只读,以避免数据损坏。您可以使用 readonly: true 选项执行此操作。

    要将现有快照仓库连接到您的新部署,请针对您的部署类型和仓库所在的存储提供商,按照管理快照仓库中的步骤进行操作。您需要:

    • 将您的凭据存储在密钥库中
    • 创建仓库
    重要提示

    在执行这些步骤时,请务必直接在部署级别配置仓库。

注册并验证仓库后,您就可以将任何快照中的任何数据恢复到您的新集群了。

您可以使用 Kibana 管理 UI 或使用 Elasticsearch API 运行恢复操作。有关更多详细信息(包括基于 API 的示例),请参阅恢复快照

有关快照内容的详细信息,请参阅快照和恢复 > 快照内容

要开始恢复过程

  1. 打开 Kibana,并使用导航菜单或全局搜索字段转到 Snapshot and Restore(快照和恢复)管理页面。

  2. Snapshots(快照)选项卡下,您可以找到来自您新添加的快照仓库的可用快照。选择任何快照以查看其详细信息,并从那里选择恢复它。

  3. 选择 Restore(恢复)。

  4. 选择您希望恢复的索引。

  5. (可选)配置其他恢复选项,例如 Restore aliases(恢复别名)、Restore global state(恢复全局状态)或 Restore feature state(恢复功能状态)。

  6. 选择 Restore snapshot(恢复快照)以开始该过程。

  7. 验证每个已恢复的索引在您的部署中是否可用。您可以使用 Kibana Index Management(索引管理)UI 或通过运行以下查询来执行此操作:

    GET INDEX_NAME/_search?pretty
    		

    如果您恢复了许多索引,也可以运行 GET _cat/indices?s=index 来列出所有索引以进行验证。

如需为您的 Elasticsearch 迁移获取专家协助,请前往 Elastic 专业服务

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.