你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用客户端配置器,通过 Azure Managed Instance for Apache Cassandra 配置混合群集

Azure 客户端配置器是一种工具,旨在帮助你配置混合群集,并简化迁移到 Azure 托管实例 for Apache Cassandra 的过程。 如果当前有本地数据中心或在自承载环境中运行,则可以使用适用于 Apache Cassandra 的 Azure 托管实例将其他数据中心无缝整合到群集中,同时有效维护这些数据中心。

重要说明

客户端配置器工具以公共预览版提供。 此功能不附带服务级别协议。 建议不要将它用于生产工作负载。

有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

Prerequisites

  • 本文需要 Azure CLI 2.30.0 或更高版本。 如果你使用的是 Azure Cloud Shell,则表示已安装最新版本。

  • 使用 Azure 虚拟网络 与自承载环境或本地环境建立连接。 有关如何将本地环境连接到 Azure 的详细信息,请参阅 将本地网络连接到 Azure

  • 需要 Python 安装。 若要检查是否已安装 Python,请在终端中运行 python --version

  • 确保 Azure 托管的 Apache Cassandra 实例群集和本地 Cassandra 群集都位于同一个虚拟网络中。 如果没有,则需要建立网络对等互连或其他连接方式。 例如,使用 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>
    
    参数 DESCRIPTION
    subscription-ID Azure 订阅 ID
    cluster-resource-group 群集所在的资源组
    cluster-name 适用于 Apache Cassandra 群集名称的 Azure 托管实例
    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 并将 Cassandra 指向连接到 Azure Managed Instance for Apache Cassandra 群集所需的新证书。

    • 然后,它会提示用户重启 Cassandra。

      显示运行脚本的结果的屏幕截图。

  7. 在 Cassandra 在所有节点上完成重启后,检查 nodetool status。 这两个数据中心应显示在列表中,其节点处于 UN (Up/Normal) 状态。

  8. 从 Azure 托管的 Apache Cassandra 实例中,可以选择 AllKeyspaces 来更改密钥空间架构中的复制设置,并开始将迁移过程启动到 Azure 托管的 Cassandra 群集。

  9. 通过使用 Azure 资源管理器模板(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. 通过选择 “数据中心 ”窗格来更新和监视数据复制进度。

    显示复制进度的屏幕截图。

后续步骤