压缩

编辑
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_settingssettingsaliases。请注意,在上面的示例中,虽然 best_compression 正在应用于新索引,但它在对索引进行新的写入(例如,当 强制合并 分片到单个段时)之前不会生效。

其他选项通常可以保留默认值,但可以根据需要随意更改它们。

必需设置

编辑