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

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

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

重要

客户端配置器工具为公共预览版。 此功能不附带服务级别协议,不建议将其用于生产工作负载。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

先决条件

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

  • 与自承载环境或本地环境连接的 Azure 虚拟网络。 若要详细了解如何将本地环境连接到 Azure,请参阅将本地网络连接到 Azure 一文。

  • 需要安装 Python。 可以通过在终端中运行 python --version 来检查是否安装了 python。

  • 确保 Azure 托管实例和本地 Cassandra 群集都位于同一虚拟网络上。 如果不是,则需要建立网络对等互连或其他连接方式(如快速路由)。

  • 托管群集和本地群集的群集名称须相同。 * 确保 cassandra.yaml 文件中的存储端口设置为 7001、群集名称与托管群集相同:

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

安装

python3 -m venv env
source env/bin/activate
python3 -m pip install -r requirements.txt
  • 登录到 Azure CLI az login
  • 在包含现有(本地)群集信息的客户端文件夹中运行 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 订阅 ID。
  • cluster-resource-group:群集所在的资源组。
  • cluster-name:Azure 托管实例群集名称。
  • initial-password:适用于 Apache Cassandra 的 Azure 托管实例群集的密码。
  • vnet-resource-group:附加到虚拟网络的资源组。
  • vnet-name:附加到群集的虚拟网络的名称。
  • subnet-name:分配给 Cassandra 群集的 IP 地址的名称。
  • 位置:群集的部署位置。
  • seed-nodes:本地或自承载的 Cassandra 群集中现有数据中心的种子节点。
  • mi-dc-name:Azure 托管实例群集的数据中心名称。
  • dc-name:本地群集的数据中心名称。
  • sku:虚拟机 SKU 大小。
  • Python 脚本生成名为 install_certs.tar.gz 的 tar 存档。 * 将此文件夹解压缩到每个节点上的 /etc/cassandra/

    sudo tar -xzvf install_certs.tar.gz -C /etc/cassandra
    
  • /etc/cassandra/ 文件夹中运行 sudo ./install_certs.sh

    • 通过运行 sudo chmod +x install_certs.sh 确保该脚本可执行。
    • 该脚本安装连接到 Azure 托管实例群集所需的新证书,并将 Cassandra 指向这些新证书。
    • 然后,该脚本提示用户重启 Cassandra。 屏幕截图显示运行该脚本的结果。
  • 一旦 Cassandra 在所有节点上重启完毕,就可以检查 nodetool status。 这两个数据中心均应在列表中显示,且其节点为 UN(启用/正常)状态。

  • 然后可从适用于 Apache Cassandra 的 Azure 托管实例中选择 AllKeyspaces,更改 Keyspace 架构中的复制设置并启动迁移到 Cassandra 托管实例群集的过程。

    屏幕截图显示如何选择所有密钥空间。

提示

应通过 arm 模板启用自动复制设置。 arm 模板应包括:

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

警告

这会更改所有密钥空间定义,使其包含 WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }。 如果这不是所需拓扑,需要调整它并在 Cassandra 托管实例群集上手动运行 nodetool rebuild。 详细了解自动复制

  • 通过选择 Data Center 窗格来更新和监视数据复制进度

    屏幕截图显示复制进度。

[!INFO]

后续步骤

在本快速入门中,你了解了如何使用 Azure Managed Instance for Apache Cassandra 客户端配置器创建混合群集。 现在你可开始使用该群集了。