当前位置: 首页 > news >正文

Elasticsearch 磁盘使用率超过 85% 导致只读怎么解锁?

遇到 Elasticsearch 因磁盘使用率过高进入只读模式,最稳妥的做法是先清理磁盘空间或调整水位线配置,再手动解除索引的只读锁。需注意,默认触发只读保护的水位线是 95%(flood_stage),85% 仅为低水位线警告。

先说结论:这是触发了磁盘水位线保护机制,需先释放空间或调整阈值,再清除只读标记

  • 先确认:检查集群磁盘使用率及水位线配置(默认 flood_stage 为 95%)
  • 先处理:清理磁盘空间或临时调高水位线阈值(有风险)
  • 再验证:确认索引读写状态恢复正常

命令速用版

如果已确认磁盘空间安全,可直接执行以下命令解除只读锁:

PUT _all/_settings
{"index.blocks.read_only_allow_delete": null
}

为什么会这样

Elasticsearch 内置了磁盘水位线(Disk Watermark)机制。默认配置如下:

  • low (85%): 停止分配新分片到此节点。
  • high (90%): 尝试迁移分片离开此节点。
  • flood_stage (95%): 强制将所有索引设置为只读允许删除(read_only_allow_delete)。

当磁盘使用率超过 flood_stage 时,集群会强制停止写入以避免节点崩溃。

分步处理

1. 检查磁盘水位状态

使用以下命令查看集群健康状态和磁盘使用情况:

GET _cluster/health?v
GET _cat/nodes?v&h=name,disk.used_percent

2. 释放磁盘空间(推荐)

方案 A:清理旧索引。确认无用数据后删除,将使用率降至 95% 以下:

DELETE /log-2023.01.01

方案 B:清理快照。如果使用快照仓库,清理旧快照释放空间:

DELETE /_snapshot/my_backup/snapshot_1

方案 C(临时风险):调整水位线配置。若无法立即清理,可临时调高阈值,但需尽快扩容,否则可能导致节点 OOM 崩溃:

PUT _cluster/settings
{"transient": {"cluster.routing.allocation.disk.watermark.flood_stage": "97%"}
}

3. 解除只读锁

空间充足或配置调整后,执行“命令速用版”中的 API 清除只读标记。

怎么验证是否生效

执行以下命令查看索引状态,确认 blocks 列是否为空或不含 read_only:

GET _cat/indices?v

尝试写入一条测试数据,确认不再报错 403 Forbidden。

常见坑

1. 只解锁不清理:如果磁盘空间未释放,解锁后很快会再次触发保护进入只读模式。

2. 主节点问题:如果主节点磁盘已满,可能导致集群状态无法更新,需优先保障主节点空间。

3. 配置未持久化:使用 transient 调整配置重启后会失效,生产环境建议结合扩容计划修改 persistent 配置。

4. 版本差异:7.x 及以上版本默认启用磁盘水位线,早期版本可能需手动开启。

参考来源

1. Elastic 官方文档 - Disk Allocation Decider
URL: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html#disk-allocation

原文链接:https://www.zjcp.cc/ask/10865.html

http://www.jsqmd.com/news/799243/

相关文章:

  • Bert-VITS2语音合成实战:从原理到部署的完整指南
  • Figma设计系统自动化:生成AI就绪的DESIGN.md文档
  • 构建自动化营销数据管道:打通Google Ads、Meta Ads与GA4的数据孤岛
  • 如何通过3个关键策略实现Inter字体70%性能提升
  • PyTorch模型保存与加载的5个实战场景:从单卡训练到多卡部署的完整避坑指南
  • 同城配送介绍详解:从入门到实战全攻略
  • 芯片测试中的扫描压缩技术解析与应用
  • uni-number-box深度解析:从基础属性到高级双向绑定实战
  • Oracle JDBC驱动版本踩坑记:从Protocol violation到Clob写入失败的完整排查与升级指南
  • 2026论文降AI实测:保留排版格式,3款工具与手工微调指南
  • MySQL主从复制如何实现读写分离_利用ProxySQL进行流量分发
  • 量子优化算法QAOA在车辆路径问题中的应用与改进
  • 如何实现C++ Web 自动化测试实战:常用函数全解析与场景化应用指南
  • 如何确定SQL字段是否为空_使用IS NULL与IS NOT NULL
  • 别再猜了!Adams与MATLAB/Simulink联合仿真时,驱动函数的‘度’到底该怎么传?
  • MCP协议实践:为AI助手构建工具调用能力与ararahq-mcp项目解析
  • 大数据技生态中Hadoop、Spark、Hive、HDFS之间的区别
  • 【深度解析】Hermes Agent + Ion UI:从自治代理到 Agentic OS 的桌面 AI 自动化实践
  • DeepSeek V4 API实战:从零搭建AI编程助手全流程
  • 自适应联邦学习优化自监督语音模型微调
  • UNet3+凭什么比UNet++更轻量又好用?深入对比参数量与设计思想
  • 基于多品牌定制化视频监控软件
  • DPDK LPM路由查找性能调优全记录:我是如何把查找速度再提升30%的
  • 【2024最严审核季】ElevenLabs Independent计划通过率骤降41%?用真实数据还原:技术文档完整性、域名可信度、流量真实性三重权重模型
  • 双端/欲望之尾 欲望の尾 Tail of Desire Ver1.01 一款由Bluebone制作组倾力打造的日式RPG神作,
  • 氛围工程:提升团队效能与代码质量的无形引擎
  • Vue3聊天项目深度优化:如何用V3Scroll和V3Layer提升仿QQ界面的交互体验与性能?
  • 应对2026检测新规:论文AI率太高怎么办?3款实测工具与避坑经验
  • 终极免费散热优化指南:3步掌握Windows风扇智能控制
  • 2026届必备的AI科研方案推荐榜单