建置高可用性 CockroachDB 叢集

CockroachDB 是一個以交易且一致的索引鍵值存放區建立的分散式 SQL 資料庫。

架構

此參照架構顯示在 Oracle Cloud Infrastructure Compute 執行處理上部署的典型三節點 CockroachDB。公用負載平衡器可用來將工作負載分散到這三個節點。

下圖說明此參考架構。

cockroachdb-oci.png 描述如下
cockroachdb-oci.png 圖解描述
  • 區域

    Oracle Cloud Infrastructure 區域是一個區域化的地理區域,包含一或多個稱為可用性網域的資料中心。區域與其他區域無關,而且大型距離可以區隔 (跨國家或甚至洲)。

  • 可用性網域

    可用性網域是區域內獨立的獨立資料中心。每個可用性網域中的實體資源都會與其他可用性網域中的資源隔離,以提供容錯。可用性網域不會共用基礎架構,例如電源、冷卻或內部可用性網域網路。因此,一個可用性網域的失敗並不會影響區域中的其他可用性網域。

  • 容錯域

    容錯域是一組可用性網域內的硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分配到多個容錯域時,應用程式可能會容許容錯域內的實體伺服器故障、系統維護和電源故障。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。VCN 就像傳統資料中心網路一樣,可讓您完全控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,供您在建立 VCN 之後變更。您可以將 VCN 區隔為子網路,子網路範圍可為區域或可用性網域。每個子網路均包含一個未與 VCN 中其他子網路重疊的連續位址範圍。您可以在建立子網路之後變更子網路的大小。子網路可以是公用或專用。

    此架構使用一個公用子網路代管公用負載平衡器和執行 CockroachDB 的三個運算執行處理。

  • 負載平衡器

    Oracle Cloud Infrastructure Load Balancing 服務提供自動化的流量分佈,從一個進入點分佈到可從 VCN 存取的多個伺服器。此架構有兩個監聽器,一個用於 TCP 連接埠 8080,另一個用於 TCP 連接埠 26257。負載平衡器也有兩個對應這兩個監聽器的後端集。

  • 安全清單

    您可以為每個子網路建立安全規則,以指定子網路中必須允許的來源、目的地以及流量類型。

    此架構使用 TCP 連接埠 8080 和 26257 的輸入規則,讓從屬端能夠存取 HTTP 和 CockroachDB 監聽器流量。

推薦

您的需求可能會與此處描述的架構不同。請使用下列建議作為開始點。

  • 運算資源配置

    此架構使用 Oracle Linux 7。9 作業系統映像檔搭配 VM.Standard。E3。Flex Compute 資源配置。對於您的應用程式,如果您需要更多記憶體、核心或網路頻寬,可以選擇不同的資源配置。

  • VCN
    • 當您建立 VCN 時,請根據計畫連附至 VCN 中子網路的資源數目,決定所需的 CIDR 區塊數目和各個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。

    • 選取未與您想要設定專用連線之任何其他網路 (在 Oracle Cloud Infrastructure、內部部署資料中心或其他雲端提供者中) 重疊的 CIDR 區塊。

    • 建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。

    • 設計子網路時,請考量您的流量和安全需求。將特定層或角色內的所有資源連附至可作為安全界限的相同子網路。

    • 使用區域子網路。
  • 負載平衡器頻寬

    建立負載平衡器時,您可以選取提供固定頻寬的預先定義資源配置,或指定自訂 (彈性) 資源配置,供您設定頻寬範圍,並讓服務根據流量樣式自動調整頻寬。您可以使用任一方式,在建立負載平衡器之後隨時變更資源配置。

考量

  • 擴展性

    達成法定所需的最小節點為三個,因此此架構會建置三個節點。您可能需要更多節點來滿足應用程式的效能或高可用性需求。

    您可以新增其他「運算」節點並將它們包括在負載平衡器後端集中,以水平方式擴展資料庫叢集。

    您可以變更每個「運算」節點的 VM 資源配置,以垂直方式擴展資料庫叢集。使用較高的核心計數資源配置也會增加配置給運算執行處理和網路頻寬的記憶體。

  • 使用狀態

    容錯域可在單一可用性網域內提供最佳復原能力。在此架構中,您可以在具有多個可用性網域的區域中部署執行相同作業的運算執行處理,而不需在一個可用性網域中部署應用程式。此設計會透過簡介冗餘來移除單一失敗點。建置架構之後,請使用負載平衡器的公用 IP 位址,透過內建的 SQL 從屬端連線至 CockroachDB。

  • 成本

    根據資料庫所需的核心、記憶體以及網路頻寬,選取虛擬機器 (VM) 資源配置。您可以從一個核心資源配置開始,如果您需要更多的資料庫節點效能、記憶體或網路頻寬,可以稍後再變更 VM 資源配置。

建置

此參照架構的 Terraform 程式碼可作為 Oracle Cloud Infrastructure Resource Manager 中的範例堆疊。您也可以從 GitHub 下載程式碼,並加以自訂以符合您的特定需求。

  • 使用 Oracle Cloud Infrastructure Resource Manager 中的範例堆疊進行部署:
    1. 一下部署到 Oracle Cloud

      如果您尚未登入,請輸入租用戶和使用者證明資料。

    2. 選取要建置堆疊的區域。
    3. 依照畫面上的提示和指示建立堆疊。
    4. 建立堆疊之後,請按一下 Terraform 動作,然後選取畫。
    5. 等待工作完成,然後複查計畫。

      若要進行任何變更,請返回「堆疊詳細資訊」頁面,按一下編輯堆疊,然後進行必要的變更。然後,再次執行「劃」動作。

    6. 如果不需要進一步的變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取用。
  • 使用 GitHub 中的 Terraform 程式碼進行部署:
    1. 前往 GitHub
    2. 將儲存區域複製或下載到您的本機電腦。
    3. 依照 README 文件中的指示進行。

變更日誌

此日誌會列出重大變更: