解决 Elasticsearch 写操作磁盘空间问题——cluster_block_exception

在运行 Elasticsearch 集群遇到磁盘空间不足的情况时,Elasticsearch 会采取保护措施以防止数据丢失。 在执行写操作时,会抛出异常:cluster_block_exception 错误,特别是当错误消息表明索引被设置为只读模式时

错误信息

复制代码
Caused by: java.lang.RuntimeException: ElasticsearchException[Elasticsearch exception [type=cluster_block_exception, reason=index [es_index] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete 

错误信息分析:

  • cluster_block_exception:集群块异常,通常是由于某种保护机制触发的
  • disk usage exceeded flood-stage watermark:磁盘使用超过了"洪水阶段"水位线
  • index has read-only-allow-delete block:索引已被设置为只读模式,只允许删除操作

问题分析

Elasticsearch 使用磁盘水位线来确保磁盘空间不会用尽,从而导致写入数据丢失问题。默认情况下,Elasticsearch 设置了以下磁盘水位线:

  • 低水位线(85%):当磁盘使用率超过此值时,Elasticsearch 不再为该节点分配新的分片。
  • 高水位线(90%):当磁盘使用率超过此值时,Elasticsearch 会尝试将分片迁移到其他节点。

当磁盘使用率达到"洪水阶段"水位线(通常是 95%),Elasticsearch 会将索引设置为只读模式,防止更多的数据写入,以保护集群的稳定性和数据的安全性。

如何解决

  1. 释放磁盘空间

  2. 增加磁盘容量

  3. 调整 Elasticsearch 设置(不推荐):

    • 修改磁盘水位线设置 :在 elasticsearch.yml 配置文件中,可以调整磁盘水位线设置。例如:

      yaml 复制代码
      cluster.routing.allocation.disk.watermark.low: 75%
      cluster.routing.allocation.disk.watermark.high: 85%
      cluster.routing.allocation.disk.watermark.flood_stage: 95%

      注意:过低的水位线可能导致频繁的分片迁移和性能问题

解决了 Elasticsearch 中的磁盘空间不足问题,并且磁盘使用率降回到低于"洪水阶段"水位线(默认95%),Elasticsearch 通常会自动恢复索引的写入权限,这意味着一旦磁盘空间不再达到危险水平,Elasticsearch 会自动解除索引的只读状态,允许正常的写入操作。

手动解除只读模式(如果需要): 在一些情况下自动恢复没有按预期发生,可以手动解除索引的只读状态

json 复制代码
PUT /my_index/_settings
{
  "index.blocks.write": null
}
相关推荐
隐于花海,等待花开20 分钟前
数据开发常问的技术性问题及解答
大数据·hive
数据中心的那点事儿21 分钟前
从设计到运营全链破局 恒华智算专场解锁产业升级密码
大数据·人工智能
天辛大师2 小时前
山东居士林:天辛大师用AI+预测城市田园农场运营调配
大数据·人工智能·随机森林·机器人·启发式算法
盘古信息IMS2 小时前
注塑工厂上MES系统,如何选对厂商实现数智化跃迁?
大数据·人工智能·物联网
Elasticsearch2 小时前
Streams 如何在几秒内生成日志管道
elasticsearch
阿坤带你走近大数据2 小时前
OracleSQL优化案例-2
大数据·oracle·sql优化
历程里程碑2 小时前
二叉树---翻转二叉树
开发语言·c++·elasticsearch·链表·搜索引擎·tornado·dash
快递鸟社区2 小时前
物流基础知识详解及高效管理工具应用
大数据
cd_949217213 小时前
新北洋亮相2026 CHINASHOP:以“智印零售全生态”赋能效率与增长
大数据·人工智能·零售
IoT物联网产品手记3 小时前
IoT产品模块化架构设计:从功能堆叠到能力组合的系统方法
大数据·人工智能·物联网