Esto sucede cuando Elasticsearch cree que el disco se está quedando sin espacio, por lo que se pone en modo de solo lectura.
Por defecto, la decisión de Elasticsearch se basa en el porcentaje de espacio libre en disco, por lo que en discos grandes esto puede suceder incluso si tiene muchos gigabytes de espacio libre.
La marca de agua de la etapa de inundación es del 95% de forma predeterminada, por lo que en una unidad de 1 TB necesita al menos 50 GB de espacio libre o Elasticsearch se pondrá en modo de solo lectura.
Para obtener documentos sobre la marca de agua de la etapa de inundación, consulte https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-allocator.html .
La solución adecuada depende del contexto, por ejemplo, un entorno de producción frente a un entorno de desarrollo.
Solución 1: libere espacio en disco
Liberar suficiente espacio en disco para que más del 5% del disco esté libre resolverá este problema. Elasticsearch no saldrá automáticamente del modo de solo lectura una vez que haya suficiente disco libre, sin embargo, tendrá que hacer algo como esto para desbloquear los índices:
$ curl -XPUT -H "Content-Type: application/json" https://[YOUR_ELASTICSEARCH_ENDPOINT]:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
Solución 2: cambie la configuración de la marca de agua de la etapa de inundación
Cambie la "cluster.routing.allocation.disk.watermark.flood_stage"
configuración a otra cosa. Puede configurarse en un porcentaje menor o en un valor absoluto. A continuación, se muestra un ejemplo de cómo cambiar la configuración de los documentos :
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"
}
}
Nuevamente, después de hacer esto, tendrá que usar el comando curl anterior para desbloquear los índices, pero después de eso no deberían volver a entrar en modo de solo lectura.