Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Managed Instance för Apache Cassandra är en fullständigt hanterad tjänst för rena Apache Cassandra-kluster med öppen källkod. Tjänsten tillåter också att konfigurationer åsidosätts, beroende på de specifika behoven för varje arbetsbelastning, för maximal flexibilitet och kontroll.
Den här snabbstarten visar hur du använder Azure CLI-kommandon för att konfigurera ett kluster med flera regioner i Azure.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här artikeln kräver Azure CLI version 2.30.0 eller senare. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
- Använd ett Azure-virtuellt nätverk med anslutning till din självhostade eller lokala miljö. Mer information om hur du ansluter lokala miljöer till Azure finns i Ansluta ett lokalt nätverk till Azure.
Konfigurera nätverksmiljön
Eftersom alla datacenter som etableras med den här tjänsten måste distribueras till dedikerade undernät via virtuell nätverksinjektion, bör lämplig nätverkspeering konfigureras i förväg innan distributionen. För den här snabbstarten skapar du ett kluster med två datacenter i separata regioner: USA, östra och USA, östra 2. Skapa först de virtuella nätverken för varje region.
Logga in på Azure-portalen.
Skapa en resursgrupp med namnet
cassandra-mi-multi-region:az group create --location eastus2 --name cassandra-mi-multi-regionSkapa det första virtuella nätverket i East US 2 med ett dedikerat undernät:
az network vnet create \ --name vnetEastUs2 \ --location eastus2 \ --resource-group cassandra-mi-multi-region \ --address-prefix 10.0.0.0/16 \ --subnet-name dedicated-subnetSkapa det andra virtuella nätverket i Östra USA, även med ett dedicerad undernät.
az network vnet create \ --name vnetEastUs \ --location eastus \ --resource-group cassandra-mi-multi-region \ --address-prefix 192.168.0.0/16 \ --subnet-name dedicated-subnetVi lägger uttryckligen till olika IP-adressintervall för att säkerställa att det inte finns några fel med peering.
Koppla samman det första virtuella nätverket med det andra virtuella nätverket.
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet1ToMyVnet2 \ --vnet-name vnetEastUs2 \ --remote-vnet vnetEastUs \ --allow-vnet-access \ --allow-forwarded-trafficOm du vill ansluta de två virtuella nätverken skapar du ytterligare en peering mellan det andra virtuella nätverket och det första:
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet2ToMyVnet1 \ --vnet-name vnetEastUs \ --remote-vnet vnetEastUs2 \ --allow-vnet-access \ --allow-forwarded-trafficOm du lägger till fler regioner kräver varje virtuellt nätverk peering från det till alla andra virtuella nätverk och från alla andra virtuella nätverk till det.
Kontrollera utdata från föregående kommando. Kontrollera att värdet
peeringStateför är nuConnected. Du kan också kontrollera det här resultatet genom att köra följande kommando:az network vnet peering show \ --name MyVnet1ToMyVnet2 \ --resource-group cassandra-mi-multi-region \ --vnet-name vnetEastUs2 \ --query peeringStateTillämpa vissa särskilda behörigheter på båda de virtuella nätverken. Azure Managed Instance för Apache Cassandra kräver dessa behörigheter. Kör följande kommando. Ersätt
<SubscriptionID>med ditt prenumerations-ID: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/vnetEastUsVärdena
assigneeochrolei föregående kommando är fasta värden. Ange dessa värden exakt som du ser i kommandot.
Om du får fel när du kör az role assignment createkanske du inte har behörighet att köra det. Kontakta administratören om du vill ha behörigheter.
Skapa ett kluster för flera regioner
Distribuera klusterresursen. Ersätt
<Subscription ID>med ditt prenumerations-ID. Implementeringen kan ta 5 till 10 minuter.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 \ --debugNär klusterresursen har skapats är du redo att skapa ett datacenter. Skapa först ett datacenter i USA, östra 2. Ersätt
<SubscriptionID>med ditt prenumerations-ID. Den här åtgärden kan ta upp till 10 minuter.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 3Skapa ett datacenter i USA, östra. Ersätt
<SubscriptionID>med ditt prenumerations-ID: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 falseDu kan välja värdet för
--skufrån följande tillgängliga produktnivåer:- 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
Observera också att
--availability-zoneär inställt påfalse. Om du vill aktivera tillgänglighetszoner ställer du in den påtrue. Tillgänglighetszoner ökar tjänstens serviceavtal (SLA) för tillgänglighet. Mer information finns i Servicenivåavtal för Azure Managed Instance för Apache Cassandra.Tillgänglighetszoner stöds inte i alla regioner. Distributioner misslyckas om du väljer en region där tillgänglighetszoner inte stöds. Information om regioner som stöds finns i Azure-regioner med tillgänglighetszoner.
Den lyckade distributionen av tillgänglighetszoner är också beroende av tillgängligheten för beräkningsresurser i alla zoner i den specifika regionen. Distributioner kan misslyckas om den produktnivå som du har valt, eller kapaciteten, inte är tillgänglig i alla zoner.
När det andra datacentret har skapats hämtar du nodstatusen för att kontrollera att alla Cassandra-noder har skapats:
resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' az managed-cassandra cluster status\ --cluster-name $clusterName \ --resource-group $resourceGroupNameAnvänd sedan CQLSH för att ansluta till klustret. Använd följande CQL-fråga för att uppdatera replikeringsstrategin i varje nyckelområde för att inkludera alla datacenter i klustret (systemtabeller uppdateras automatiskt):
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};Slutligen, om du lägger till ett datacenter i ett kluster som redan innehåller data, måste du köra
rebuildför att replikera historiska data. I det här fallet förutsätter du att data redan finns idc-eastus2datacentret. Kör följande kommando i Azure CLI för att köranodetool rebuildpå varje nod i ditt nyadc-eastusdatacenter. Ersätt<ip address>med nodens IP-adress:az managed-cassandra cluster invoke-command \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --host <ip address> \ --command-name nodetool --arguments rebuild="" "dc-eastus2"=""Tillåt inte att programklienter skriver till det nya datacentret förrän du har tillämpat nyckelområdesreplikeringsändringar. Annars fungerar inte ombyggnad. Sedan måste du skapa en supportbegäran så att vårt team kan köra
repairåt dig.
Felsökning
Om du får ett fel när du tillämpar behörigheter på ditt virtuella nätverk med hjälp av Azure CLI kan du använda samma behörighet manuellt från Azure-portalen. Ett exempelfel kan vara "Det går inte att hitta användaren eller tjänstens huvudnamn i grafdatabasen för e5007d2c-4b13-4a74-9b6a-605d99f03501" Mer information finns i Använda Azure-portalen för att lägga till ett huvudnamn för Azure Cosmos DB-tjänsten.
Rolltilldelningen i Azure Cosmos DB används endast i distributionssyfte. Azure Managed Instanced för Apache Cassandra har inga serverdelsberoenden i Azure Cosmos DB.
Rensa resurser
Om du inte kommer att fortsätta att använda det här hanterade instansklustret följer du de här stegen för att ta bort det:
- Välj Resursgrupper på den vänstra menyn på Azure-portalen.
- I listan väljer du den resursgrupp som du skapade för den här snabbstarten.
- I fönstret Översikt över resursgrupp väljer du Ta bort resursgrupp.
- I nästa fönster anger du namnet på resursgruppen som ska tas bort och väljer sedan Ta bort.
Nästa steg
I den här snabbstarten har du lärt dig hur du skapar ett kluster med flera regioner med hjälp av Azure CLI och Azure Managed Instance för Apache Cassandra. Nu kan du börja arbeta med klustret.