索引将索引分配筛选器与数据层节点角色混合在一起,以便在数据层之间移动
编辑索引将索引分配筛选器与数据层节点角色混合在一起,以便在数据层之间移动编辑
Elasticsearch 在 7.10 版本中将 冷热架构 的实现标准化为 数据层。某些索引和部署可能尚未完全过渡到 数据层,并将实现冷热架构的新方法与基于 旧版 节点属性的方法混合在一起。
这可能会导致未分配的分片或分片未转换到所需 层。
为了解决这个问题,请按照以下步骤操作
为了分配分片,我们需要调用 迁移到数据层路由 API,该 API 将解决冲突的路由配置,以便使用标准化的 数据层。这还将通过在需要时迁移索引模板和 ILM 策略来使系统面向未来。
使用 Kibana
- 登录 Elastic Cloud 控制台。
-
在 Elasticsearch Service 面板中,单击部署的名称。
如果部署的名称被禁用,则您的 Kibana 实例可能不正常,在这种情况下,请联系 Elastic 支持。如果您的部署不包含 Kibana,您只需 先启用它。
-
打开部署的侧边导航菜单(位于左上角 Elastic 徽标下方),然后转到 开发工具 > 控制台。
-
首先,让我们 停止 索引生命周期管理
response = client.ilm.stop puts response
POST /_ilm/stop
响应将如下所示
{ "acknowledged": true }
-
等待索引生命周期管理停止。检查状态,直到它返回
STOPPED
,如下所示response = client.ilm.get_status puts response
GET /_ilm/status
当索引生命周期管理成功停止时,响应将如下所示
{ "operation_mode": "STOPPED" }
-
response = client.ilm.migrate_to_data_tiers puts response
POST /_ilm/migrate_to_data_tiers
响应将如下所示
{ "dry_run": false, "migrated_ilm_policies":["policy_with_allocate_action"], "migrated_indices":["warm-index-to-migrate-000001"], "migrated_legacy_templates":["a-legacy-template"], "migrated_composable_templates":["a-composable-template"], "migrated_component_templates":["a-component-template"] }
已更新的 ILM 策略。
已迁移到 层级偏好 路由的索引。
已更新的旧版索引模板,不包含为提供的数据属性设置的自定义路由。
已更新的可组合索引模板,不包含为提供的数据属性设置的自定义路由。
已更新的组件模板,不包含为提供的数据属性设置的自定义路由。
-
重新启动 索引生命周期管理
response = client.ilm.start puts response
POST /_ilm/start
响应将如下所示
{ "acknowledged": true }
为了分配分片,我们需要确保部署使用 数据层 节点角色,然后调用 迁移到数据层路由 API,该 API 将解决冲突的路由配置,以便使用标准化的 数据层。这还将通过在需要时迁移索引模板和 ILM 策略来使系统面向未来。
-
如果您的部署尚未使用 数据层,请将 数据节点分配 给适当的数据层。为每个数据节点配置适当的角色,以将其分配给一个或多个数据层:
data_hot
、data_content
、data_warm
、data_cold
或data_frozen
。例如,以下设置将节点配置为热层和内容层中的仅数据节点。node.roles [ data_hot, data_content ]
-
停止 索引生命周期管理
response = client.ilm.stop puts response
POST /_ilm/stop
响应将如下所示
{ "acknowledged": true }
-
等待索引生命周期管理停止。检查状态,直到它返回
STOPPED
,如下所示response = client.ilm.get_status puts response
GET /_ilm/status
当索引生命周期管理成功停止时,响应将如下所示
{ "operation_mode": "STOPPED" }
-
response = client.ilm.migrate_to_data_tiers puts response
POST /_ilm/migrate_to_data_tiers
响应将如下所示
{ "dry_run": false, "migrated_ilm_policies":["policy_with_allocate_action"], "migrated_indices":["warm-index-to-migrate-000001"], "migrated_legacy_templates":["a-legacy-template"], "migrated_composable_templates":["a-composable-template"], "migrated_component_templates":["a-component-template"] }
已更新的 ILM 策略。
已迁移到 层级偏好 路由的索引。
已更新的旧版索引模板,不包含为提供的数据属性设置的自定义路由。
已更新的可组合索引模板,不包含为提供的数据属性设置的自定义路由。
已更新的组件模板,不包含为提供的数据属性设置的自定义路由。
-
重新启动 索引生命周期管理
response = client.ilm.start puts response
POST /_ilm/start
响应将如下所示
{ "acknowledged": true }