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 her iş yükünün belirli gereksinimlerine bağlı olarak yapılandırmaların geçersiz kılınmasına olanak tanıyarak gerektiğinde maksimum esneklik ve denetim 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

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

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. cassandra-mi-multi-region adlı bir 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
    

    Not

    Eşleme sırasında 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şler:

    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 sanal 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
    

    Not

    Daha fazla bölge eklerseniz, her sanal ağdan diğer tüm sanal ağlara ve diğer tüm sanal ağlara eşleme gerektirir.

  7. Önceki komutun çıkışını denetleyin. "peeringState" değerinin artık "Bağlı" olduğ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ğ de 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
    

    Not

    assignee Önceki komuttaki ve role değerleri sabit değerlerdir. Bu değerleri tam olarak komutunda olduğu 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 beş ile 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ırsınız demektir. İ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
    

    Not

    için değeri --sku aşağıdaki kullanılabilir SKU'lardan seçilebilir:

    • 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 bunu olarak trueayarlayın. Kullanılabilirlik alanları, hizmetin kullanılabilirlik SLA'sını artırır. Daha fazla bilgi için bkz . Apache Cassandra için Azure Yönetilen Örneği SLA'sı.

    Uyarı

    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ı, belirtilen bölgedeki tüm bölgelerdeki işlem kaynaklarının kullanılabilirliğine de tabidir. Seçtiğiniz SKU 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 CQLSH kullanarak kümenize bağlanın ve 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, verilerin zaten bulunduğu bir kümeye veri merkezi ekliyorsanız, geçmiş verileri çoğaltmak için komutunu çalıştırmanız rebuild gerekir. Bu durumda, veri merkezinde zaten veri olduğunu dc-eastus2 varsayacağız. Azure CLI'da, yeni dc-eastus veri merkezinizdeki her düğümde yürütmek nodetool rebuild için aşağıdaki komutu çalıştırın ve yerine düğümün IP adresini yazın<ip address>:

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

    Uyarı

    Anahtar alanı çoğaltma değişiklikleri uygulanana kadar uygulama istemcilerinin yeni veri merkezine yazmasına izin vermemelisiniz. Aksi takdirde yeniden derleme çalışmaz ve ekibimizin sizin yerinize çalışabilmesi için bir destek isteği oluşturmanız repair gerekir.

Sorun giderme

Azure CLI kullanarak Sanal Ağ izin uygularken hatayla karşılaşırsanız, Azure portalından aynı izni el ile uygulayabilirsiniz. Örnek bir hata, 'e5007d2c-4b13-4a74-9b6a-605d99f03501' için graf veritabanında kullanıcı veya hizmet sorumlusu bulunamıyor olabilir. Daha fazla bilgi için bkz . Azure cosmos DB hizmet sorumlusu eklemek için Azure portalını kullanma.

Not

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, aşağıdaki adımları izleyerek silin:

  1. Azure portalının sol tarafındaki menüden 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 pencerede, silinecek kaynak grubunun adını girin ve sil'i seçin.

Sonraki adımlar

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.