elasticsearch 5.5官方文档阅读

Disk-based Shard Allocation(基于磁盘

2018-03-28  本文已影响28人  菜花_Q

官网地址:Disk-based Shard Allocation | Elasticsearch Reference [5.5] | Elastic

基于磁盘的碎片分配

在决定是否将新的碎片分配给该节点或主动将shards分配到该节点上之前,节点上可用磁盘空间中的Elasticsearch 参数(factor)。

以下设置可以在elasticsearch.yml配置文件中配置,或者使用cluster-update-settings API在一个活跃的集群中动态更新。

cluster.routing.allocation.disk.threshold_enabled

默认为true.。设置为false禁用磁盘分配决定器。

cluster.routing.allocation.disk.watermark.low

控制磁盘使用量的低水位。它默认为85%,当节点超过85%的磁盘使用时,它不会分配新的分片给节点。

它还可以设置为一个绝对字节值(如500mb),以防止在可用空间不足的情况下分配碎片。

cluster.routing.allocation.disk.watermark.high

控制高水位。它默认为90%,这意味着如果节点磁盘使用率超过90%,ES将尝试将shards转移到另一个节点。它还可以设置为一个绝对字节值(类似于低水位),以便在节点上可用的空间的配置量小于配置的空间。

note:百分比值指的是使用的磁盘空间,而字节值指的是空闲的磁盘空间。这可能会让人感到困惑,因为它颠覆了高和低的含义。例如,将低水位设置为10gb和高水位到5gb是有意义的,但不是相反。

cluster.info.update.interval

对于集群中的每个节点,Elasticsearch应该多久检查一次磁盘使用情况。默认为30s。

cluster.routing.allocation.disk.include_relocations

默认值为true,这意味着在计算节点的磁盘使用情况时,Elasticsearch将考虑到当前正在迁移到目标节点的碎片。考虑到将碎片的尺寸考虑进去,但是,对于一个节点的磁盘使用情况估计是错误的,因为迁移可能是90%完成的,而最近检索到的磁盘使用将包括重新定位碎片的总大小以及正在运行的迁移所使用的空间。

一个将低水位更新到不超过磁盘大小80%,有50g剩余的高水位的例子,并且每分钟更新关于集群的信息:

PUT _cluster/settings

{

  "transient": {

    "cluster.routing.allocation.disk.watermark.low": "80%",

    "cluster.routing.allocation.disk.watermark.high": "50gb",

    "cluster.info.update.interval": "1m"

  }

}

注意(note):2.0.0之前,使用多个数据路径时,磁盘阈值决策者仅考虑使用在所有数据路径(如果你有两个数据路径,磁盘总容量是100b,用了50b使用,使用率是(50%),另一个磁盘总容量是50b用了40b,那么使用率是(80%),它将认为节点的磁盘总容量是 150 b,使用了90b)。在2.0.0中,分别跟踪最小和最大磁盘使用情况。

上一篇下一篇

猜你喜欢

热点阅读