解决 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
}
相关推荐
猫猫姐姐1 天前
Flink基于Paimon的实时湖仓解决方案的演进
大数据·flink·湖仓一体
snow@li1 天前
运维:部署Jenkins
运维·jenkins
极客数模1 天前
2025年(第六届)“大湾区杯”粤港澳金融数学建模竞赛准备!严格遵循要求,拿下大奖!
大数据·python·数学建模·金融·分类·图论·boosting
Elastic 中国社区官方博客1 天前
Elastic AI agent builder 介绍(三)
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
王卫东1 天前
深入HBase:原理剖析与优化实战
大数据·数据库·hbase
HaiLang_IT1 天前
2026 人工智能与大数据专业毕业论文选题方向及题目示例(nlp/自然语言处理/图像处理)
大数据·人工智能·毕业设计选题
呆呆小金人1 天前
SQL键类型详解:超键到外键全解析
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师
StarRocks_labs1 天前
StarRocks 4.0:基于 Apache Iceberg 的 Catalog 中心化访问控制
大数据·apache
梦子yumeko1 天前
第六章langchain4j之Tools和prompt
大数据·prompt
AcrelGHP1 天前
光储充微电网能量管理系统:构建绿色、高效、安全的能源未来
大数据·运维·人工智能