ES集群修改index副本數報錯 :index read-only / allow delete
阿新 • • 發佈:2018-08-25
number 磁盤空間 kibana 設置 tools iba 故障 json 增加 ES集群修改index副本數,報錯 :index read-only / allow delete (api)
原因:
es集群數據量增速過快,導致個別es node節點磁盤使用率在%80以上,接近%90 ,由於ES新節點的數據目錄data存儲空間不足,導致從master主節點接收同步數據的時候失敗,此時ES集群為了保護數據,會自動把索引分片index置為只讀read-only.
故障處理辦法:
1:集群加節點,簡單粗暴;
2:降低集群index副本數量;
3:其它:增加磁盤、刪除歷史數據等;
我們采用方案2,作為臨時應對方案,待集群可以正常數據寫入後,再指向步驟 1或者3的操作徹底解決問題;
操作步驟:
1:在Kibana的開發工具Dev Tools中執行(或在服務器上通過curl工具發起PUT請求,下文同)
修改索引副本數量為1
PUT 48_hot_v1/_settings
{
"index": {
"number_of_replicas": "1"
}
}
報錯如下:
api接口執行操作
{
"type": "cluster_block_exception",
"reason": "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"
}
報錯原因:
es磁盤已滿而無法索引更多文檔,則elasticsearch將切換為只讀。它確保了只讀查詢的可用性。Elasticsearch不會自動切換回來,可以使用如下方法切換回正常模式:
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d ‘{"index.blocks.read_only_allow_delete": null}‘
或者,在Kibana的開發工具Dev Tools中執行
PUT _settings { "index": { "blocks": { "read_only_allow_delete": "false" } } }
驗證 :查看指定索引的設置信息
GET 48_hot_v1/_settings
查找內容如下:
},
"blocks": {
"read_only_allow_delete": "false"
},
配置生效後集群開始刪除index副本數據,datanode 節點磁盤空間逐步釋放。
ES集群修改index副本數報錯 :index read-only / allow delete