解决Elasticsearch索引只读(read-only)
原因为:es 的设置默认是 85% 和 90 %,95%
当为85%时:Elasticsearch不会将碎片分配给磁盘使用率超过85%的节点( cluster.routing.allocation.disk.watermark.low)
当为90%时:Elasticsearch尝试重新分配给磁盘低于使用率90%的节点(cluster.routing.allocation.disk.watermark.high)
当为85%时:Elasticsearch执行只读模块(cluster.routing.allocation.disk.watermark.flood_stage)
1、扩大磁盘或者删除部分历史索引
2、重置改只读索引快
某一个索引重置只读模块
PUT /twitter/_settings { "index.blocks.read_only_allow_delete": null }
所有索引重置只读模块
PUT /_all/_settings
{
"index.blocks.read_only_allow_delete": null
}
PUT /_cluster/settings
{
"persistent" : {
"cluster.blocks.read_only" : false
}
}
修改默认设置
可以修改为具体的磁盘空间值,也可以修改为百分之多少
临时修改
PUT _cluster/settings { "transient": { "cluster.routing.allocation.disk.watermark.low": "100gb", "cluster.routing.allocation.disk.watermark.high": "50gb", "cluster.routing.allocation.disk.watermark.flood_stage": "10gb", "cluster.info.update.interval": "1m" } }
永久修改
PUT _cluster/settings { "persistent": { "cluster.routing.allocation.disk.watermark.low": "100gb", "cluster.routing.allocation.disk.watermark.high": "50gb", "cluster.routing.allocation.disk.watermark.flood_stage": "10gb", "cluster.info.update.interval": "1m" } }
转载自:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/disk-allocator.html