在Elasticsearch(簡稱ES)叢集升配的過程中,遇到可用性區域規格庫存不足的情況時,您可以將該可用性區域下的節點遷移到其他資源充足的可用性區域,然後在新的可用性區域進行叢集升配。本文介紹如何遷移節點的可用性區域。
背景資訊
可用性區域:物理機房和可用性區域基本可以理解為一對一的關係,個別情況是一對多的關係,例如AM5機房包含了cn-hangzhou-d和cn-hangzhou-finance-d兩個可用性區域,從ES管控角度來講裁撤機房即裁撤可用性區域。
遷移可用性區域:ES產品提供了標準化的產品能力來實現可用性區域的叢集遷移,阿里雲ES提供的叢集遷移產品功能基於藍綠能力,可以實現平滑變更,過程全無損。
前提條件
確保叢集處於健康狀態。
可通過
GET _cat/health?v
命令查看叢集健康狀態。在Kibana控制台執行以下命令,檢查叢集中是否存在狀態為close的索引。如果存在,需要將對應索引的狀態暫時設定為open,否則變更不成功。
查看索引狀態
GET /_cat/indices?v
將close狀態的索引暫時設定為open狀態
POST /<index_name>/_open
<index_name>需要替換為狀態為close的索引名稱。
確保當前帳號下存在資源充足的可用性區域。
建議優先選擇字母順序靠後的新可用性區域(例如對於cn-hangzhou-e和cn-hangzhou-h可用性區域,優先選擇cn-hangzhou-h),這類可用性區域資源一般較充足。因為可用性區域遷移功能在遷移當前規格節點到其他可用性區域後,需手動升配叢集,並不會在遷移過程中升配叢集。
注意事項
一次僅支援遷移單個可用性區域,如果需要遷移多個可用性區域,需要分批次做遷移。
可用性區域遷移會觸發叢集滾動重啟,遷移時間長度與叢集規模、資料量及負載情況等相關,建議在業務低峰期做遷移。
如果叢集索引存在副本分區且叢集負載處於正常水平(CPU使用率在60%左右,堆記憶體使用量率在50%左右,load_1m低於CPU核心數),一般情況下,可用性區域遷移過程中,叢集可持續對外提供服務。
如果叢集負載過高且索引沒有副本,同時業務中存在大量的寫入或查詢等情境,在可用性區域遷移過程中,業務可能會出現偶發的訪問逾時現象。建議在可用性區域遷移前,在用戶端訪問機制中配置重試機制,以減小對業務的影響。
操作步驟
- 登入Elasticsearch控制台。
- 在左側導覽列,單擊Elasticsearch執行個體。
- 進入目標執行個體。
- 在頂部功能表列處,選擇資源群組和地區。
- 在Elasticsearch執行個體中單擊目標執行個體ID。
在執行個體的基本資料頁面下方的節點可視化地區,將滑鼠移動到需要遷移的可用性區域上,單擊遷移。
在可用性區域節點遷移對話方塊中,選擇目標可用性區域和虛擬交換器。
參數
說明
目標可用性區域
選擇節點需要遷移到的新的可用性區域。
選擇的目標可用性區域可能沒有庫存或顯示暫不支援該可用性區域,換一個可用性區域即可。
為儘可能實現節點部署的高可用性,不能選擇已經部署了該ES叢集節點的其他可用性區域。
虛擬交換器
對於單可用性區域的ES執行個體,需要選擇新的虛擬交換器進行可用性區域遷移,一般選擇預設提供的交換器。
說明雙可用性區域、三可用性區域執行個體或金融雲執行個體,無須指定新的虛擬交換器。
重要遷移可用性區域會觸發叢集重啟,重啟過程中叢集可持續提供服務,但可能會導致服務不穩定,建議在業務低峰期操作。
選中資料移轉服務合約,單擊確認。
確認後,叢集會重啟。重啟成功後,即可完成遷移任務。