pending tasks任務一直有堆積,線上createindex等無法完成或建立時間較長。
data node某資料盤故障,建立索引時,master無法完成分片分配,導致任務阻塞,影響後續建立索引等任務。
重新梳理看到的現象:
1, create index較慢或者或出現失敗
2, pending task有任務堆積
3, get /_cat/nodes返回500
根據pending task中的任務「shard-failed」,搜尋master日誌,找到如下一條資訊
根據此資訊,可能是/data9目錄資料目錄出現許可權問題,但是進入到es資料目錄,建立、刪除、修改檔案許可權是正常。比較奇怪。
在官方論壇找到了一篇關於此報錯的乙個討論:
但此討論與遇到問題不是同一問題。
問題追查,到此陷入困境。
仔細閱讀了master的配置檔案,但是master實際上並沒有配置/data9這個資料目錄,但master為什麼會有這樣報錯?
猜測1:由於master機器上有2個es例項,啟動時引用錯配置檔案
驗證:驗證程序開啟的檔案控制代碼,與實際不符。
猜測2:其他節點報錯
驗證:仔細排查挨個節點的日誌,發現一data node同樣有相應報錯,切換到對應目錄,確認對應磁碟故障。
臨時方案:
在對應資料節點,臨時下線故障資料目錄,重啟es例項。
效果驗證:
get /_cluster/pending_tasks常態下為0
get /_cat/nodes返回正常結果
說明:分片不能同步情況可以可以通過此介面檢視/_cluster/allocation/explain?pretty&pretty
後續跟進:
增加資料盤故障監控
資料節點資料盤故障,會影響到整個集群效能。
es資料跨集群遷移(HDSF方法)
es 備份儲存方式支援以下幾種方式 fs 檔案掛載 url 網路協議儲存 http,https,ftp s3 亞馬遜 hdfs azure 微軟 gcs 谷歌 本篇文章採用hdfs方式儲存 1.repository 倉庫 es集群中,想要備份資料,必須建立倉庫,用來儲存快照,乙個集群可以建立多個倉庫...
oracle資料庫集群例項故障排除
故障環境 redhat作業系統 oracle rac環境中資料庫伺服器 故障現象 rac中單個伺服器無法連線 故障原因 可能為rac環境異常導致單點故障,具體原因分為 1 心跳線問題 2 vote disk無法訪問 3 伺服器宕機 處理辦法 針對原因1 檢查ocssd.log日誌檔案,應發現類似wa...
mysql資料同步es踩坑記
背景 需要把mysql的資料同步到es中。由於沒有維護canal集群,我們選擇了通過記錄最後一次同步資料的update time來進行資料同步。具體的做法,當有資料變更的時候,發個訊息,表示需要進行資料同步。訊息的監聽者加鎖序列執行,從要同步資料的表中獲取上一次update time之後的資料,並且...