你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 客户端配置器是一种工具,旨在帮助你配置混合群集,并简化迁移到 Azure 托管实例 for Apache Cassandra 的过程。 如果当前有本地数据中心或在自承载环境中运行,则可以使用适用于 Apache Cassandra 的 Azure 托管实例将其他数据中心无缝整合到群集中,同时有效维护这些数据中心。
Prerequisites
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 入门。
如果要在本地运行 CLI 引用命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅 使用 Azure CLI 向 Azure 进行身份验证。
如果系统发出提示,则在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 使用和管理 Azure CLI 中的扩展。
运行 az version 以查找所安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
本文需要 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';
安装
下载并进入 客户端配置器文件夹。
设置虚拟环境以运行 Python 脚本:
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>
参数 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
虚拟机产品层大小 Python 脚本生成名为
install_certs.tar.gz
的 tar 存档。 将此文件夹解压到每个节点的/etc/cassandra/
中:sudo tar -xzvf install_certs.tar.gz -C /etc/cassandra
在
/etc/cassandra/
文件夹中运行sudo ./install_certs.sh
。在 Cassandra 在所有节点上完成重启后,检查
nodetool status
。 这两个数据中心应显示在列表中,其节点处于UN (Up/Normal)
状态。从 Azure 托管的 Apache Cassandra 实例中,可以选择
AllKeyspaces
来更改密钥空间架构中的复制设置,并开始将迁移过程启动到 Azure 托管的 Cassandra 群集。通过使用 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
。详细了解自动复制。
通过选择 “数据中心 ”窗格来更新和监视数据复制进度。