Aracılığıyla paylaş


Hızlı Başlangıç: Apache Cassandra için Azure Yönetilen Örneği ile çok bölgeli küme oluşturma

Apache Cassandra için Azure Yönetilen Örneği, saf açık kaynak Apache Cassandra kümeleri için tam olarak yönetilen bir hizmettir. Hizmet ayrıca maksimum esneklik ve denetim için her iş yükünün belirli gereksinimlerine bağlı olarak yapılandırmaların geçersiz kılınmasını sağlar.

Bu hızlı başlangıçta, Azure'da çok bölgeli bir küme yapılandırmak için Azure CLI komutlarının nasıl kullanılacağı gösterilmektedir.

Önkoşullar

  • Bu makale, Azure CLI sürüm 2.30.0 veya üzerini gerektirir. Azure Cloud Shell kullanıyorsanız en son sürüm zaten yüklüdür.
  • Şirket içinde barındırılan veya şirket içi ortamınıza bağlantısı olan bir Azure sanal ağı kullanın. Şirket içi ortamları Azure'a bağlama hakkında daha fazla bilgi için bkz. Şirket içi ağı Azure'a bağlama.

Ağ ortamını ayarlama

Bu hizmetle sağlanan tüm veri merkezlerinin sanal ağ ekleme kullanılarak ayrılmış alt ağlara dağıtılması gerektiğinden, dağıtım öncesinde uygun ağ eşlemesini yapılandırın. Bu hızlı başlangıç için, ayrı bölgelerde iki veri merkezi olan bir küme oluşturun: Doğu ABD ve Doğu ABD 2. İlk olarak, her bölge için sanal ağları oluşturun.

  1. Azure Portal’ında oturum açın.

  2. adlı cassandra-mi-multi-regionbir kaynak grubu oluşturun:

    az group create --location eastus2 --name cassandra-mi-multi-region
    
  3. Ayrılmış bir alt ağ ile Doğu ABD 2'de ilk sanal ağı oluşturun:

    az network vnet create \
      --name vnetEastUs2 \
      --location eastus2 \
      --resource-group cassandra-mi-multi-region \
      --address-prefix 10.0.0.0/16 \
      --subnet-name dedicated-subnet
    
  4. Ayrılmış bir alt ağ ile doğu ABD'de ikinci sanal ağı oluşturun:

     az network vnet create \
       --name vnetEastUs \
       --location eastus \
       --resource-group cassandra-mi-multi-region \
       --address-prefix 192.168.0.0/16 \
       --subnet-name dedicated-subnet
    

    Eşlemeyle ilgili hata olmadığından emin olmak için açıkça farklı IP adresi aralıkları ekliyoruz.

  5. İlk sanal ağı ikinci sanal ağa eşleştir

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet1ToMyVnet2 \
      --vnet-name vnetEastUs2 \
      --remote-vnet vnetEastUs \
      --allow-vnet-access \
      --allow-forwarded-traffic
    
  6. İki sanal ağı bağlamak için ikinci sanal ağ ile ilk ağ arasında başka bir eşleme oluşturun:

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet2ToMyVnet1 \
      --vnet-name vnetEastUs \
      --remote-vnet vnetEastUs2 \
      --allow-vnet-access \
      --allow-forwarded-traffic
    

    Daha fazla bölge eklerseniz, her sanal ağ, diğer tüm sanal ağlara ve diğer tüm sanal ağlardan kendisine karşılıklı eşleme gerektirir.

  7. Önceki komutun çıkışını denetleyin. değerinin peeringState şimdi Connectedolduğundan emin olun. Aşağıdaki komutu çalıştırarak da bu sonucu de kontrol edebilirsiniz:

    az network vnet peering show \
      --name MyVnet1ToMyVnet2 \
      --resource-group cassandra-mi-multi-region \
      --vnet-name vnetEastUs2 \
      --query peeringState
    
  8. Her iki sanal ağa da bazı özel izinler uygulayın. Apache Cassandra için Azure Yönetilen Örneği bu izinleri gerektirir. Aşağıdaki komutu çalıştırın. değerini abonelik kimliğiniz ile değiştirin <SubscriptionID> :

    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/vnetEastUs
    

    assignee Önceki komuttaki ve role değerleri sabit değerlerdir. Bu değerleri tam olarak komutta gösterildiği gibi girin.

komutunu çalıştırdığınızda az role assignment createhatalarla karşılaşırsanız, çalıştırma izniniz olmayabilir. İzinler için yöneticinize başvurun.

Çok bölgeli küme oluşturma

  1. Küme kaynağını dağıtın. değerini abonelik kimliğiniz ile değiştirin <Subscription ID> . Dağıtım 5-10 dakika sürebilir.

    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 \
       --debug
    
  2. Küme kaynağı oluşturulduktan sonra bir veri merkezi oluşturmaya hazır olursunuz. İlk olarak, Doğu ABD 2'de bir veri merkezi oluşturun. değerini abonelik kimliğiniz ile değiştirin <SubscriptionID> . Bu eylem 10 dakika kadar sürebilir.

    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 3
    
  3. Doğu ABD'de bir veri merkezi oluşturun. değerini abonelik kimliğiniz ile değiştirin <SubscriptionID> :

    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
    

    Değerini aşağıdaki kullanılabilir ürün katmanlarından seçebilirsiniz --sku :

    • 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

    Ayrıca değerinin --availability-zone olarak ayarlandığını falseda unutmayın. Kullanılabilirlik alanlarını etkinleştirmek için onu true olarak ayarlayın. Kullanılabilirlik alanları, hizmetin kullanılabilirlik hizmet düzeyi sözleşmesini (SLA) artırır. Daha fazla bilgi için bkz. Apache Cassandra için Azure Yönetilen Örneği için hizmet düzeyi sözleşmeleri.

    Kullanılabilirlik alanları tüm bölgelerde desteklenmez. Kullanılabilirlik alanlarının desteklenmediği bir bölge seçerseniz dağıtımlar başarısız olur. Desteklenen bölgeler için bkz . Kullanılabilirlik alanları olan Azure bölgeleri.

    Kullanılabilirlik alanlarının başarılı dağıtımı, belirli bölgedeki tüm bölgelerdeki işlem kaynaklarının kullanılabilirliğine de tabidir. Seçtiğiniz ürün katmanı veya kapasite tüm bölgelerde kullanılamıyorsa dağıtımlar başarısız olabilir.

  4. İkinci veri merkezi oluşturulduktan sonra, tüm Cassandra düğümlerinin başarıyla oluşturulduğunu doğrulamak için düğüm durumunu alın:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster status\
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Ardından kümenize bağlanmak için CQLSH kullanın. Her anahtar alanında çoğaltma stratejisini küme genelindeki tüm veri merkezlerini içerecek şekilde güncelleştirmek için aşağıdaki CQL sorgusunu kullanın (sistem tabloları otomatik olarak güncelleştirilir):

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    
  6. Son olarak, zaten veri içeren bir kümeye veri merkezi eklerseniz, geçmiş verileri çoğaltmak için komutunu çalıştırmanız rebuild gerekir. Bu durumda, veri merkezinde zaten veri olduğunu dc-eastus2 varsayalım. Azure CLI'da yeni dc-eastus veri merkezinizdeki her düğümde nodetool rebuild çalıştırmak için aşağıdaki komutu girin. <ip address> değerini düğümün IP adresiyle değiştirin.

    az managed-cassandra cluster invoke-command \
      --resource-group $resourceGroupName \
      --cluster-name $clusterName \
      --host <ip address> \
      --command-name nodetool --arguments rebuild="" "dc-eastus2"=""
    

    Anahtar alanı çoğaltma değişikliklerini uyguladıktan sonraya kadar uygulama istemcilerinin yeni veri merkezine yazmasına izin vermeyin. Aksi takdirde yeniden derleme çalışmaz. Ardından ekibimizin sizin için çalışabilmesi repair için bir destek isteği oluşturmanız gerekir.

Sorun giderme

Azure CLI kullanarak sanal ağınıza izinler uyguladığınızda bir hatayla karşılaşırsanız, Azure portalından aynı izni el ile uygulayabilirsiniz. Örnek bir hata "için e5007d2c-4b13-4a74-9b6a-605d99f03501graf veritabanında kullanıcı veya hizmet sorumlusu bulunamıyor" olabilir. Daha fazla bilgi için bkz. Azure portalı kullanarak Azure Cosmos DB hizmet sorumlusu ekleme.

Azure Cosmos DB rol ataması yalnızca dağıtım amacıyla kullanılır. Apache Cassandra için Azure Yönetilen Örneği'nin Azure Cosmos DB'de arka uç bağımlılığı yoktur.

Kaynakları temizleme

Bu yönetilen örnek kümesini kullanmaya devam etmeyecekseniz, silmek için şu adımları izleyin:

  1. Azure portalının sol menüsünde Kaynak grupları'nı seçin.
  2. Listeden, bu hızlı başlangıç için oluşturduğunuz kaynak grubunu seçin.
  3. Kaynak grubuna Genel Bakış bölmesinde Kaynak grubunu sil'i seçin.
  4. Sonraki bölmede, silinecek kaynak grubunun adını girin ve sil'i seçin.

Sonraki adım

Bu hızlı başlangıçta, Azure CLI ve Apache Cassandra için Azure Yönetilen Örneği'ni kullanarak çok bölgeli küme oluşturmayı öğrendiniz. Artık kümeyle çalışmaya başlayabilirsiniz.