全部產品
Search
文件中心

Elasticsearch:遷移與升級可用性區域

更新時間:Jun 06, 2025

若Elasticsearch(簡稱ES)叢集在升配時可用性區域規格庫存不足,您可將該可用性區域下的節點遷移到其他資源充足的可用性區域,然後在新的可用性區域進行叢集升配;若由於業務擴充,您的單可用性區域叢集已無法滿足高並發查詢或巨量資料量寫入需求,您可將叢集的單可用性區域升級為多可用性區域,避免單點故障,增強叢集高可用。本文介紹如何遷移及升級Elasticsearch的可用性區域。

背景資訊

  • 可用性區域:物理機房和可用性區域基本可以理解為一對一的關係,個別情況是一對多的關係,例如AM5機房包含了cn-hangzhou-d和cn-hangzhou-finance-d兩個可用性區域,從ES管控角度來講裁撤機房即裁撤可用性區域。

  • 遷移可用性區域:將目標可用性區域下的ES節點遷移至資源充足的其他可用性區域。該操作常用於解決資源瓶頸、進行負載平衡,避免因資源不足導致升配失敗。ES提供了標準化的產品能力來實現可用性區域的叢集遷移,叢集遷移功能基於藍綠部署能力,可實現平滑變更,確保過程全無損。

  • 升級可用性區域:將叢集從單可用性區域擴充為多可用性區域,多可用性區域部署可提升叢集的容災能力。該操作常用於預防單點故障,增強叢集的高可用性和穩定性。

費用說明

無論是遷移可用性區域或升級可用性區域,均按照您實際使用的節點數量收費,具體費用請以實際賬單為準。計費詳情,請參見阿里雲ES計費

注意事項

  • 遷移可用性區域

    • 每次僅支援遷移單個可用性區域,如需遷移多個可用性區域,需分批次執行遷移操作。

    • 可用性區域遷移會觸發叢集滾動重啟,遷移時間長度與叢集規模、資料量及負載情況等相關,建議在業務低峰期做遷移。

    • 若叢集索引存在副本分區且叢集負載處於正常水平(CPU使用率在60%左右,堆記憶體使用量率在50%左右,load_1m低於CPU核心數),一般情況下,可用性區域遷移過程中,叢集可持續對外提供服務。

    • 若叢集負載過高且索引沒有副本,同時業務中存在大量的寫入或查詢等情境,在可用性區域遷移過程中,業務可能會出現偶發的訪問逾時現象。建議在可用性區域遷移前,在用戶端訪問機制中配置重試機制,以減小對業務的影響。

  • 升級可用性區域

    • 僅支援將單可用性區域升級為多可用性區域(即兩個可用性區域或三個可用性區域),不支援多可用性區域升級(即兩個可用性區域無法升級為三個可用性區域)。

    • 為保障叢集穩定性,升級時,系統會預設開啟專有主節點。

    • 升級過程中,叢集現有的節點會進行重啟,並且系統會自動調整資料節點的數量,確保資料在多個可用性區域中均勻分布。

      資料節點計算公式:資料節點的總數量 = 升級後單可用性區域的資料節點數量 * 可用性區域數

      例如:某叢集為單可用性區域,總共配置了6個資料節點,升級為3個可用性區域後,則該叢集每個可用性區域的資料節點數量為2個。

      說明

      若單可用性區域的資料節點較少,升級為多可用性區域後,無法確保每個可用性區域至少分到一個資料節點,此時,系統會按需自動補充資料節點。例如,某單可用性區域叢集總共只有2個資料節點,升級為3個可用性區域時,系統會自動補充一個資料節點(即總共3個資料節點),確保每個可用性區域都分配到一個資料節點。

前提條件

  • 遷移可用性區域

    • 確保叢集處於健康狀態。

      可通過GET _cat/health?v命令查看叢集健康狀態。

    • 在Kibana控制台執行以下命令,檢查叢集中是否存在狀態為close的索引。如果存在,需要將對應索引的狀態暫時設定為open,否則變更不成功。

      • 查看索引狀態

        GET /_cat/indices?v

        查看索引狀態

      • 將close狀態的索引暫時設定為open狀態

        POST /<index_name>/_open

        <index_name>需要替換為狀態為close的索引名稱。

    • 確保當前帳號下存在資源充足的可用性區域。

      建議優先選擇字母順序靠後的新可用性區域(例如,對於cn-hangzhou-ecn-hangzhou-h可用性區域,優先選擇cn-hangzhou-h),這類可用性區域資源一般較充足。遷移當前規格節點到其他可用性區域後,需手動升配叢集,遷移過程中不會進行叢集升配。

    • 確保cluster.routing.allocation.enable配置項設定為all(即允許ES自動分配分區),否則可能導致變更過程出現阻塞。

      可通過GET _cluster/settings命令查看相關配置。若cluster.routing.allocation.enable的取值不為all,可參考如下命令設定。

      PUT _cluster/settings
      {
        "transient": {
          "cluster.routing.allocation.enable": "all"
        }
      }
  • 升級可用性區域

    • 確保叢集處於健康狀態。

      可通過GET _cat/health?v命令查看叢集健康狀態。

    • 確保用戶端完成串連分布的最佳化,以避免出現長串連分布不均勻現象。

      在ES叢集中,若用戶端的長串連集中在某個可用性區域節點(例如,可用性區域A),而其他可用性區域節點串連數極少,則可用性區域A的節點可能因串連過多而導致負載過高、資源耗盡,而其他節點處於閑置狀態。您可通過設定串連有效時間長度、並發重啟用戶端、使用單獨的協調節點等方案最佳化串連分布,詳情請參見長串連不均勻

    • 確保cluster.routing.allocation.enable配置項設定為all(即允許ES自動分配分區),否則可能導致變更過程出現阻塞。

      可通過GET _cluster/settings命令查看相關配置。若cluster.routing.allocation.enable的取值不為all,可參考如下命令設定。

      PUT _cluster/settings
      {
        "transient": {
          "cluster.routing.allocation.enable": "all"
        }
      }

遷移可用性區域

您可按照如下步驟,完成可用性區域的遷移:

重要

遷移可用性區域會觸發叢集重啟,重啟過程中叢集可持續提供服務,但可能會導致服務不穩定,建議在業務低峰期操作。

  1. 進入執行個體詳情頁。

    1. 登入Elasticsearch控制台

    2. 在左側導覽列,單擊Elasticsearch執行個體

    3. 在頂部功能表列選擇資源群組和地區,單擊目標執行個體ID,進入執行個體詳情頁。

  2. 在執行個體的基本資料頁面下方的節點可視化地區,將滑鼠移動至需要遷移的可用性區域上,單擊遷移

    image

  3. 可用性區域節點遷移對話方塊中,選擇目標可用性區域虛擬交換器

    參數

    說明

    目標可用性區域

    選擇節點需要遷移到的新的可用性區域。

    • 選擇的目標可用性區域可能沒有庫存或顯示暫不支援該可用性區域,換一個可用性區域即可。

    • 為儘可能實現節點部署的高可用性,不能選擇已經部署了該ES叢集節點的其他可用性區域。

    虛擬交換器

    對於單可用性區域的ES執行個體,需要選擇新的虛擬交換器進行可用性區域遷移,一般選擇預設提供的交換器。

    說明
    • 雙可用性區域、三可用性區域執行個體或金融雲執行個體,無須指定新的虛擬交換器

    • 若沒有可用的交換器,可參考建立和管理交換器建立。

  4. 勾選資料移轉服務合約,單擊確認

    確認後,叢集會重啟。重啟成功,即可完成遷移任務。

    重要
    • 可用性區域遷移過程中,需要先在新的目標可用性區域購買新的Master節點,會臨時出現2個可用性區域共存的現象。

    • 遷移成功後,ES叢集節點將遷移到新可用性區域下。但控制台基本資料和升降配頁面可能會因為資訊更新不及時依舊顯示舊可用性區域,此顯示不影響在新可用性區域下使用ES叢集。您可在控制台的節點可視化地區,查看叢集節點所在的真實可用性區域。

    • 遷移後叢集中的節點IP地址會發生變化。如果您在叢集配置中指定了節點的IP地址,需要在遷移後更新。

升級可用性區域

您可按照如下步驟,完成可用性區域的升級:

說明

升級過程可能會出現負載不均衡問題,可參考叢集負載不均問題的分析方法及解決方案處理。

  1. 進入Elasticsearch執行個體列表。

    1. 登入Elasticsearch控制台

    2. 在左側導覽列,單擊Elasticsearch執行個體

    3. 在頂部功能表列處,選擇資源群組和地區。

  2. 單擊目標執行個體操作列的升配

  3. 變更配置頁面的可用性區域數量地區,按需選擇升級為兩個可用性區域或三個可用性區域(推薦),按照介面指引完成購買。

    說明

    其他配置可保持預設,也可按需配置。系統將按照您實際使用的節點數量收費,具體費用請以實際賬單為準。計費詳情,請參見阿里雲ES計費

後續步驟

遷移或升級完成後,您可進入執行個體詳情頁,查看變更後的可用性區域詳細資料。