Ini terjadi saat Elasticsearch menganggap disk kehabisan ruang sehingga menempatkan dirinya dalam mode hanya-baca.
Secara default, keputusan Elasticsearch didasarkan pada persentase ruang disk yang kosong, jadi pada disk besar hal ini dapat terjadi meskipun Anda memiliki banyak gigabyte ruang kosong.
Watermark tahap banjir adalah 95% secara default, jadi pada drive 1TB Anda memerlukan setidaknya 50GB ruang kosong atau Elasticsearch akan menempatkan dirinya dalam mode hanya-baca.
Untuk dokumen tentang tanda air tahap banjir, lihat https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-allocator.html .
Solusi yang tepat bergantung pada konteksnya - misalnya lingkungan produksi vs lingkungan pengembangan.
Solusi 1: Kosongkan ruang disk
Mengosongkan ruang disk yang cukup sehingga lebih dari 5% disk kosong akan menyelesaikan masalah ini. Elasticsearch tidak akan secara otomatis keluar dari mode hanya-baca setelah cukup disk kosong, Anda harus melakukan sesuatu seperti ini untuk membuka kunci indeks:
$ curl -XPUT -H "Content-Type: application/json" https://[YOUR_ELASTICSEARCH_ENDPOINT]:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
Solusi 2: Ubah pengaturan watermark tahap banjir
Ubah "cluster.routing.allocation.disk.watermark.flood_stage"
pengaturan ke yang lain. Ini dapat diatur ke persentase yang lebih rendah atau ke nilai absolut. Berikut adalah contoh cara mengubah pengaturan dari dokumen :
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"
}
}
Sekali lagi, setelah melakukan ini Anda harus menggunakan perintah curl di atas untuk membuka kunci indeks, tetapi setelah itu mereka tidak boleh masuk ke mode hanya-baca lagi.