Điều này xảy ra khi Elasticsearch cho rằng đĩa sắp hết dung lượng nên nó tự chuyển sang chế độ chỉ đọc.
Theo mặc định, quyết định của Elasticsearch dựa trên phần trăm dung lượng ổ đĩa trống, vì vậy trên các ổ đĩa lớn, điều này có thể xảy ra ngay cả khi bạn có nhiều GB dung lượng trống.
Hình mờ giai đoạn ngập lụt là 95% theo mặc định, vì vậy trên ổ đĩa 1TB, bạn cần ít nhất 50GB dung lượng trống hoặc Elasticsearch sẽ tự chuyển sang chế độ chỉ đọc.
Để biết tài liệu về hình mờ giai đoạn ngập lụt, hãy xem https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-allocator.html .
Giải pháp phù hợp phụ thuộc vào bối cảnh - ví dụ môi trường sản xuất so với môi trường phát triển.
Giải pháp 1: Giải phóng dung lượng ổ đĩa
Giải phóng đủ dung lượng ổ đĩa sao cho hơn 5% ổ đĩa trống sẽ giải quyết được vấn đề này. Tuy nhiên, Elasticsearch sẽ không tự động thoát khỏi chế độ chỉ đọc khi đủ đĩa trống, bạn sẽ phải làm điều gì đó như sau để mở khóa các chỉ số:
$ curl -XPUT -H "Content-Type: application/json" https://[YOUR_ELASTICSEARCH_ENDPOINT]:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
Giải pháp 2: Thay đổi cài đặt hình mờ giai đoạn lũ lụt
Thay đổi "cluster.routing.allocation.disk.watermark.flood_stage"
cài đặt thành một cái gì đó khác. Nó có thể được đặt thành phần trăm thấp hơn hoặc thành giá trị tuyệt đối. Dưới đây là một ví dụ về cách thay đổi cài đặt từ tài liệu :
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"
}
}
Một lần nữa, sau khi thực hiện việc này, bạn sẽ phải sử dụng lệnh curl ở trên để mở khóa các chỉ số, nhưng sau đó chúng sẽ không chuyển sang chế độ chỉ đọc nữa.