缩减
编辑缩减编辑
action: shrink description: >- Shrink selected indices on the node with the most available space. Delete source index after successful shrink, then reroute the shrunk index with the provided parameters. options: ignore_empty_list: True shrink_node: DETERMINISTIC node_filters: permit_masters: False exclude_nodes: ['not_this_node'] number_of_shards: 1 number_of_replicas: 1 shrink_prefix: shrink_suffix: '-shrink' delete_after: True post_allocation: allocation_type: include key: node_tag value: cold wait_for_active_shards: 1 extra_settings: settings: index.codec: best_compression wait_for_completion: True wait_for_rebalance: True wait_interval: 9 max_wait: -1 filters: - filtertype: ...
空值和注释行将导致选择默认值(如果有)。如果设置了某个设置,但未被给定操作使用,则会忽略该设置。
缩减索引是减少集群中总分片数的好方法。 要进行索引缩减,需要满足几个条件
- 索引必须标记为只读
- 索引中每个分片的(主分片或副本)副本必须重新定位到同一个节点
- 集群的健康状况必须为
green
- 目标索引必须不存在
- 目标索引中的主分片数必须是源索引中主分片数的因子。
- 源索引必须比目标索引具有更多主分片。
- 索引中所有将缩减到目标索引单个分片中的分片总文档数不能超过 2,147,483,519 个,因为这是单个分片可以容纳的最大文档数。
- 处理缩减过程的节点必须有足够的可用磁盘空间来容纳现有索引的第二个副本。
Curator 将尝试满足这些条件。如果无法满足所有条件,则不会执行缩减操作。
此操作将缩减索引到目标索引,目标索引的名称为 shrink_prefix + 源索引名称 + shrink_suffix。生成的索引将具有 number_of_shards 个主分片和 number_of_replicas 个副本分片。
缩减将在由 shrink_node 标识的节点上进行,除非指定了 DETERMINISTIC
,在这种情况下,Curator 将评估所有节点以确定哪个节点具有最多的可用空间。如果过滤器块标识了多个要缩减的索引,并且指定了 DETERMINISTIC
,则节点选择过程将针对每个后续索引重复,防止所有空间被消耗在单个节点上。
默认情况下,Curator 将在缩减成功后删除源索引。可以通过将 delete_after 设置为 False
来禁用此功能。如果源索引在缩减成功后未被删除,Curator 将删除源索引上的只读设置和分片分配路由,以将其置于缩减节点上。Curator 将等待分片停止重新路由,然后再继续。
缩减完成后,post_allocation 选项将应用于目标索引。如果设置了此选项,则将应用此分片分配路由(缩减成功后),Curator 将等待所有分片停止重新路由,然后再继续。
唯一可接受的 extra_settings 是 settings
和 aliases
。请注意,在上面的示例中,虽然 best_compression
正在应用于新索引,但它不会生效,直到对索引进行新的写入,例如,当 强制合并 分片到单个段时。
其他选项通常可以保留默认值,但可以根据需要随意更改。
必需设置编辑
可选设置编辑
- search_pattern
- continue_if_exception
- ignore_empty_list
- copy_aliases
- delete_after
- disable_action
- extra_settings
- node_filters
- number_of_shards
- number_of_replicas
- post_allocation
- shrink_prefix
- shrink_suffix
- timeout_override
- wait_for_active_shards
- wait_for_completion
- wait_for_rebalance
- max_wait
- wait_interval