Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Istanza gestita di Azure per Apache Cassandra è un servizio completamente gestito per cluster Apache Cassandra open source puri. Il servizio consente anche di eseguire l'override delle configurazioni, a seconda delle esigenze specifiche di ogni carico di lavoro, per la massima flessibilità e controllo.
Questa guida introduttiva descrive come usare i comandi dell'interfaccia della riga di comando di Azure per configurare un cluster in più aree in Azure.
Prerequisiti
Utilizzare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione ad Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, considerare l'esecuzione dell'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l’interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Eseguire l'autenticazione ad Azure con l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Questo articolo richiede l'interfaccia della riga di comando di Azure versione 2.30.0 o successiva. Se si sta usando Azure Cloud Shell, la versione più recente è già installata.
- Usa una rete virtuale di Azure con connettività all'ambiente autogestito o locale. Per altre informazioni su come connettere gli ambienti locali ad Azure, vedere Connettere una rete locale ad Azure.
Configurare l'ambiente di rete
Poiché tutti i data center di cui è stato effettuato il provisioning con questo servizio devono essere distribuiti in subnet dedicate usando l'inserimento della rete virtuale, è necessario configurare il peering di rete appropriato prima della distribuzione. Per questa guida introduttiva, creare un cluster con due data center in aree separate: Stati Uniti orientali e Stati Uniti orientali 2. Creare prima di tutto le reti virtuali per ogni area.
Accedere al portale di Azure.
Creare un gruppo di risorse denominato
cassandra-mi-multi-region:az group create --location eastus2 --name cassandra-mi-multi-regionCreare la prima rete virtuale negli Stati Uniti orientali 2 con una subnet dedicata:
az network vnet create \ --name vnetEastUs2 \ --location eastus2 \ --resource-group cassandra-mi-multi-region \ --address-prefix 10.0.0.0/16 \ --subnet-name dedicated-subnetCreare la seconda rete virtuale negli Stati Uniti orientali, anche con una subnet dedicata:
az network vnet create \ --name vnetEastUs \ --location eastus \ --resource-group cassandra-mi-multi-region \ --address-prefix 192.168.0.0/16 \ --subnet-name dedicated-subnetVengono aggiunti in modo esplicito intervalli di indirizzi IP diversi per assicurarsi che non siano presenti errori con il peering.
Collegare la prima rete virtuale alla seconda.
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet1ToMyVnet2 \ --vnet-name vnetEastUs2 \ --remote-vnet vnetEastUs \ --allow-vnet-access \ --allow-forwarded-trafficPer connettere le due reti virtuali, creare un altro peering tra la seconda rete virtuale e la prima:
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet2ToMyVnet1 \ --vnet-name vnetEastUs \ --remote-vnet vnetEastUs2 \ --allow-vnet-access \ --allow-forwarded-trafficSe si aggiungono altre regioni, ogni rete virtuale richiede il peering da essa verso tutte le altre reti virtuali e il peering da tutte le altre reti virtuali verso di essa.
Controllare l'output del comando precedente. Assicurarsi che il valore di
peeringStatesia oraConnected. È anche possibile controllare questo risultato eseguendo il comando seguente:az network vnet peering show \ --name MyVnet1ToMyVnet2 \ --resource-group cassandra-mi-multi-region \ --vnet-name vnetEastUs2 \ --query peeringStateApplicare alcune autorizzazioni speciali a entrambe le reti virtuali. Istanza gestita di Azure per Apache Cassandra richiede queste autorizzazioni. Eseguire il comando seguente. Sostituire
<SubscriptionID>con l'ID sottoscrizione:az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2 az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUsI valori
assigneeerolenel comando precedente sono valori fissi. Immettere questi valori esattamente come illustrato nel comando .
Se si verificano errori durante l'esecuzione di az role assignment create, è possibile che non si disponga delle autorizzazioni necessarie per l'esecuzione. Rivolgersi all'amministratore per ottenere le autorizzazioni.
Creare un cluster in più aree
Distribuire la risorsa cluster. Sostituire
<Subscription ID>con l'ID della sottoscrizione. La distribuzione può richiedere da 5 a 10 minuti.resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' location='eastus2' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet' initialCassandraAdminPassword='myPassword' az managed-cassandra cluster create \ --cluster-name $clusterName \ --resource-group $resourceGroupName \ --location $location \ --delegated-management-subnet-id $delegatedManagementSubnetId \ --initial-cassandra-admin-password $initialCassandraAdminPassword \ --debugDopo aver creato la risorsa cluster, si è pronti per creare un data center. Creare prima di tutto un data center negli Stati Uniti orientali 2. Sostituire
<SubscriptionID>con l'ID della sottoscrizione. Questa azione può richiedere fino a 10 minuti.resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' dataCenterName='dc-eastus2' dataCenterLocation='eastus2' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet' az managed-cassandra datacenter create \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --data-center-name $dataCenterName \ --data-center-location $dataCenterLocation \ --delegated-subnet-id $delegatedManagementSubnetId \ --node-count 3Creare un data center negli Stati Uniti orientali. Sostituire
<SubscriptionID>con l'ID sottoscrizione:resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' dataCenterName='dc-eastus' dataCenterLocation='eastus' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs/subnets/dedicated-subnet' virtualMachineSKU='Standard_D8s_v4' noOfDisksPerNode=4 az managed-cassandra datacenter create \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --data-center-name $dataCenterName \ --data-center-location $dataCenterLocation \ --delegated-subnet-id $delegatedManagementSubnetId \ --node-count 3 --sku $virtualMachineSKU \ --disk-capacity $noOfDisksPerNode \ --availability-zone falseÈ possibile scegliere il valore per
--skudai livelli di prodotto disponibili seguenti:- Standard_E8s_v4
- Standard_E16s_v4
- Standard_E20s_v4
- Standard_E32s_v4
- Standard_DS13_v2
- Standard_DS14_v2
- Standard_D8s_v4
- Standard_D16s_v4
- Standard_D32s_v4
Notare anche che
--availability-zoneè impostata sufalse. Per abilitare le zone di disponibilità, impostarla sutrue. Le zone di disponibilità aumentano l'accordo sul livello di servizio (SLA) del servizio. Per altre informazioni, vedere Contratti a livello di servizio per Istanza gestita di Azure per Apache Cassandra.Le zone di disponibilità non sono supportate in tutte le aree. Le distribuzioni hanno esito negativo se si seleziona un'area in cui le zone di disponibilità non sono supportate. Per le aree supportate, vedere Aree di Azure con zone di disponibilità.
La corretta distribuzione delle zone di disponibilità è soggetta anche alla disponibilità delle risorse di calcolo in tutte le zone dell'area specifica. Le distribuzioni potrebbero non riuscire se il livello di prodotto selezionato o la capacità non è disponibile in tutte le zone.
Dopo aver creato il secondo data center, controllare lo stato del nodo per verificare che tutti i nodi Cassandra si siano avviati correttamente.
resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' az managed-cassandra cluster status\ --cluster-name $clusterName \ --resource-group $resourceGroupNameUsare quindi CQLSH per connettersi al cluster. Usare la query CQL seguente per aggiornare la strategia di replica in ogni keyspace in modo da includere tutti i data center nel cluster (le tabelle di sistema vengono aggiornate automaticamente):
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};Infine, se si aggiunge un data center a un cluster che contiene già dati, è necessario eseguire
rebuildper replicare i dati cronologici. In questo caso, si supponga che ildc-eastus2data center disponga già di dati. Nell'interfaccia della riga di comando di Azure eseguire il comando seguente per eseguirenodetool rebuildin ogni nodo del nuovodc-eastusdata center. Sostituire<ip address>con l'indirizzo IP del nodo:az managed-cassandra cluster invoke-command \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --host <ip address> \ --command-name nodetool --arguments rebuild="" "dc-eastus2"=""Non consentire ai client dell'applicazione di scrivere nel nuovo data center fino a quando non si applicano modifiche alla replica keyspace. In caso contrario, la ricompilazione non funziona. È quindi necessario creare una richiesta di supporto così che la nostra squadra possa eseguire
repairper te.
Risoluzione dei problemi
Se si verifica un errore quando si applicano autorizzazioni alla rete virtuale usando l'interfaccia della riga di comando di Azure, è possibile applicare manualmente la stessa autorizzazione dal portale di Azure. Un errore di esempio potrebbe essere "Non è possibile trovare l'utente o l'entità servizio nel database a grafo per e5007d2c-4b13-4a74-9b6a-605d99f03501". Per altre informazioni, vedere Usare il portale di Azure per aggiungere un'entità servizio di Azure Cosmos DB.
L'assegnazione di ruolo di Azure Cosmos DB viene usata solo ai fini della distribuzione. Istanza gestita di Azure per Apache Cassandra non dispone di dipendenze back-end in Azure Cosmos DB.
Pulire le risorse
Se non si intende continuare a usare questo cluster di istanza gestita, seguire questa procedura per eliminarlo:
- Nel menu a sinistra del portale di Azure, selezionare Gruppi di risorse.
- Nell'elenco selezionare il gruppo di risorse creato per questa guida introduttiva.
- Nel riquadro Panoramica del gruppo di risorse selezionare Elimina gruppo di risorse.
- Nel riquadro successivo immettere il nome del gruppo di risorse da eliminare e quindi selezionare Elimina.
Passo successivo
In questo avvio rapido, si è appreso come creare un cluster in più aree usando l'interfaccia della riga di comando di Azure e Azure Managed Instance per Apache Cassandra. È ora possibile iniziare a usare il cluster.