You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

索引状态管理问题:索引迁移至UltraWarm存储后设置副本数为0失败

解决AWS Elasticsearch UltraWarm迁移后调整副本数失败的问题

问题根源

你遇到的TOO_MANY_REQUESTS/12/index read-only / allow delete (api)错误,其实和速率限制无关——核心原因是UltraWarm存储上的索引是只读状态。一旦索引完成warm_migration迁移到UltraWarm节点,AWS ES会自动将其标记为只读,这时候任何修改索引配置(包括调整副本数)的操作都会被拒绝,因为UltraWarm的架构是基于S3快照挂载的,只支持查询,不支持写入或配置变更。

你的ISM策略里先执行迁移、再调整副本数的顺序刚好搞反了,导致迁移后索引变只读,无法修改副本数。

正确的解决步骤

调整ISM策略中warm状态下的操作顺序:先把副本数设为0,再执行warm_migration迁移操作。因为在热节点上索引还是可读写、可修改配置的,这时候能顺利完成副本数调整,之后再迁移到UltraWarm就不会有问题了。

修改后的完整ISM策略如下:

{
  "policy_id": "hot_warm_workflow",
  "description": "hot-warm workflow - Indices stay hot storage for 8 days and then move to warm storage",
  "last_updated_time": 1632847870167,
  "schema_version": 1,
  "error_notification": null,
  "default_state": "hot",
  "states": [
    {
      "name": "hot",
      "actions": [],
      "transitions": [
        {
          "state_name": "warm",
          "conditions": {
            "min_index_age": "8d"
          }
        }
      ]
    },
    {
      "name": "warm",
      "actions": [
        {
          "retry": {
            "count": 5,
            "backoff": "exponential",
            "delay": "1h"
          },
          "replica_count": {
            "number_of_replicas": 0
          }
        },
        {
          "retry": {
            "count": 5,
            "backoff": "exponential",
            "delay": "1h"
          },
          "warm_migration": {}
        }
      ],
      "transitions": []
    }
  ],
  "ism_template": null
}

额外补充说明

  • UltraWarm的设计定位是冷数据存储,底层依赖S3的多AZ冗余保证数据可用性,所以官方建议不需要副本——这也是为什么要在热节点阶段就把副本数降到0,既节省热节点的资源,也避免迁移后无法修改的尴尬。
  • 对于已经迁移到UltraWarm且出现错误的索引,你可以手动将它恢复到热存储,修改副本数后再重新迁移到UltraWarm;后续新索引按照调整后的策略执行即可。

内容的提问来源于stack exchange,提问作者Dónal Tuohy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 14:52:32