Cela se produit lorsque Elasticsearch pense que l'espace disque est insuffisant et qu'il se met donc en mode lecture seule.
Par défaut, la décision d'Elasticsearch est basée sur le pourcentage d'espace disque disponible, donc sur les gros disques, cela peut se produire même si vous disposez de plusieurs gigaoctets d'espace libre.
Le filigrane de la phase d'inondation est de 95% par défaut, donc sur un lecteur de 1 To, vous avez besoin d'au moins 50 Go d'espace libre ou Elasticsearch se mettra en mode lecture seule.
Pour obtenir des documents sur le filigrane de la phase d'inondation, consultez https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-allocator.html .
La bonne solution dépend du contexte - par exemple un environnement de production ou un environnement de développement.
Solution 1: libérer de l'espace disque
Libérer suffisamment d'espace disque pour que plus de 5% du disque soit libre résoudra ce problème. Elasticsearch ne sortira pas automatiquement du mode lecture seule une fois que suffisamment de disque sera libre, vous devrez faire quelque chose comme ceci pour déverrouiller les index:
$ curl -XPUT -H "Content-Type: application/json" https://[YOUR_ELASTICSEARCH_ENDPOINT]:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
Solution 2: modifier le paramètre de filigrane de la phase d'inondation
Changez le "cluster.routing.allocation.disk.watermark.flood_stage"
paramètre pour autre chose. Il peut être défini sur un pourcentage inférieur ou sur une valeur absolue. Voici un exemple de modification du paramètre à partir de la documentation :
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"
}
}
Encore une fois, après avoir fait cela, vous devrez utiliser la commande curl ci-dessus pour déverrouiller les index, mais après cela, ils ne devraient pas revenir en mode lecture seule.