共用方式為


快速入門:使用 Client Configurator 設定具有適用於 Apache Cassandra 的 Azure 受控實例的混合式叢集

Azure 用戶端配置工具是一種工具,旨在協助您配置混合式叢集,並簡化遷移至適用於 Apache Cassandra 的 Azure 受管實例的過程。 如果您目前有內部部署資料中心,或是在自我裝載環境中作業,則可以使用 Azure Managed Instance for Apache Cassandra,將其他資料中心順暢地併入您的叢集中,同時有效地維護這些資料中心。

重要事項

Client Configurator 工具處於公開預覽狀態。 此功能已推出但不提供服務等級協定。 不建議將其用於生產工作負載。

如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

先決條件

  • 本文需要 Azure CLI 2.30.0 版或更新版本。 若您使用的是 Azure Cloud Shell,即已安裝最新版本。

  • 使用與您自我托管或內部部署環境連線的 Azure 虛擬網路。 如需如何將內部部署環境連線至 Azure 的詳細資訊,請參閱 將內部部署網路連線至 Azure

  • 需要 Python 安裝。 若要檢查是否已安裝 Python,請在終端機中執行 python --version

  • 確定 Apache Cassandra 叢集和內部部署 Cassandra 叢集的 Azure 受控實例都位於相同的虛擬網路上。 如果沒有,您需要建立網路對等互連或其他連線方式。 例如,使用 Azure ExpressRoute。

  • 受控叢集和本機叢集的叢集名稱必須相同。

    在 檔案中 cassandra.yaml ,確定記憶體埠設定為 7001,且叢集名稱與受控叢集相同:

    cluster_name: managed_cluster-name
    storage_port: 7001
    
    UPDATE system.local SET cluster_name = 'managed_cluster-name' where key='local';
    

安裝

  1. 下載並移至 客戶端設定器資料夾

  2. 設定虛擬環境以執行 Python 文稿:

    python3 -m venv env
    source env/bin/activate
    python3 -m pip install -r requirements.txt
    
  3. 登入 Azure CLI az login

  4. 使用來自現有 (內部部署) 叢集的資訊,在客戶端資料夾中執行 Python 文稿:

    python3 client_configurator.py --subscription-id <subcriptionId> --cluster-resource-group <clusterResourceGroup> --cluster-name <clusterName> --initial-password <initialPassword> --vnet-resource-group <vnetResourceGroup> --vnet-name <vnetName> --subnet-name <subnetName> --location <location> --seed-nodes <seed1 seed2 seed3> --mi-dc-name <managedInstanceDataCenterName> --dc-name <onPremDataCenterName> --sku <sku>
    
    參數 說明
    subscription-ID Azure 訂用帳戶識別碼
    cluster-resource-group 叢集所在的資源群組
    cluster-name Azure Managed Instance for Apache Cassandra 叢集名稱
    initial-password 適用於 Apache Cassandra 叢集的 Azure 受控實例密碼
    vnet-resource-group 連結至虛擬網路的資源群組
    vnet-name 連結至叢集的虛擬網路名稱
    subnet-name 配置給 Cassandra 叢集的 IP 位址名稱
    location 部署叢集的位置
    seed-nodes 內部部署或自我裝載 Cassandra 叢集中現有資料中心的種子節點
    mi-dc-name 適用於 Apache Cassandra 叢集的 Azure 受控實例的數據中心名稱
    dc-name 內部部署叢集的數據中心名稱
    sku 虛擬機產品層大小
  5. Python 指令碼會產生名為 install_certs.tar.gz 的 tar 封存。 將此資料夾解壓縮到每個節點上的 /etc/cassandra/

    sudo tar -xzvf install_certs.tar.gz -C /etc/cassandra
    
  6. /etc/cassandra/ 資料夾內,執行 sudo ./install_certs.sh

    • 執行 sudo chmod +x install_certs.sh,以確定指令碼是可執行的。

    • 該指令碼會安裝並將 Cassandra 指向連線到 Azure Managed Instance for Apache Cassandra 叢集所需的新憑證。

    • 然後,它會提示使用者重新啟動 Cassandra。

      顯示執行腳本結果的螢幕快照。

  7. 在 Cassandra 在所有節點上完成重新啟動之後,請檢查 nodetool status。 這兩個數據中心都應該出現在清單中,且其節點處於 UN (Up/Normal) 狀態。

  8. 接著,從 Apache Cassandra 的 Azure 受控實例實例中,您可以選取 AllKeyspaces 以變更 Keyspace 架構中的複寫設定,並開始移轉至適用於 Cassandra 叢集的 Azure 受控實例。

  9. 使用 Azure Resource Manager 模板 (ARM 模板) 啟用 autoReplicate 設定。 ARM 範本應該包括:

    "properties":{
    ...
    "externalDataCenters": ["dc-name-1","dc-name-2"],
    "autoReplicate": "AllKeyspaces",
    ...
    }
    

    所有鍵空間的定義都會變更為包含 WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }。 如果此拓撲不是您想要的,請調整拓撲,並在 Apache Cassandra 叢集的 Azure 受控實例上手動執行 nodetool rebuild

    深入了解自動復寫

  10. 選取 [資料中心 ] 窗格,以更新和監視數據復寫進度。

    顯示複寫進度的螢幕快照。

後續步驟