迁移
编辑迁移编辑
允许的阶段:warm,cold。
通过更新 index.routing.allocation.include._tier_preference
索引设置,将索引移动到与当前阶段相对应的 数据层。ILM 会在 warm 和 cold 阶段自动注入迁移操作。要阻止自动迁移,可以显式包含迁移操作并将 enabled 选项设置为 false
。
如果 cold
阶段定义了 可搜索快照操作,则 migrate
操作不会在 cold
阶段自动注入,因为托管索引将使用与 migrate
操作配置相同的 _tier_preference 基础设施直接挂载到目标层。
在 warm 阶段,migrate
操作将 index.routing.allocation.include._tier_preference
设置为 data_warm,data_hot
。这会将索引移动到 warm 层 中的节点。如果 warm 层中没有节点,它将回退到 hot 层。
在 cold 阶段,migrate
操作将 index.routing.allocation.include._tier_preference
设置为 data_cold,data_warm,data_hot
。这会将索引移动到 cold 层 中的节点。如果 cold 层中没有节点,它将回退到 warm 层,或者如果 warm 节点不可用,则回退到 hot 层。
在 frozen 阶段不允许使用迁移操作。frozen 阶段使用 index.routing.allocation.include._tier_preference
为 data_frozen
直接挂载可搜索快照。这会将索引移动到 frozen 层 中的节点。
在 hot 阶段不允许使用迁移操作。初始索引分配 自动 执行,并且可以通过手动或通过 索引模板 进行配置。
选项编辑
-
enabled
- (可选,布尔值) 控制 ILM 是否在此阶段自动迁移索引。默认为
true
。
示例编辑
在以下策略中,指定了 分配 操作以减少副本数量,然后 ILM 将索引迁移到 warm 节点。
显式指定迁移操作不是必需的 - ILM 会自动执行迁移操作,除非您禁用迁移。
response = client.ilm.put_lifecycle( policy: 'my_policy', body: { policy: { phases: { warm: { actions: { migrate: {}, allocate: { number_of_replicas: 1 } } } } } } ) puts response
PUT _ilm/policy/my_policy { "policy": { "phases": { "warm": { "actions": { "migrate" : { }, "allocate": { "number_of_replicas": 1 } } } } } }
禁用自动迁移编辑
以下策略中的迁移操作被禁用,分配操作将索引分配到具有 rack_id
为 *one* 或 *two* 的节点。
response = client.ilm.put_lifecycle( policy: 'my_policy', body: { policy: { phases: { warm: { actions: { migrate: { enabled: false }, allocate: { include: { rack_id: 'one,two' } } } } } } } ) puts response
PUT _ilm/policy/my_policy { "policy": { "phases": { "warm": { "actions": { "migrate" : { "enabled": false }, "allocate": { "include" : { "rack_id": "one,two" } } } } } } }